Kurzanleitung

[Servoansteuerung] [Hardware]

Um mit dem Arduino einen Plotter zu steuern, sind folgende Schritte notwendig:

Windows USB Treiber

Arduino am PC anschließen 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

XLoaderDownload 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.

Nach dem erfolgreichen Hochladen muss der XLoader beendet werden.

 

Erste Verbindung

GRBL-Plotter connectionInstalliere 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

grbl setupNach 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.

 

 

 

 

 

 

 

 

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:

Wir nutzen eigene oder Cookies Dritter um Ihre Surferfahrung zu verbessern. Durch Nutzung unseres Angebots gehen wir davon aus, dass Sie der Nutzung derer zustimmen.  Akzeptieren  Weitere Informationen