Kurzanleitung
Um mit dem Arduino einen Plotter zu steuern, sind folgende Schritte notwendig:
Windows USB Treiber
Verbinde den Arduino mit dem PC, unter Windows 10 wird der benötigte Treiber automatisch installiert, wenn nicht: die günstigen Arduino Nachbauten benutzen häufig den CH340 USB Chip. Siehe hier für weitere Information https://www.google.de/search?q=arduino+ch340.
Grbl Firmware
Download und starte "GRBL-Plotter_Setup.exe " von GRBL-Plotter. Starte das Program XLoader.exe im Verzeichnis "GRBL-Plotter\Firmware\_XLoader". Wähle die gewünschte Firmware (Hex file), die richtige Arduino Version (Device) und den richtigen COM-Port, dann starte das Upload. Mit den gezeigten Einstellungen hat das Hochladen 18 Sekunden gedauert.
Auf github habe ich ein paar aktualisierte Firmwareversionen.
- grbl_v1.1h.20190825.hex ist die neueste reguläre grbl firmware für Arduino uno und nano, von https://github.com/gnea/grbl
- grbl_v1.1f_Servo.hex wie oben, aber mit Spindle-PWM angepasst an die RC-Servo Spezifikation (1ms - 2ms), von https://github.com/cprezzi/grbl-servo
- grbl_v1.1f_Servo_switch_dir_step.hex wie oben, aber mit Spindle-PWM angepasst an die RC-Servo Spezifikation (1ms - 2ms) und step/dir Pins vertauscht für die Nutzung des CNC Shield V4 für Arduino nano (siehe unten), from https://github.com/cprezzi/grbl-servo
- grbl-Mega-5X-v1.1l.20190605.hex 5 Achsen Version nur für Arduino Mega2560, von https://github.com/fra589/grbl-Mega-5X
Nach dem erfolgreichen Hochladen muss der XLoader beendet werden.
Erste Verbindung
Installiere GRBL-Plotter durch das Ausführen von 'setup.exe' aus dem entpackten Ordner. Starte GRBL-Plotter und wähle den richtigen COM-Port aus. Nach der erfolgreichen Verbindung sendet grbl eine Startmeldung "Grbl 1.1h ['$' for help]".
Nun sind auch die Bedienelemente im Program freigeschaltet und die Motoren können angesteuert werden.
Konfiguration von grbl
Nach dem Senden von "$$" wird die grbl Konfiguration angezeigt, welche an die maschine angepasst werden muss. Siehe grbl-Wiki für weitere Informationen. Der Screenshoot zeigt die initialen Einstellungen nach der Installation von grbl.
Die Haupteinstellungen sind $3, $10x, $11x (x=0,1 oder 2 je nach Achse) um die Schrittmotoren in die richtige Richtung drehen zu lassen. Die richtigen Richtungen sind:
- +X = nach rechts
- +Y = nach hinten
- +Z = nach oben
Achtung: ein zu großer Wert für $10x (steps/mm) und $11x (max. speed) verursacht Probleme.
Das Product aus $10x und $11x sollte kleiner als 1800000 sein um Pin-Frequenzen über 30 kHz zu vermeiden.
Z.B. $100=250, $110 = 7200 ist grenzwertig.
Weitere Informationen hier: quick-guide-to-setting-up-your-machine-for-the-first-time
Ein alternatives Einstellformular öffnet sich via $$ Befehl, oder 'Maschine' Menüpunkt.
Basiseinstellung von GRBL-Plotter
Die Hauptaufgabe von GRBL-Plotter besteht darin, Grafiken für deine Maschine (Fräse, Plotter, Lasergravierer) in GCode umzuwandeln. Um die Funktion 'Stift heben/senken' an deine Bedürfnisse anzupassen (Z-Achse, PWM für RC-Servo, Schalter für Laser), stelle hier die erforderliche Stift-oben/unten-Übersetzung ein [Menu - Datei - Einstellungen - Grafik Import – G-Code-Erzeugung]: Stift hoch/runter Übersetzung.
Spindel-PWM und Einsatz eines Servos:
Die Pulsweitenmodulation (PWM) zur Drehzahlsteuerung eines Motors oder Leistungssteuerung eines Laser wird über eine spezielle Pinfunktion (Hardware PWM) im ATmega328 (der Microcontroller des Arduino Uno / nano) an Pin 11 (PB3, OC2A) erzeugt. D.h. der Pin zur Ausgabe der PWM kann nicht gewechselt werden.
- Standardmäßig ist die PWM-Frequenz auf 1 kHz eingestellt. Das Tastverhältnis kann zwischen 0 % und 100 % eingestellt werden, um eine Steuerspannung von 0 V bis 5 V für die Spindel oder den Laser zu erhalten.
- Modellbauservos benötigen in der Regel ein PWM-Signal von 50 Hz mit einer Pulsweite von 1 ms bis 2 ms. Das Tastverhältnis liegt dann nur noch im Bereich von 5% bis 10% - nicht geeignet um eine Spindel oder einen Laser zu steuern.
- Workaround: Mit einem 'Adapter' kann das benötigte Signal aus einem an/aus oder Spindle-PWM Signal erzeugt werden, siehe Plotter-ServoControl
Reguläres grbl: "Standardmäßig beträgt die PWM-Frequenz der Spindel 1 kHz, was die empfohlene PWM-Frequenz für die meisten aktuellen Grbl-kompatiblen Lasersysteme ist. Wenn eine andere Frequenz erforderlich ist, kann diese durch Bearbeiten der Datei cpu_map.h geändert werden."
Quelle: https://github.com/gnea/grbl/wiki/Grbl-v1.1-Laser-Mode#laser-mode-operation
Angepasste grbl: "Dies ist eine spezielle Version mit Servounterstützung (umschaltbar in config.h) Die PWM-Frequenz ist auf 61Hz (Prescaler 1/1024) eingestellt. Der Pulsweitenbereich beträgt 0,5 - 2,5 ms".
Hinweis: Intern reicht der PWM-Bereich von 7 (0,5 ms Pulsbreite) bis 38 (2,5 ms Pulsbreite), was zu 32 möglichen verschiedenen Servopositionen führt (wahrscheinlich weniger, da der reguläre Bereich von 1 ms bis 2 ms reicht).
Quelle: https://github.com/cprezzi/grbl-servo
Gebräuchliche Hardware
Die folgenden Informationen beziehen sich auf billige (gefälschte?) Boards, die bei ebay erhältlich sind für 12€ bis 15€ (einschließlich Shield, Arduino, A4988 Treiber und USB-Kabel).
Das CNC-Shield V3 für Arduino Uno wurde für grbl 0.9 entwickelt. Aufgrund einer Änderung der Pinbelegung in der grbl-Version 1.1 (Pins 11 und 12 sind vertauscht) ist das Spindel-Pwm-Signal auf dem Z+-Pin zu finden. Siehe Schaltplan hier.
Meine Empfehlung:
- Benutze die original grbl Version 1.1 Konfiguration (kein Vertauschen der Pins in config.h / cpu_map.h)
- Steure den Fräsmotor/Laser/Servo über den CNC-Shield-Pin 'Z-Endstop', wird kein PWM Signal benötigt, dann einfach 100% pwm senden (normalerweise S1000)
- Verbine den Z Endschalter mit dem CNC-Shield-Pin 'Spindle Enable'
Das CNC-Shield V4 für Arduino nano zeigt ein falsches Layout für die Micro-Step-Jumper. Siehe Anleitung hier. Auch Step- und Dir-Signale sind vertauscht, was eine angepasste grbl-Version nötig macht. Ich habe dieses Board in meinem klappbaren Plotter verwendet. Die angepasste grbl Firmware ist im GRBL-Plotter setup zu finden (grbl_v1.1f_Servo_switch_dir_step.hex).
Nutzung eines alten PCs
Windows XP: die normale Setupdatei ('GRBL-Plotter_Setup.exe') funktioniert nicht (das Setup wurde mit Inno-Setup erstellt, welches minimal nur noch Windows Vista unterstützt), stattdessen entpacke 'GRBL-Plotter_1xxx_release.zip' und starte 'GRBL-Plotter.exe'.
Anzeichen für einen langsamen Computer: häufiges Auftreten von grbl Fehlern, wie z.B.
- error:20 Unsupported or invalid g-code command found in block.
- error:24 More than one g-code command that requires axis words found in block.
- error:2 Missing the expected G-code word value or numeric value format is not valid.
Wenn der PC langsam ist (alter PC mit Windows XP) sollten die gezeigten Einstellungen verwendet werden:
Es sollte auch die Datenmenge beim grafikimport reduziert werden, z.B. benötigen Plotter keine Schrittauflösung von 0.001 mm:
Hohe DPI Einstellung
Wenn ein Monitor mit hoher Auflösung und eine Skalierung größer 100% verwendet wird, wird die GRBL-Plotter Oberfläche entsprechend größer dargestellt. Leider verkleinert sich die Größe nach dem Importieren einer Grafik.
Um dieses Verhalten zu vermeiden, muss die unten gezeigte Einstellung vorgenommen werden (Rechtklick auf das Icon - Eigenschaften):