Neuigkeiten Das Projekt Technik RoboSpatium Unterstützung Stichwortverzeichnis Download Reaktionen Spiele Gadgets Kontakt <<< Xylophon Demonstration Servomotor >>> Grundlagen zu CNC-MaschinenDas Video zu Grundlagen von CNC-Maschinen
Auch ihr teilt meine Begeisterung für günstige CNC-Maschinen und denkt daran, eine zu kaufen? Schwachstellen der MechanikAbbildung 1:Die Frässpindel besteht aus einem simplen Gleichstrommotor, an dessen Ausgangswelle ein Adapter zur Werkzeugaufnahme angebracht ist. Der Hebel von der Werkzeugspitze zum unteren Motorlager ist für Frässpindeln gigantisch, was unweigerlich zu schlechten Rundlauf führt. Abbildung 2: Die Bewegung der Achsen erfolgt längs von Rundstahl. Bei der günstigsten meiner CNC-Maschinen, der "T8" übernehmen Stahlbuchsen die Führung. Diese umschließen den Rundstahl leicht klemmend, womit kein merkliches Spiel vorhanden ist. Der Nachteil ist, dass die Reibung recht hoch ausfällt. Abbildung 3: Anstelle der Stahlbuchsen werden bei den teureren Exemplaren Linearkugellager zur Führung längs der Rundstäbe verwendet. Klingt besser, ist es aber nicht wirklich, da preisgünstige Maschinen auch preisgünstige Kugellager verwenden, die leichtes Spiel quer zur Bewegungsrichtung aufweisen. Abbildung 4: Die Mechanik einer CNC ist niemals ideal steif und verbiegt sich daher unter Last. Die sehr ungünstigen, weil unnötig langen, Hebelverhältnisse der Mechanik verstärken die unerwünschten Effekte durch Spiel und Verbiegen. Abbildung 5: Die zum Antrieb verwendeten Spindeln besitzen ein festes und ein loses Ende. Das feste Ende muss natürlich drehbar, dabei aber auch möglichst spielfrei am Rahmen der Mechanik befestigt sein. Die verwendeten Kugellager haben merkliches Spiel und die Aufnahme der Spindel ist nicht perfekt zentrisch. Abbildung 6: Die mangelnde Präzision der Spindelbefestigung am festen Ende wird am losen Ende, an dem sich der Antriebsmotor befindet, mit einer flexiblen Kupplung ausgeglichen. Diese Kupplung erlaubt ein Ausweichen der Spindel sowohl quer, als auch längs der Spindelachse. Sehr steif ist diese allerdings beim Übertragen von Drehbewegung. Abbildung 7: Die Antriebsspindeln arbeiten mit Messinghülsen als Führungsmuttern. Diese weisen merkliches Spiel auf. Um dieses zu kompensieren, wird bei den beiden anderen CNC-Maschinen über eine Schraubenfeder und eine zweite Messingmutter eine gewisse Vorspannung auf die Führungsmutter gegeben. Somit wird die entsprechende Achse mit einer definierten Kraft gegen die Windungen der Trapezspindel gedrückt. Dieses Konzept der Vorspannung ist im Bereich von CNC-Maschinen weit verbreitet, funktioniert allerdings nur, so lange die Kräfte während des Betriebs der Mechanik unterhalb der durch die Vorspannung gegebenen Kraft bleiben. Ferner gilt: Je höher die Vorspannung, um so höher die dadurch verursachte, unerwünschte Reibung. Bei den hier zu sehenden CNC-Maschinen ist die Vorspannung eher gering, so dass die Seitenkräfte beim Fräsen auch nicht sehr groß ausfallen dürfen. Was die Maschinen könnenAbbildung 8:Metalle fräsen zu können, darf man mit diesen CNC-Maschinen nicht erwarten, aber Kunststoff gravieren oder Holz fräsen gelingt mit einer Präzision, die sich durchaus sehen lassen kann. Bei dem hier gezeigten Fräsen von Holz wird das Werkstück zeilenweise und immer nur von links nach rechts gefräst. Somit ist die Kraftrichtung auf den Fräser und die Mechanik stets gleich, womit das Spiel in der Anlenkung keinen merklichen Einfluss auf die Qualität des Ergebnisses hat. Man kann sehr viel über den softwaretechnischen Weg von der digitalen Vorlage hin zum fertigen Werkstück lehren und lernen, denn dieser Weg ist alles andere als "Klick und fertig!" ElektronikAbbildung 9:Am Hackerfreundlichsten ist diesbezüglich die T8, denn die Hauptplatine besteht aus einem Arduino UNO-Klon und einem darauf aufgesteckten CNC-Schield mit entsprechenden Motorsteuerungen. Die Schrittmotorsteuerungen sind auf dem Schield aufgesteckt und können bei Bedarf ausgetauscht werden - besser geht's nicht. Ferner sind alle Pins des ATmega über das aufgesteckte Shield leicht zu erreichen - womit auch Hacks in Sachen Elektronik extrem einfach durchzuführen sind. Die Firmware kann über die Arduino IDE nach belieben angepasst werden. Abbildung 10: Die Kombination "Arduino Klon + CNC-Shield" ist mittlerweile bei den auf dem Markt erhältlichen Maschinen durch komplett verlötete Hauptplatinen ersetzt worden. Dennoch handelt es sich meist um die gleichen Komponenten. Abbildung 11: Wer mit einer CNC das Programmieren erlernen oder einfach nur etwas mehr aus der Firmware heraushohlen möchte, sollte darauf achten, dass die Maschine mit grbl als Firmware beworben wird. Abbildung 12: Auf der Hauptplatine sollte sich ein ATmega328 Mikrocontroller befinden. Abbildung 13: Ferner sollte auf der Platine ein Chip, der mit der Bezeichnung CH34 beginnt, zu finden sein. Dieser ist für die USB-Schnittstelle nötig. Firmware "hacken"Durch Manipulation der Firmware könnt ihr eure CNC unter Umständen unbrauchbar machen!!! Die hier beschriebenen Änderungen unternehmt ihr auf eigene Gefahr!!! Ich kann keinen Erfolg garantieren!!!Die auf dieser Seite beschriebene Vorgehensweise bezieht sich auf das Betriebssystem Linux. Wer ein anderes System verwendet, muss eventuell auftretende Problemen selber lösen. Ich verwende nichts anderes! Linux ist in Sachen Maschinensteuerung und Robotik das meistverwendete Betriebssystem. Wer in die Welt des "Physical Computing" einsteigen möchte, kommt nicht darum herum und sollte (sofern nicht schon lämgst geschehen) dieses Betriebssystem auf der Festplatte installieren. Getestet habe ich die hier zu lesende Anleitung mit Linux Mint, das für Einsteiger in Sachen Linux sehr zu empfehlen ist. Das Modifizieren der Firmware beginnt mit dem Anlegen einer Sicherungskopie! Dazu wird die CNC mit der USB-Schnittstelle verbunden. Anschließend wird über den Befehl
lsusb angezeigt, ob die CNC-Maschine ordnungsgemäß erkannt wurde und ob ein USB-Chip Typ ch34.. verbaut ist. Die Ausgabe sollte in etwa so aussehen:
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Entscheidend ist die vorletzte Zeile, welche einen HL-340 USB adapter anzeigt. Nun gilt es, herauszufinden, wie die Linux-interne Bezeichnung der USB-Schnittstelle der CNC-Maschine lautet. Das funkioniert mit dem Befehl:
ls /dev/tty* Die Ausgabe auf meinem Laptop ergibt ohne angeschlossene CNC-Maschine: /dev/tty /dev/tty13 /dev/tty19 /dev/tty24 /dev/tty3 /dev/tty35 /dev/tty40 /dev/tty46 /dev/tty51 /dev/tty57 /dev/tty62 /dev/ttyS0 /dev/ttyS14 /dev/ttyS2 /dev/ttyS25 /dev/ttyS30 /dev/ttyS8 /dev/tty0 /dev/tty14 /dev/tty2 /dev/tty25 /dev/tty30 /dev/tty36 /dev/tty41 /dev/tty47 /dev/tty52 /dev/tty58 /dev/tty63 /dev/ttyS1 /dev/ttyS15 /dev/ttyS20 /dev/ttyS26 /dev/ttyS31 /dev/ttyS9 /dev/tty1 /dev/tty15 /dev/tty20 /dev/tty26 /dev/tty31 /dev/tty37 /dev/tty42 /dev/tty48 /dev/tty53 /dev/tty59 /dev/tty7 /dev/ttyS10 /dev/ttyS16 /dev/ttyS21 /dev/ttyS27 /dev/ttyS4 /dev/tty10 /dev/tty16 /dev/tty21 /dev/tty27 /dev/tty32 /dev/tty38 /dev/tty43 /dev/tty49 /dev/tty54 /dev/tty6 /dev/tty8 /dev/ttyS11 /dev/ttyS17 /dev/ttyS22 /dev/ttyS28 /dev/ttyS5 /dev/tty11 /dev/tty17 /dev/tty22 /dev/tty28 /dev/tty33 /dev/tty39 /dev/tty44 /dev/tty5 /dev/tty55 /dev/tty60 /dev/tty9 /dev/ttyS12 /dev/ttyS18 /dev/ttyS23 /dev/ttyS29 /dev/ttyS6 /dev/tty12 /dev/tty18 /dev/tty23 /dev/tty29 /dev/tty34 /dev/tty4 /dev/tty45 /dev/tty50 /dev/tty56 /dev/tty61 /dev/ttyprintk /dev/ttyS13 /dev/ttyS19 /dev/ttyS24 /dev/ttyS3 /dev/ttyS7 Wird nun die CNC-Maschine an die USB-Schnittstelle angeschlossen, so ergibt der Befehl: /dev/tty /dev/tty13 /dev/tty19 /dev/tty24 /dev/tty3 /dev/tty35 /dev/tty40 /dev/tty46 /dev/tty51 /dev/tty57 /dev/tty62 /dev/ttyS0 /dev/ttyS14 /dev/ttyS2 /dev/ttyS25 /dev/ttyS30 /dev/ttyS8 /dev/tty0 /dev/tty14 /dev/tty2 /dev/tty25 /dev/tty30 /dev/tty36 /dev/tty41 /dev/tty47 /dev/tty52 /dev/tty58 /dev/tty63 /dev/ttyS1 /dev/ttyS15 /dev/ttyS20 /dev/ttyS26 /dev/ttyS31 /dev/ttyS9 /dev/tty1 /dev/tty15 /dev/tty20 /dev/tty26 /dev/tty31 /dev/tty37 /dev/tty42 /dev/tty48 /dev/tty53 /dev/tty59 /dev/tty7 /dev/ttyS10 /dev/ttyS16 /dev/ttyS21 /dev/ttyS27 /dev/ttyS4 /dev/ttyUSB0 /dev/tty10 /dev/tty16 /dev/tty21 /dev/tty27 /dev/tty32 /dev/tty38 /dev/tty43 /dev/tty49 /dev/tty54 /dev/tty6 /dev/tty8 /dev/ttyS11 /dev/ttyS17 /dev/ttyS22 /dev/ttyS28 /dev/ttyS5 /dev/tty11 /dev/tty17 /dev/tty22 /dev/tty28 /dev/tty33 /dev/tty39 /dev/tty44 /dev/tty5 /dev/tty55 /dev/tty60 /dev/tty9 /dev/ttyS12 /dev/ttyS18 /dev/ttyS23 /dev/ttyS29 /dev/ttyS6 /dev/tty12 /dev/tty18 /dev/tty23 /dev/tty29 /dev/tty34 /dev/tty4 /dev/tty45 /dev/tty50 /dev/tty56 /dev/tty61 /dev/ttyprintk /dev/ttyS13 /dev/ttyS19 /dev/ttyS24 /dev/ttyS3 /dev/ttyS7 Es ist ein zusätzliches Gerät erkannt worden mit der Bezeichnung /dev/ttyUSB0. Diese Bezeichnung für die USB-Schnittstelle muss beim Auslesen der Firmware angegeben werden. Dazu muss eventuell die Software "avrdude" installiert werden, was mit den beiden Befehlen:
sudo apt-get update gemacht wird. Jetzt können wir die Firmware auf die Festplatte kopieren, was mit den beiden Befehlen:
avrdude -u -c arduino -p m328p -P /dev/ttyUSB0 -b 115200 -U flash:r:"3018pro.hex":i geschieht. Lautet die Bezeichnung für die USB-Schnittstelle auf eurem Computer nicht "/dev/USB0", so müsst ihr den Parameter hinter -P entsprechend ändern (z.B. in "/dev/USB1" oder "/dev/ttyACM0"). In beiden Fällen sollte angezeigt werden, dass die Firmware erfolgreich ausgelesen wurde:
Reading | ################################################## | 100% 0.00s Hat das Auslesen der Firmware nicht funktioniert, so erscheint die Ausgabe:
avrdude: stk500_recv(): programmer is not responding Das kann daran liegen, dass die Übertragungsrate der USB-Schnittstelle nicht stimmt. Bei meiner 3018Pro musste ich diese auf 57600 Baud ändern:
avrdude -u -c arduino -p m328p -P /dev/ttyUSB0 -b 57600 -U flash:r:"3018pro.hex":i Probiert einfach verschiedene Baudraten durch (z.B. 110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200, 128000 und 256000), bis das Auslesen funktioniert. Auf jeden Fall müssen jetzt zwei neue Dateien auf eurer Festplatte mit Namen "3018pro.hex" und "3018pro_eeeprom.hex" zu finden sein und die Dateigröße muß mehrere Kilobytes betragen, ansonsten ist das Auslesen der Firmware fehlgeschlagen, und ich empfehle nicht, an der Firmware der CNC herumzufummeln!!! Hat das Sichern der Firmware funktioniert, kann die Original-Firmware jederzeit wieder mit den Befehlen:
avrdude -u -c arduino -p m328p -P /dev/ttyUSB0 -b 115200 -U flash:w:"3018pro.hex":i Zur CNC zurückgespielt werden, womit diese wieder im Originalzustand ist. Nach Anlegen der Sicherheitskopie könnt ihr die CNC über die Arduino IDE wie gewohnt programmieren. Solltet ihr beim Anlegen der Sicherungskopie der Firmware eine andere Baudrate als 115200 verwendet haben, so muss die Arduino IDE ein wenig angepasst werden. Bei meiner 3018Pro waren das 57200 Baud. Dazu muss die Datei "boards.txt" der Arduino IDE angepasst werden. Diese Datei befindet sich unter Linux Mint in dem Verzeichnis: ./.arduino15/packages/arduino/hardware/avr/1.8.6/boards.txt Die Bezeichnung des Pfades kann abweichen, solltet ihr nicht die gleiche Version der Arduino IDE installiert haben. Die Datei solltet ihr aber auf jeden Fall finden. Öffnet diese Datei mit einem Texteditor und fügt folgende Zeilen ein:
Entscheidend ist die Zeile: cnc3018.upload.speed=57600 in welcher die Baudrate eingetragen werden muss, die ihr beim erfolgreichen Sichern der Firmware verwendet habt. Abbildung 14: Startet ihr nun die Arduino IDE, so könnt ihr unter Tools->Board->Arduino AVR-> den Eintrag "3018Pro" auswählen und so die CNC wie einen normalen Arduino UNO programmieren. <<< Xylophon Demonstration Servomotor >>> Neuigkeiten Das Projekt Technik RoboSpatium Unterstützung Stichwortverzeichnis Archiv Download Reaktionen Spiele Verweise Gadgets Kontakt Impressum |