Styro-CNC mit ARDUINO MEGA2560 
& GRBL-GRU


   


2... hier geht's bald weiter !! 3

Wozu notwendig ?
Da meine aktuelle/bisherige CNC-Schneide auf Basis MM2001 + GMFC nun schon in die Jahre gekommen ist und die verwendete parallele Schnittstelle/Ansteuerung 
auch nicht mehr Up2date ist muss so langsam mal was aktuelleres + moderner Software her.

... Beschreibung meiner bisherigen Styro-CNC mit GMFC-Steuerung 

       

Software GRBLGRU ... 'GribbelGru'
Bin zufällig im RC-Network auf den Thread der Styro-Schneidesoftare GRBL-GRU-Software gestossen. 
Hier wurde vom SW-Entwickler 'Gary' um Mithilfe bei der Erweiterung  seiner vorhandenen CNC-Software GRBL-GRU angefragt.
Seine Software unterstützt jegliche Art von CNC-Maschinchen ... nur halt einen 'Foam-Cutter' noch nicht.
Die Software generiert aus geometrischen Formen (.DXF) einen an die anzusteuernde CNC-Mschine angepassten G-Code.
Dieser G-Code  kann recht komfortabel mittels 3D-Model der Maschine simuliert und dann an z.B. an eine ARDUINO-MEGA2560-Steuerung per USB übertragen 
und gestartet werden ... echt cool gemacht.


... eine klasse Videobeschreibung zur V6.28 gibt's hier

Die Bedienung entspricht aber nicht der GMFC-Software und sollte auch funktionell nicht mit dieser verglichen werden.
GMFC wurde speziell und eigentlich nur zum Schneiden von Tragflächen entwickelt ... daher gibt es einige spezielle Funktionen, welche in GRBL-GRU
nicht vorhanden sind ... aber auch zum größten Teil vom 'Normal-User' nicht benötigt werden.
Eine Funktionsbeschreibung, Anleitungen und den Download-Link findet man unter https://www.grblgru.com/

Dafür hat GRBL-GRU aber Vorteile, welche einen Wechsel auf jeden Fall sinnvoll macht.

Vorteile GRBL-GRU:
- perfekter 3D-Simulation des Schnittablauf's ... wie 3D-Ansicht während dem realen Schnitt
- freie Festlegung jeglicher Schnittwege 
- keine 'Sonderhardware' notwendig ... als Steuerung können gängige Komponenten verwendet werden (ARDUINO MEGA2560 + Treiber + Motoren)
- freie Festlegung jeglicher Schnittwege ( z.B. für Blockzuschnitt / Horizontal- Vertikalschnitten / Winkelschnitten / etc. )
- Synchronisation der Schnittwege um auch komplexe Formen schneiden zu können   
- ...
- absolut kostenlos ... der Hammer ... man kann aber ne Spende per Paypal machen !!

Aktuell stehe ich mit Gary in Verbindung um noch ein paar 'Optimierungen' einfließen zu lassen ... ist also alles noch am entstehen.

Mittlerweile ist die GRBL-Software auf einem Stand (ab v6.28) um damit auch real 'brauchbar' arbeiten zu können ... ein paar Kleinigkeiten sind noch anpassungsfähig ...
aber im Großen und Ganzen funkioniert's schon recht gut. 

Was muss zur Verwendung der neuen Schneidesoftware GRBL-GRU geändert angepasst werden ?
- statt der GMFC-Steuerkarte muss eine Steuerkarte auf Basis des Arduino MEGA2560 verbaut werden
-  die Onboard-Treiber  der GMFC-Platine werden durch vier externe Treiber-Module TB6600 ersetzt.
- die vier unipolaren NEMA-17-Schrittmotoren müssen  durch bipolare NEMA-17-Typen ersetzt werden ... die TB6600-Module sind für  bipolare Motoren !    


Hardware
Meine aktuelle MM2001-Steuerung kann nur unipolare Motoren ansteuern und ist noch mit einer parallelen Schnittstelle ausgestattet ... somit veraltet und
für was Neues eigentlich nicht mehr verwendbar.

Moderne bipolaren Motoren haben bei gleicher Größe ein höheres Drehmoment, sind einfacher zu verdrahten (nur 4 Leitungen) und es gibt diese sehr günstig in Massen
auf dem Markt ... auch die passenden Universal-Treiber TB6600 sind sehr günstig zu bekommen !
Das Controller-Board ARDUINO MEGA-2560 hat eine USB-Schnittstelle und die GRBL-Firmware unterstützt bis zu 6 Achsen bzw. Schrittmotoren.
Auch die Steuerung einer Draht-Heitzung mittels 'Spindel-PWM' oder weitere I/O-Funktionen wie Endschalter, Notaus etc. ist problemlos möglich ! 
Also in der Summe kann der MEGA-2560 mehr als Genug für eine Styroschneiderchen ;)

meine Komponeten
Steuerung: ARDUINO MEGA-2560 + Adapterkarte
Treiber: 4x TB6600
Motoren: 4x bipolar Gin röße 17
Heizung: Eigenbau
Versorgung: 400W-Trafo + Gleichrichter + Elko

Nachdem der ARDUINO, die TREIBER und die Motoren im Haus waren wurde gleich mal alles miteinander verdrahtet und in Verbindung mit GRBL-GRU in Betrieb genommen.


Nach ein paar Anlaufschwierigkeiten funktionierte das ganze dann aber doch schon recht vertrauenswürdig !
Das Hauptproblem waren die notwendigen Anpassungen der GRBL-Firmware des Arduino's ... die vorhandenen .hex-Files funktionierten nicht richtig ... also musste ARDUINO-IDE installiert und
entsprechende Anpassungen am Quellcode gemacht werden, bis ein funktionsfähiges .hex vorhanden war.

Daraufhin wurde meine vorhandene Maschine mal probeweise angeklemmt ... wobei die noch montierten unipolaren Motoren dabei bipolare
betrieben wurden. Dann mussten noch die Achsen und die Geschwindigkeiten/Wege mittels GRBL $-Befehlen angepasst werden und schon bewegten sich die beiden Portale wie sie sollten. 

Heizung:
Hierfür braucht es einen Trafo + Gleichrichter + Kondensator + PWM-Regler ... man kann natürlich auch ein vorhandenes DC-Netzteil verwenden, wenn vorhanden.
Zum Heizen eine 1mtr. langen 0,5mm² Drahtes braucht mit Reserve ca. 30V/5A.
Ich verwende einen ausgemusterten Ringkern-Trafo der ca. diesen Werten entspricht.
Wenn die gleichgerichtete Spannung unter 40V ist, kann man diese Spannung auch für die Motoren bzw. den TB6600-Treiber verwenden ... zwei Klappen - eine Fliege o.ä. !

PWM-Regler
Den braucht man, wenn man mittels der Steuersoftware bzw. dem Arduino MEG2560 die Heizung Ein/Aus-Schalten bzw. einstellen will !
Dieser ist recht einfach aufzubauen ... Optokoppler + MosFet ... für die manuelle Einstellung der Temperatur Steuerung noch nen PWM-Generator mittels NE555 ... das ganze
auf ne Lochraster ... fertig ! 


... ich denke der Plan ist recht selbsterklärend !
---> PWM schaltet Transistor --> dieser den Optokoppler --> dieser den MosFet, welcher entsprechend die Quellspannung 'zerhackt' und damit den Draht 'befeuert'.
Mit dem NE555 wird ein eigenes und mittels Poti einstellbares PWM erzeugt, welches über einen externen Schalter statt dem MEGA2560-PWM verwendet werden kann.

... im Platinenprogramm (Target) wird alles im Raster 2,54mm gesetzt ... somit passt das dann 1:1 auf ne Lochrasterplatine
 
... dann wird einseitig im Raster 2,54mm geroutet & durch Spieglung kann man dann
'von' unten stressfrei die Bahnen legen.

Nachdem die PWM-Steuerung real zusammengebastelt war und auch soweit in Verbindung mit dem MEGA2560 funktionierte hab ich eine
eigene Arduino-Trägerplatine SCM2560 inklusive Onboard-Heizungssteuerung erstellt ... 
 
- Die Verbindung zu den TB6600-Treiern erfolgt mittels vier 10pol. Bandleitungen
- alle Frontbedienelemente wie On/Off-Schalter / Resettaster / Potianschluss und LED's sind steckbar mittels 'Servostecker'
- Schneidebogen bzw. Motorspannung sind mit wechselbaren Sicherungen abgesichert
- Anbindung Endschalter vorgesehen ... über 16pol. Bandleitung
- natürlich alles beschriftet und eine Lochrasterfeld für alle 'Fälle' ist auch drauf ;)
- ...

... und warum die vier 'TB6600'-Treiber nicht mit drauf ?
Bei einem Defekt kann das einzelne Treiber-Modul einfach, schnell und billig getauscht werden ...
... und das gibt's fix & fertig für 3,50€ beim Chinesen !

Treiber-Modul TB6600
 

2... hier geht's bald weiter !! 3