Gerade für alle Bastler, Tüfftler und Selbstbauer kann ein netter feiner Lasercutter hilfreich sein, um Projekte schneller und effizienter umzusetzen. Und wo wären wir denn, wenn ein es für ein solches Gerät keine Anleitung zum Selbstbau gäbe.
Entstehen soll im diesem Tutorail ein MicroSlice mit folgenden Eigenschaften:
- Arbeitsbereich 50mm x 50mm
- Schneiden von Papier sowie gravieren von Holz und Plastik
- Basis bildet Mikrokontroller, kompatibel mit Arduino UNO R3
- OpenSource Programm
- fester Schneidtisch
Welche Teile werden benötigt?
1 Mikrokontroller, kompatibel mit Arduino UNO R3/ Raspberry Pi
1 X-Achsenmotor
1 Y-Achsenmotor
1 Dual Relais
2 Easydriver
2 5V LDO
1 3,3V LDO
2 Hitzespulen
1 Lüfter 12V Maße: 45x45x10
4 Stopschalter
9 Magnete
4 Gummifüße
5 Daumenschrauben
1 alternative Laserdiode (hier bietet sich eine Diode aus einem CD-Laufwerk an)
1 Lasermodul
1 Lasertreiber
1 Laserobjektiv
1 4mm Aluminiumrohr
2 3mm x 150mm Stahlstangen
1 3mm x 100mm Stahlstange
17 M3 Microbarbs
6 M2 Senkköpfe (6mm)
6 M2 Nüsse
6 M2 Pan-Köpfe (6mm)
8 M2 Pan-Köpfe (8mm)
4 M3 Nylon-Schrauben (6mm)
4 M3 50mm Abstandshalter
7 M3 Kappenschrauben (8mm)
8 M3 3mm Nylon-Distanzscheiben
97 Lasergeschnittene Teile im Kit
Passende Baupläne findest du auf dieser Seite: http://www.instructables.com/id/MicroSlice-A-tiny-Arduino-laser-cutter/
(Die Anleitung wurde explizit ausgelassen, um uns auf die Programmierung zu konzentrieren.)
Die Programmierung
Das Interessanteste am Projekt ist wohl die Frage, wie sich der Cutter steuern lässt. Die Programmierung wird hier am Beispiel des Arduino UNO ausgegeben.
Zuerst muss ein entsprechender G-Code generiert werden. Der einfachste und beste Weg dazu, ist es Inkscape mit einem Lasertrack-Plug-in zu kombinieren. Ein solches findet sich als OpenSource und weist ähnliche Funktionen auf wie Illustrator, CorelDraw oder Xara X. Das Dateiformat orientiert sich hier am SVG (Standard Scalable Vector Gravics). Damit lässt sich später sowohl der Laser zum Schneiden, als auch in seiner Gravurfunktion benutzen.
Vorarbeit
Bevor der neue G-Code genutzt werden kann, muss Grbl aufgespielt werden. Neueste Version ist dabei Grbl 8.0. Um dies verwenden zu können muss die Arduino IDE aufgespielt werden. Während des Setups darf dr Laser NICHT mit dem Stromkreis verbunden sein. Während des Konfiguratiopnsprozesses schaltet sich dieser stetig ein und aus, wenn er angeschlossen wurde. Die Laserdiode darf sollte nur dann verbunden werden, wenn man sie zum Schneiden oder Gravieren auch wirklich nutzen will. Dies senkt das Verletzungsrisiko.
Verwenung der OpenSource unter Raspberry Pi
Wird ein Raspberry verwendet, muss der G-Code vorab entsprechend generiert werden.
Dazu muss Grbl so konfiguriert werden, dass Schrittmotoren und Endstationen angesteuert werden.
Die Grundeinstellungen die konfiguriert werden müssen sehen wie folgt aus:
$0=755.906 (x, step/mm)
$1=755.906 (y, step/mm)
$2=755.906 (z, step/mm)
$3=30 (step pulse, usec)
$4=500.000 (default feed, mm/min) --> Standardeinzug
$5=500.000 (default seek, mm/min) --> Standardsuche
$6=28 (step port invert mask, int:00011100)
$7=25 (step idle delay, msec) -> Laserlaufverzögerung
$8=50.000 (acceleration, mm/sec^2) --> Beschleunigung
$9=0.050 (junction deviation, mm) --> Übergangsabweichung
$10=0.100 (arc, mm/segment)
$11=25 (n-arc correction, int) --> Bogenkorrektur
$12=3 (n-decimals, int) --> Dezimalstellen
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$15=0 (invert step enable, bool)
$16=0 (hard limits, bool)
$17=0 (homing cycle, bool) -> Referernzzyklus
$18=0 (homing dir invert mask, int:00000000)
$19=25.000 (homing feed, mm/min)
$20=250.000 (homing seek, mm/min)
$21=100 (homing debounce, msec)
$22=1.000 (homing pull-off, mm)
Die Einstellungen von höchstem Interesse sind $0 und $1. Diese beiden konfigurieren die X- und Y-Achse. Dabei muss die Anzahl der Schritte berechnet werden, die nötig sind um den Schneidkopf in beide Richtungen um jeweils 1mm zu bewegen.
Diese Berechnung funktioniert wie folgt:
Anzahl der Schritte = Anzahl der Schritte pro Umdrehung x Microschritte / Gewindesteigung
- 20 Stufen (18 Grad = Schritt)
- 8 Microsteps
- 3mm Gewindesteigung
(20x8)/3 = 53,333333333; damit ist $0 = 53,333
Dieser Wert wird auch für $1 übernommen sowie für die Z-Achse ($2).
Des weiteren müssen folgende Werte angepasst werden:
$4 = 200 (Schneidgeschwindigkeit)
$5 = 200 (Standardgeschwindigkeit, in der sich der Schneidkopf zwischen zwei Aufträgen bewegt)
$16 = 1 (Ermöglicht die Endstops)
$17 = 1 (Referenzierung, wenn die Mine gesperrt werden soll)
$18 = 69 (Setzt den Schneider auf 0, wenn der Befehl $ H homing ausgeführt wird)
$19 = 200
$20 = 200
$22 = 2.000 (Damit wird der Abstand definiert, den die Achse nach dem Referenzzyklus von den Endanschlägen einnimmt)
Das Abschließende $$-Terminal sollte unter Raspberry Pi dann in etwa so aussehen:
$0=53.333 (x, step/mm)
$1=53.333 (y, step/mm)
$2=53.330 (z, step/mm)
$3=10 (step pulse, usec)
$4=200.000 (default feed, mm/min)
$5=200.000 (default seek, mm/min)
$6=28 (step port invert mask, int:00011100)
$7=50 (step idle delay, msec)
$8=100.000 (acceleration, mm/sec^2)
$9=0.050 (junction deviation, mm)
$10=0.100 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=3 (n-decimals, int)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$15=0 (invert step enable, bool)
$16=1 (hard limits, bool)
$17=1 (homing cycle, bool)
$18=69 (homing dir invert mask, int:00000000)
$19=200.000 (homing feed, mm/min)
$20=200.000 (homing seek, mm/min)
$21=100 (homing debounce, msec)
$22=2.000 (homing pull-off, mm)
Zuletzt wird der Laser fokussiert. Dazu kann ein kleiner Testlauf gestartet werden, der ein X ausgibt.
Problembehebung
Sollte ein Problem beim Testlauf auftauchen, bezieht sich dies eventuell auf die Z-Achse. Um dies zu beheben kann wie folgt vorgegangen werden:
- Quellcode von Grbl herunterladen
- Archiv entpacken
- config.h öffnen
- Folgenden Code suchen: #define HOMING_SEARCH_CYCLE_0 (1<#define HOMING_SEARCH_CYCLE_1 ((1<
- Ersetzen des Codes durch: #define HOMING_SEARCH_CYCLE_0 (1<
#define HOMING_SEARCH_CYCLE_0 ((1< - Datei kompilieren
Abschließend sollte der Testlauf problemlos durchgeführt werden können.