Hasis Homepage Arduino, GRBL, CNC

Inhaltsverzeichnis

 

Stiftwechsler

Eine automatischer Stiftwechsler für bis zu 30 Stabilo Fineliner

Aufbau 07/2016
Folgende Punkte galt es zu lösen:
  • Aufbau der Mechanik:
    - Waagerechter Kettenantrieb (10 Zähne / Kettrad) zur Lagerung der Stifte, angetrieben über einen unipolaren Schrittmotor 1.8° (der Treiber kann max. Halbschritt)
    - Lichtschranke für das Homing
    - Greifer am Plotter, angetrieben über ein Servo
    - Gesteuert über einen Arduino mit angepasstem GRBL
  • Anpassung der GRBL Firmware:
    - in 'spindle_control.c' Erzeugung von RC-Servo kompatibler PWM (Pulslänge 1-2ms mit ca. 61Hz Wiederholrate) zur Ansteuerung des Greifers
    - in 'config.h' disable der Achsen Y und Z beim Homing
    - Setup: 1mm Verfahrweg soll die Kette um einen Stift weiter bewegen (so kann die Stiftnummer direkt übertragen werden). 400 Schritte/Umd./10 Zähne = 40 steps/mm
  • Anpassung der Steuersoftware GRBL-Plotter:
    - Beim Import von SVG-Dateien eine Zuordnung von Zeichenfarbe und realer Stiftfarbe machen
    - Ansteuerung eines zweiten COM-Ports zur Steuerung des Stiftwechslers
    - Skripte für den Stiftwechsel bei M6 Tx Befehlen einschleusen
  • Eine Inkscape Farbpallette erstellen, welche der verfügbaren Stabilo Farben nahe kommt
 
Stiftwechsler
Stiftwechsler in Aktion
Stiftwechsler in Aktion
Homing
Stift greifen

 

Aufbau / Material
Der Stiftwechsler besteht aus Sperrholz in 4mm und 6mm Stärke und Kunststoffplatten in 3mm und 6mm Stärke. Die bunten Kunststoffplatten (PVC-Hartschaum) in 3mm Stärke gibt es z.B. bei Hornbach. Das Material lässt sich sehr einfach bearbeiten und fräsen.

Die verschiedenen Bauteile wurden in LibreCad konstruiert und mit Estlcam in Gcode für meine Fräse umgewandelt.

Die Kettenglieder werden mit ca. 52mm langen, ∅4mm Rundstäben verbunden. Jedes Kettenglied hat eine Bohrung mit 4mm, so dass der Rundstab in dieser Bohrung klemmt und eine Bohrung mit 4,2mm, so dass sich dort der Rundstab drehen kann.

Die beiden grünen Zahnräder sitzen auf einer 4mm Alu-Welle, welche einseitig kugelgelagert ist. Zwischen beiden Zahnrädern sitzt eine ca. 35mm lange Distanzhülse.

Die anderen beiden Zahnräder stecken direkt auf der 5mm Achse des Schrittmotors, bzw. dessen Verlängerung.

Der Greifer besteht aus 6mm Kunstoff (Sorte unbekannt - aus Bastelkiste). Der 'Daumen' wurde mit einem 1mm Federstahldraht drehbar am Greifer befestig. Das Servo wurde mit einem 0,8mm Federstahldraht mit dem 'Daumen' verbunden. Die Stiftform wurde mit Hilfe von grauem Silikon am Greifer vorgeformt.

Die DXF Dateien:
Material Einzelteile
Die Elektronik besteht aus:
  • Arduino Nano (Clone) mit modifiziertem GRBL
  • Samotronic Schrittmotorsteuerung
  • Gabellichtschranke (+ Transisitor für die Signalinvertierung)
  • 7805 Spannungsregler für die Stromversorgung des Servos
Die ganze Elektronik wird vom Plotternetzteil mit 12V versorgt.
Einzelteile Einzelteile
Der Greifer im Detail. Die Vertiefung wurde mit Silikon ausgefüllt für besseren Grip.
Greifer
Greifer
Greifer
Greifer
Greifer
Greifer
Als Achse für den Finger und zur Kraftübertragung vom Servo wurde Federstahldraht verwendet.
Greifer
Greifer
Greifer
Greifer
GCode-Skript Stift ablegen:
Die GCode Befehle beginnend mit "(^2" werden an die
zweite GRBL Steuerung weitergereicht.
(Move pen back to pen storage)
(Assumption: active pen storage position is empty)

(CNC: Move in Machine Coordinates) G90 G53 G0 Z-8
G90 G53 G0 X-150

(Turn pen storage a little bit to get pen)
(^2 G91 G0 X0.15)

(Move to pen holder)
G90 G53 G1 X-168 F2000

(Open gripper - RC-Servo via Spinde PWM)
(^2 M3 S600)
(^2 G4 P0.5)
(Turn pen storage back)
(^2 G91 G0 X-0.15)

(Remove gripper)
G90 G53 G1 X-150 F2000
GCode-Skript Stift aufnehmen:
Die GCode Befehle beginnend mit "(^2" werden an die
zweite GRBL Steuerung weitergereicht.
(Get pen from pen storage)
(Assumption: active pen storage position is needed pen)

(Open gripper - RC-Servo via Spinde PWM)
(^2 M3 S600)

(CNC: Move in Machine Coordinates close to pen)
G90 G53 G0 Z-8
G90 G53 G0 X-150

(Move to pen holder)
G90 G53 G1 X-168 F2000

(Turn pen storage a little bit to touch gripper)
(^2 G91 G0 X0.15)
(Close gripper - RC-Servo via Spinde PWM)
(^2 M5)
(^2 G4 P0.5)

(pull pen )
G90 G53 G1 X-150 F2000

(Turn pen storage back)
(^2 G91 G0 X-0.15)
GCode-Skript Stift auswählen:
(Select pen nr.)
(^2 G90 G0 X@TOOL)
GCode-Skript Stiftlänge ermitteln:
(Move to stationary length sensor at machine coordinates (HOMING NEEDED!))
(Move down 50, stop when switch triggers, set new z-coordinate)
G90 G0 (absolute distance mode, rapid move)
G53 Z-10 (move in machine coordinates to save height)
G53 X-146.6 Y-74 (move in machine coordinates to stationary switch/tool length sensor)
G91 G1 F500 (relative distance mode, feed mode)
G38.3 Z-35 (probe toward tool length sensor, stop on contact)
G43.1 Z@PRBZ (Offset Tool)
G53 G0 Z-10 (move in machine coordinates to save height)
G53 Y-85
G90 G1
GRBL Setup:
$0=10 (step pulse, usec)
$1=255 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=1 (dir port invert mask:00000001)
$4=0 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=3 (status report mask:00000011)
$11=0.010 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$20=0 (soft limits, bool)
$21=0 (hard limits, bool)
$22=1 (homing cycle, bool)
$23=3 (homing dir invert mask:00000011)
$24=20.000 (homing feed, mm/min)
$25=100.000 (homing seek, mm/min)
$26=244 (homing debounce, msec)
$27=0.300 (homing pull-off, mm)
$100=40.000 (x, step/mm)
$101=250.000 (y, step/mm)
$102=250.000 (z, step/mm)
$110=250.000 (x max rate, mm/min)
$111=500.000 (y max rate, mm/min)
$112=500.000 (z max rate, mm/min)
$120=10.000 (x accel, mm/sec^2)
$121=10.000 (y accel, mm/sec^2)
$122=10.000 (z accel, mm/sec^2)
$130=32.000 (x max travel, mm)
$131=200.000 (y max travel, mm)
$132=200.000 (z max travel, mm)
Zuordnung Farbe/Stiftindex:
Es handelt sich um die bei Inkscape gebräuchliche Palettendefinition
GIMP Palette
Name: STABILO 88 25
#
108 194 227 eisgrün (13)
35 24 72 nachtblau (22)
252 168 64 apricot (26)
21 125 190 mittelblau (32)
157 211 47 apfelgrün (33)
0 128 0 grün (36)
255 0 0 rot (40)
0 0 255 blau (41)
20 180 60 hellgrün (43)
255 255 0 gelb (44)
95 49 30 braun (45)
0 0 0 schwarz (46)
197 32 58 dunkelrot (50)
0 169 196 türkisblau (51)
0 80 53 tannengrün (53)
255 165 0 orange (54)
238 130 238 violett (55)
217 3 133 pink (56)
76 190 217 hellblau (57)
154 48 178 lila (58)
140 95 150 flieder (59)
34 59 55 olivgrün (63)
211 130 60 ocker dunkel (89)
160 160 160 hellgrau (94)
130 130 130 dunkelgrau (96)
255 255 20 highlight gelb (024)
20 190 60 highlight grün (033)
230 10 140 highlight pink (040)
255 170 10 highlight orange (054)
2.839 Besucher
« vorige Seite Seitenanfang nächste Seite »


Impressum| Powered by CMSimple| Template: ge-webdesign.de| Login