Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Lasergravur mit DIY Arduino SCARA Robot

In diesem Tutorial zeige ich Ihnen, wie ich meinen selbstgebauten 3D-gedruckten SCARA-Roboterarm, den ich in einem meiner vorherigen Videos gebaut habe, umgebaut habe, um als Lasergravierer zu arbeiten. Sie können sich das folgende Video ansehen oder den folgenden Artikel lesen.

Projektübersicht

Der SCARA-Roboter hat 4 Freiheitsgrade, die von 4 NEMA 17-Schrittmotoren angetrieben und über ein Arduino-Board gesteuert werden. Im Originalvideo habe ich ein Arduino UNO-Board in Kombination mit einem CNC-Schild verwendet, aber jetzt verwenden wir ein Arduino MEGA-Board in Kombination mit einem RAMPs-Board. Wir brauchen diese Kombination, weil wir die Marlin 3D-Drucker-Firmware zur Steuerung des Roboters verwenden werden.

Was den mechanischen Teil betrifft, musste ich nur den Greifermechanismus durch ein Lasermodul ersetzen. In diesem Fall verwende ich ein 5,5-W-Lasermodul, das zum Gravieren ausreicht.

Ein cooles Feature, das wir mit diesem SCARA-Roboter-Setup erhalten, ist, dass wir einen größeren Bereich der Z-Achsen-Bewegung haben und so größere Objekte lasergravieren können.

Auch der Arbeitsbereich ist angesichts der geringen Stellfläche des Roboters ziemlich beeindruckend. Es kann sowohl den Bereich davor als auch auf beiden Seiten nutzen. Wir können es tatsächlich so einrichten, dass fast die gesamten 360 Grad um den Roboter herum als Arbeitsbereich genutzt werden. Dies ist dank der Open-Source-Firmware für Marling 3D-Drucker möglich, die Optionen für Lasergravur und SCARA-Roboter-Setup bietet.

Zum Generieren der G-Codes verwende ich eine weitere Open-Source-Software, Inkscape und ein Plugin dafür namens Inkscape-Lasertools. Wir können G-Codes nur mit Konturen oder mit Konturen und Füllung aus demselben Vektorbild generieren, und wir haben verschiedene Optionen wie das Anpassen des Laserstrahls, der Verfahrgeschwindigkeit, der Füllgeschwindigkeit, der Umfangsgeschwindigkeit, der Befehle zum Ein- und Ausschalten des Lasers, einschließlich der PWM-Steuerung des Laser und so weiter.

Trotzdem werde ich Sie jetzt durch den gesamten Prozess der Einrichtung eines SCARA-Roboters führen, der als Lasergravierer arbeitet. Wir werden uns das Design dieses SCARA-Roboters ansehen, wie die Marlin-Firmware entsprechend unserer Maschine installiert und konfiguriert wird und wie die Zeichnungen und die G-Codes für die Gravur vorbereitet werden. Fangen wir also an.

Design und 3D-Modell

Hier ist ein kurzer Blick auf das 3D-Modell dieses SCARA-Roboters, damit Sie sehen können, wie er funktioniert, falls Sie das Original-Tutorial nicht gesehen haben, in dem ich ausführlich erkläre, wie ich ihn gebaut habe.

Der Roboter ist so konzipiert, dass die meisten Teile einfach 3D-gedruckt werden können. Die Gelenke werden von NEMA 17-Schrittmotoren angetrieben, deren Geschwindigkeit mit Hilfe von GT2-Riemen und einigen geeigneten 3D-gedruckten GT2-Riemenscheiben reduziert wird. Der Roboter hat 4 Freiheitsgrade, aber in diesem Fall brauchen wir nur 3 Freiheitsgrade, zwei Umdrehungen, um jeden Punkt im Arbeitsbereich zu erreichen, und eine lineare Bewegung, um die Höhe des Lasers einzustellen.

Das vierte Gelenk, das den Endeffektor dreht, wird nicht verwendet, obwohl das Lasermodul daran befestigt wird. Ich habe die Halterung für den Laser so gemacht, dass sich der Laserstrahl im Rotationszentrum dieser 4. Achse befindet, sodass selbst wenn sich die Achse dreht, die Endposition nicht beeinflusst wird.

Sie können dieses 3D-Modell finden und herunterladen sowie es in Ihrem Browser auf Thangs erkunden:

Laden Sie das 3D-Modell der Baugruppe von Thangs herunter.

Danke Thangs für die Unterstützung dieses Tutorials.

STL-Dateien für den 3D-Druck:

Gesponsert


Ich habe diesen SCARA-Roboter mit 3DEXPERIENCE SOLIDWORKS for Makers entworfen, das auch der Sponsor dieses Videos ist. Ja, Sie haben richtig gehört. Mit 3DEXPERIENCE SOLIDWORKS for Makers bringt SOLIDWORKS endlich seine branchenführenden Konstruktionswerkzeuge für Maker aller Art zu einem wahnsinnig günstigen Preis.

Hersteller können jetzt für nur 99 $ pro Jahr auf die besten SOLIDWORKS Konstruktionswerkzeuge zugreifen, aber für MEINE Zuschauer bietet SOLIDWORKS ein zeitlich begrenztes Angebot, mit dem Sie diese Werkzeuge noch günstiger erhalten!

Das stimmt. Für Zuschauer dieses Videos können Sie dieses Paket heute – das eine mit der Cloud verbundene Version von SOLIDWORKS sowie browserbasierte Konstruktionswerkzeuge wie 3D Creator und 3D Sculptor enthält – zu einem Sonderpreis von 20 % erwerben, solange der Vorrat reicht!

Alles, was Sie tun müssen, ist auf meinen folgenden Link zu klicken und Ihre kostenlose 3DEXPERIENCE ID zu erstellen, mit der Sie auf dieses spezielle Angebot mit 20 % Rabatt zugreifen können – damit Sie noch heute mit den Besten beginnen können. Vielen Dank an SOLIDWORKS für das Sponsoring und die Unterstützung von Bildungsinhalten wie diesen.

Sehen Sie sich SOLIDWORKS für Macher an

20 % Rabatt auf SOLIDWORKS für Macher


Installieren des Lasermoduls

Zuerst entfernte ich den Greifmechanismus vom Roboter, der mit vier Schrauben befestigt war.

Die Drähte zur Steuerung des Greiferservos werden nun zur Steuerung des Lasermoduls verwendet.

Das spezielle Lasermodul, das ich habe, arbeitet mit 12 V und kann mit einem PWM-Signal mit nur zwei Drähten, Masse und VCC, gesteuert werden. Für den Anschluss des Lasers habe ich den Stecker verwendet, der mit dem Modul geliefert wird, der mit den 3 Pins. Der linke schwarze Draht ist Masse und der mittlere, der weiße Draht ist in meinem Fall die VCC. Ich habe zwei männliche Überbrückungsdrahtverbinder an diese Drähte gelötet, damit ich sie leicht mit den Drähten für den Endeffektor verbinden kann.

Dann habe ich einfach den Stecker aufgesetzt, den Draht durch eine der Öffnungen der Halterung geführt und das Lasermodul mit zwei M3-Schrauben befestigt. Mit vier M4-Schrauben befestigte ich das Lasermodul am Roboter.

Als nächstes brauchen wir, wie ich bereits erwähnt habe, anstelle des Arduino UNO-Boards, das ich zur Steuerung des Roboters im Originalvideo verwendet habe, jetzt ein Arduino MEGA-Board und eine Kombination mit einem RAMPS-Board.

Hier müssen wir zunächst die Schrittauflösung der Treiber auswählen. Für eine gleichmäßigere Bewegung sollten wir natürlich die höchstmögliche Auflösung auswählen, indem wir für jeden Schritttreiber drei Jumper hinzufügen. Ich verwende den Schritttreiber A4988 mit einer Auflösung von 16 Schritten, aber wir können auch den Schritttreiber DRV8825 mit einer Auflösung von 1/32 Schritten verwenden.

Dann können wir alle Drähte an Ort und Stelle verbinden. Ich habe alle meine Drähte markiert, damit ich sie nicht durcheinander bringe.

SCARA-Roboter-Lasergravierer-Schaltplan

Hier ist der Schaltplan, wie alles angeschlossen werden muss.

Die Schrittmotoren gehen direkt über die Treiber und die Endschalter, die normalerweise mit zwei Drähten geschlossen sind, gehen an den Endanschlägen S und – Pins für jede Achse.

Zur Steuerung des Lasermoduls verwenden wir den Pin D9, der in einem 3D-Drucker-Setup zur Steuerung eines Lüfters verwendet wird. Dieser Pin ist PWM-fähig, so dass wir damit die Intensität des Lasers steuern können. Um alles mit Strom zu versorgen, benötigen wir eine 12-V-Stromversorgung mit einer Mindeststromstärke von 3 A.

Die für dieses Projekt benötigten Komponenten erhalten Sie über die folgenden Links:

  • Schrittmotor – NEMA 17……………… 
  • A4988 Schrittmotortreiber …………………..… 
  • RAMPS 1.6 Board………………………..…
  • Arduino MEGA………………….…..………
  • Endschalter …………………………………. AmazonBanggood  / AliExpress
  • Gleichstromversorgung …………………………. Amazon  / Banggood  / AliExpress
  • Lasermodul ………………………………… Amazon / Banggood / AliExpress
  • Laserschutzbrillen …………………….. Amazon / Banggott / AliExpress

Was die mechanischen Komponenten betrifft, können Sie den Originalartikel überprüfen.

Nachdem ich alles wie erklärt angeschlossen hatte, drückte ich ein wenig die Drähte und bedeckte die Elektronik, damit alles schön und sauber aussieht.

Beenden der Montage

Es gibt noch eine Sache, die ich an meinem SCARA-Roboter ändern musste, damit er richtig funktioniert, und das ist, den Zeitpunkt zu ändern, an dem der Endschalter des zweiten Arms ausgelöst wird. Da der SCARA-Roboter so eingestellt wird, dass er als Rechtshänder arbeitet, muss die Referenzfahrt des zweiten Arms bei 0 Grad oder in einer Linie mit dem ersten Arm liegen, während er sich nach links drehen kann. Dazu habe ich einfach ein kleines Stück auf das Armgelenk geklebt, so dass es an der beschriebenen Position den Endschalter auslöst.

Eigentlich gibt es noch ein kleines Detail, das ich ändern musste. Der ursprüngliche Auslöser des Endschalters störte eine der Muttern an der Unterseite des Arms, sodass der Arm nicht seine volle Bewegung erreichen konnte.

Ich habe diese Mutter einfach entfernt und durch einen Gewindeeinsatz ersetzt, damit das Teil beim Befestigen nicht herausragt.

Und das ist es. Der SCARA-Roboter ist jetzt bereit, als Lasergravierer zu arbeiten, aber natürlich müssen wir zuerst die Firmware auf dem Arduino-Board installieren.

Siehe auch: DIY-Arduino-Roboterarm mit Smartphone-Steuerung

Marlin-Firmware für Lasergravur mit SCARA-Roboter

Wie gesagt, ich werde die Marlin-Firmware verwenden, die eine der am weitesten verbreiteten Open-Source-Firmware für 3D-Drucker ist, die auch Optionen für Lasergravur und SCARA-Roboter-Setups bietet. Wir können die Marlin-Firmware entweder von der offiziellen Website oder von Github.com herunterladen.

Um die Marlin-Firmware auf dem Arduino MEGA-Board zu installieren, verwenden wir PlatformIO IDE anstelle von Arduino IDE. Da die Marlin-Firmware groß und komplex ist, gibt die Arduino IDE manchmal Fehler aus und kann sie nicht kompilieren.

PlarformIO baut auf dem Code-Editor von Visual Studio auf und kann als Erweiterung installiert werden. Das heißt, wir müssen zuerst Visual Studio Code installieren, dann im Erweiterungsmanager nach dem PlatformIO suchen und es von dort aus installieren.

Sobald die Installation abgeschlossen ist, können wir auf die Schaltfläche „Projekt öffnen“ klicken, zum Marlin-Ordner navigieren, den wir heruntergeladen und entpackt haben, und auf „Marlin öffnen“ klicken.

Dadurch werden alle Marlin-Dateien in den Editor geladen, sodass wir sie öffnen und bearbeiten können. Die beiden Hauptdateien, in denen wir alle Anpassungen gemäß unserem Maschinensetup vornehmen, sind die Dateien Configuration.h und Configuration_adv.h.

Eigentlich sollten wir, bevor wir den Marlin-Ordner öffnen, zuerst zum Konfigurations-Repository auf Github.com gehen, von wo wir einige vorgetestete Konfigurationsdateien herunterladen können, die für uns geeignet sind. Im „Examples“-Ordner sollten wir zum „SCARA“-Ordner gehen und diese beiden Konfigurationsdateien kopieren und in unseren Marlin-Ordner einfügen.

Siehe auch:So richten Sie GRBL ein & CNC-Maschine mit Arduino steuern

Konfigurieren der Marlin-Firmware

Sobald wir also den Marlin-Ordner mit den „SCARA“-Konfigurationsdateien erneut öffnen, können wir die Datei Configuration.h öffnen und einige Parameter entsprechend unserer Maschine bearbeiten. Als erstes müssen wir hier den Typ des SCARA-Roboters auswählen, den wir haben.

/** * MORGAN_SCARA was developed by QHARLEY in South Africa in 2012-2013. * Implemented and slightly reworked by JCERNY in June, 2014. */ //#define MORGAN_SCARA /** * Mostly Printed SCARA is an open source design by Tyler Williams. See: * https://www.thingiverse.com/thing:2487048 * https://www.thingiverse.com/thing:1241491 */ #define MP_SCARA #if EITHER(MORGAN_SCARA, MP_SCARA) // If movement is choppy try lowering this value #define SCARA_SEGMENTS_PER_SECOND 100 // Length of inner and outer support arms. Measure arm lengths precisely. #define SCARA_LINKAGE_1 228.15 // Arm 1 lenght - 228(mm) #define SCARA_LINKAGE_2 136.2 // Arm 2 lenght - 136.5(mm) // SCARA tower offset (position of Tower relative to bed zero position) // This needs to be reasonably accurate as it defines the printbed position in the SCARA space. #define SCARA_OFFSET_X 300 // (mm) #define SCARA_OFFSET_Y 150 // (mm) Codesprache:Arduino (arduino)

„MORGAN_SCARA“ ist für parallele SCARA-Roboter und „MP_SCARA“ für serielle SCARA-Roboter, genau wie der, den wir haben. Dies basiert auf einem Open-Source-Design von Tyler Williams, das inverse Kinematik auf den G-Codes implementiert, die für normale kartesische Systeme generiert werden.

In meinem vorherigen Tutorial habe ich bereits erklärt, was inverse Kinematik ist und wie sie mit diesem SCARA-Roboter funktioniert. Weitere Details finden Sie in diesem Tutorial. Kurz gesagt berechnen wir mit inverser Kinematik, in welchen Winkeln sich die beiden Arme positionieren sollten, um eine gegebene X-, Y-Koordinate zu erreichen. Die Mathematik hinter der inversen Kinematik basiert auf Trigonometrie, und das Ergebnis hängt ausschließlich von der Länge der beiden Arme ab.

Allerdings müssen wir hier die Länge der Roboterarme eingeben, und in diesem Fall sind das 228 mm für den ersten Arm und 136,5 mm für den zweiten Arm. Der nächste Parameter, den wir einstellen müssen, ist die Nullposition des Arbeitsbetts. Dieser Wert wird mit den SCARA_OFFSET_X- und Y-Werten eingegeben und ist der Abstand vom Turm oder dem ersten Gelenk relativ zur Nullposition des Betts.

Es gibt noch einen weiteren Parametersatz, den wir entsprechend unserer Maschine anpassen müssen, und das ist MANUAL_X_HOME_POS für X und Y. Diese Werte sind die X- und Y-Abstände vom Roboterarm-Endeffektor oder dem Laser, wenn er sich in der Ausgangsposition befindet, relativ auf die Bett-Nullposition, die wir zuvor eingestellt haben. Um diese Werte zu erhalten, habe ich in SOLIDWORKS eine einfache Skizze mit den beiden Linien erstellt, die die beiden Arme des SCARA-Roboters darstellen.

Von hier aus können Sie die gewünschte Nullposition des Betts einstellen und die Werte für die MANUAL_X_HOME_POS-Variablen abrufen.

Als nächstes müssen wir die Endstop-Verbindungen definieren. In unserem Fall haben wir für jede Achse einen Endanschlag, der sich in der Mindestposition befindet.

#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG Codesprache:Arduino (arduino) 

Darüber hinaus müssen wir X_HOME_DIR auf –1 definieren, was die Richtung der Endstopps beim Homing angibt.

// Direction of endstops when homing; 1=MAX, -1=MIN
// :[-1,1]
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1 Codesprache:Arduino (arduino) 

Hier sollten wir auch prüfen, ob alle __MIN_ENDSTOP_INVERTING-Variablen auf „FALSE“ gesetzt sind.

Dann müssen wir die DEFAULT_AXIS_STEPS_PER_UNIT-Werte an unsere Maschine anpassen.

#define DEFAULT_AXIS_STEPS_PER_UNIT   { 177.7777777, 142.2222222, 400, 93 } Codesprache:Arduino (arduino) 

Diese Werte geben an, wie viele Schritte das Programm an die Schritttreiber senden soll, damit sich der Motor um eine Einheit bewegt, und in diesem Fall ist das eine Drehung des Gelenks um ein Grad. So habe ich diese Werte für meinen SCARA-Roboter berechnet.

Die NEMA 17-Schrittmotoren benötigen 200 Schritte für eine volle Drehung, aber da wir eine 16. Schrittauflösung verwenden, bedeutet dies, dass wir 3200 Schritte an den Treiber senden müssen, damit der Motor eine volle 360-Grad-Drehung macht. Außerdem haben wir für das erste Gelenk eine Geschwindigkeitsreduzierung von 20:1, was bedeutet, dass wir 64000 Schritte für eine volle Drehung benötigen. Wenn wir diesen Wert durch 360 teilen, erhalten wir die Zahl 177.777, was eigentlich die Anzahl der Schritte ist, die das Programm an den Fahrer senden muss, um das Gelenk um eine Einheit oder ein Grad zu drehen.

Der zweite Arm hat eine Geschwindigkeitsreduzierung von 16:1, also ist der Wert 142.222. Für die Z-Achse haben wir eine Leitspindel mit 8 mm Steigung, was bedeutet, dass eine volle Umdrehung des Motors zu einer linearen Überwachung von 8 mm führt. Eine Einheit ist hier ein mm, also müssen wir die 3200 Schritte durch 8 teilen, und so erhalten wir den Wert 400, was die Anzahl der Schritte ist, die die Z-Achse benötigt, um eine Einheit oder einen mm zu bewegen. Der vierte Wert hier ist für den Extruderstepper, aber da wir hier keinen Extruder haben, müssen wir ihn nicht ändern.

Die Richtung des Schrittmotors hängt davon ab, wie wir die Drähte angeschlossen haben. Falls wir es falsch machen, können wir entweder die Drähte umkehren oder es hier in der Software ändern, indem wir die INVERT_X_DIR-Variablen auf TRUE setzen.

// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false Codesprache:Arduino (arduino) 

Wir sollten noch einige Änderungen vornehmen, damit diese Marlin-Firmware funktioniert. Da Marlin in erster Linie Firmware für Drucker im klassischen kartesischen Stil ist, weist der darin enthaltene SCARA-Modus einige kleine Fehler auf, die zum Zeitpunkt der Erstellung dieses Projekts noch nicht behoben waren. Hier sind die Änderungen, die ich vorgenommen habe, damit es funktioniert.

In scara.cpp, Zeile 75 habe ich MORGAN_SCARA durch MP_SCARA ersetzt. In motion.cpp musste ich die Zeilen 1716 und 1717 kommentieren, in cofiguration.h VALIDATE_HOMING_ENDSTOPS kommentieren und in configuration_adv.h QUICK_HOME auskommentieren.

Tatsächlich funktionierte das Homing trotz dieser Änderungen immer noch nicht 100% richtig, aber ich werde die Problemumgehung erklären, die ich verwendet habe, um es zum Laufen zu bringen.

Trotzdem können wir jetzt auf die Schaltfläche Hochladen klicken, die sich unten links im Editor befindet, und die Marlin-Firmware wird auf dem Arduino-Board installiert. Sie können diese spezielle Marlin-Firmware mit allen Änderungen herunterladen, die ich vorgenommen habe, um mit diesem SCARA-Roboter unten zu arbeiten, oder Sie können natürlich die ursprüngliche Marlin-Firmware von Github.com herunterladen und alle Änderungen selbst vornehmen, wie ich erklärt habe.

Steuerungssoftware – Rapetier-host

In Ordnung, sobald wir die Marlin-Firmware installiert haben, brauchen wir jetzt ein Computerprogramm, um den Roboter zu steuern und ihm G-Codes zu senden. Es gibt viele Optionen, aber ich habe mich für Rapetier-Host entschieden, eine beliebte 3D-Drucksoftware. Wir können diese Software kostenlos herunterladen und verwenden. Sobald wir es installiert haben, können wir zu Config> Printer Settings gehen und hier einige Dinge anpassen.

Wir sollten den COM-Port auswählen, an den unser Arduino angeschlossen ist, und die Baudrate auswählen, die wir in der Marlin-Firmware eingestellt haben. Auf der Registerkarte Druckerform sollten wir die X- und Y-Maximalwerte und den Druckerbereich festlegen.

Sobald wir diese Einstellungen angewendet haben, können wir auf die Schaltfläche Verbinden klicken und die Software sollte sich mit unserem SCARA-Roboter verbinden. Dann können wir in die manuelle Steuerung gehen und von hier aus versuchen, den Drucker zu bewegen.

Beachten Sie, dass sich der Roboter beim Drücken der X- oder Y-Pfeile möglicherweise seltsam verhält, da er sofort eine inverse Kinematik implementiert und wahrscheinlich beide Arme bewegt, selbst wenn nur ein Pfeil gedrückt wird.

Um den Roboter jedoch zum Laufen zu bringen, sollten wir ihn zuerst in die Heimat bringen. Bevor wir auf den Home-Button klicken, sollten wir die Gelenke manuell näher an die Endschalter bringen.

Wenn wir auf die Home-Schaltfläche klicken, sollte sich der Roboter in Richtung der Endschalter bewegen. Tatsächlich beginnt sich der zweite Arm in Richtung seines Endschalters zu bewegen, während sich der erste Arm in die entgegengesetzte Richtung bewegen sollte. Sobald der zweite Arm oder die Y-Achse seinen Endschalter erreicht, beginnt der erste Arm oder die X-Achse ebenfalls, sich in Richtung seines Endschalters zu bewegen. Sobald der X-Endschalter erreicht ist, bewegt sich der Roboter zum Z-Endschalter.

Nachdem die Referenzfahrt abgeschlossen ist, sollten wir in der Lage sein, mit dem Gravieren zu beginnen oder den Roboter manuell um seinen Arbeitsbereich zu bewegen. Wenn wir jedoch versuchen, sofort etwas zu tun, wird sich der Roboter aus irgendeinem Grund schlecht benehmen und seltsame Bewegungen ausführen. Um dieses seltsame Verhalten zu vermeiden, müssen wir nach dem Homing nur den Roboter von der Software trennen und dann wieder verbinden .

Jetzt können wir manuell bewegen oder gravieren und der Roboter wird richtig funktionieren. Dies ist wahrscheinlich ein Fehler in der Marlin-Firmware, und er liegt daran, dass der SCARA-Modus in dieser Firmware nicht gut unterstützt wird, da kein großes Interesse daran besteht.

Wenn wir jedoch den G-Code-Befehl G00 X0 Y0 senden, sollte der Roboter in seine Nullposition gehen, die wir in der Marlin Configuration.h-Datei festgelegt haben.

Dann können wir den Laser aktivieren, indem wir den Befehl M106 S10 senden. Der Wert hinter S kann zwischen 0 und 255 liegen und ist eigentlich die PWM-Steuerung der Laserleistung von 0 bis 100 %. Also verwenden wir hier einen Wert von S10, damit nichts verbrennt, aber sichtbar ist, damit wir die Nullposition sehen und auch den Fokus des Lasers einstellen können.

Der Fokus kann manuell durch Drehen der Laserlinse unten eingestellt werden und hängt gleichzeitig vom Abstand zwischen ihm und dem Werkstück ab. Es wird empfohlen, einen Abstand von etwa 5 cm einzustellen und den Fokus so lange anzupassen, bis Sie den kleinstmöglichen Punkt erhalten.

Lasergravur mit dem SCARA-Roboter 

Um die Maschine zu kalibrieren, ist es eine gute Idee, mit dem Gravieren einer einfachen quadratischen Form zu beginnen, damit wir sehen können, ob sie richtig funktioniert.

Bei meinem ersten Versuch war die quadratische Form nicht in der richtigen Position und Ausrichtung und das liegt daran, dass ich einen falschen Wert für die Variable MANUAL_X_HOME_POS eingestellt habe. Nachdem ich es korrigiert hatte, kam die quadratische Form fast so heraus, wie sie sein sollte.

Also lade ich einen G-Code meines Logos hoch und stelle den Roboter so ein, dass er es graviert.

Um ehrlich zu sein, ist es so cool, diesen SCARA-Roboter zu sehen, der als Lasergravierer arbeitet, aber bitte beachten Sie, dass wir Laserschutzbrillen verwenden MÜSSEN das schützt unsere Augen vor dem ultravioletten Licht des Lasers, da es sehr gefährlich ist. Außerdem sollten wir eine Sicherheits-Atemschutzmaske verwenden und arbeiten Sie im Freien oder in gut belüfteten Räumen, da die beim Lasergravieren entstehenden Dämpfe auch gesundheitsgefährdend sind.

Trotzdem ist die Logogravur gut gelungen, allerdings ist mir aufgefallen, dass sie nicht ganz rechtwinklig ist.

Also machte ich mich wieder daran, die einfache quadratische Form zu gravieren, um herauszufinden, was das Problem verursachte. Mir wurde klar, dass das Problem bei den Abmessungen für die Längen der Arme liegt. Da der Roboter nicht so starr ist, neigt das Gewicht der Arme selbst dazu, dass sich der Roboter ein wenig nach vorne neigt, wenn die Arme ausgestreckt sind. Dies führt dazu, dass die tatsächliche Größe oder Position der Arme etwas abweichen.

Nach Dutzenden von Tests habe ich schließlich die Werte für die Längen von 228 auf 228,15 mm für den ersten Arm und von 136,5 auf 136,2 mm für den zweiten Arm angepasst. Dies gab mir das genaueste Ergebnis und jetzt war die quadratische Form richtig. Je nach Druckposition, ob der Arm vollständig ausgefahren ist oder nicht, kann die Genauigkeit dennoch variieren.

Generieren von G-Code für die Lasergravur

Lassen Sie mich Ihnen abschließend zeigen, wie ich die Zeichnungen vorbereitet und G-Codes für die Lasergravur generiert habe. Ich habe zu diesem Zweck Inkscape verwendet, eine Open-Source-Vektorgrafiksoftware.

Hier müssen wir zuerst die Seitengröße auf die Größe unseres Arbeitsbereichs einstellen. Als Beispiel zeige ich Ihnen, wie ich das Arduino-Logo für die Lasergravur vorbereitet habe.

Ich habe ein Bild des Arduino-Logos heruntergeladen und in Inkscape importiert. Mit der Trace Bitmap-Funktion müssen wir zuerst das Bild in ein Vektorformat konvertieren. Wir können G-Codes nur aus Vektorformen generieren und zu diesem Zweck habe ich ein Plugin namens Inkscape-Lasertools verwendet. Wir können dieses Plugin von Github.com herunterladen und installieren, indem wir die Dateien aus der ZIP-Datei kopieren und in das Inkscape-Erweiterungsverzeichnis einfügen.

Sobald wir also das Plugin installiert haben, können wir zu Extensions>Lasertools gehen, um es zu öffnen und es zum Generieren eines G-Codes zu verwenden. Es gibt mehrere Optionen zum Einstellen und Anpassen mit diesem Plugin. Da wir unseren Laser an den D9-Pin angeschlossen haben, der zur Steuerung eines Lüfters verwendet wird, können wir den Laser aktivieren, indem wir den M106-Befehl senden.

Wir können wählen, ob der G-Code nur die Konturen der Form oder auch die Füllung geschlossener Schleifen enthält. Wir können die Laserfahrgeschwindigkeit, die Laserfüllgeschwindigkeit und die Umfangsgeschwindigkeit einstellen.

Wenn wir bei der Auswahl einer Füllung die Intensität des Lasers im Füllungsbereich verringern möchten, können wir dem M106-Befehl einen PWM-Wert hinzufügen, um die Laserintensität einzustellen, z. B. M106 S128 für 50 % Laserleistung. Einen ähnlichen Effekt könnten wir erzielen, wenn wir die Laserleistung auf 100 % belassen, aber die Verfahrgeschwindigkeit im Infill-Bereich erhöhen. Das sind also eigentlich Einstellungen, mit denen wir spielen sollten, um zu sehen, was für uns am besten funktioniert.

In den Einstellungen können wir „Kleine Füllpfade entfernen“ auswählen und auf der Registerkarte „Begrenzungsrahmen“ können wir „G-Code für Vorschau des Begrenzungsrahmens generieren“ auswählen. Diese Funktion ist sehr nützlich, da sie einen Vorschau-G-Code des Bereichs generiert, in dem die Zeichnung stattfinden wird, und so können wir unser Werkstück genau positionieren.

Ok, sobald wir den G-Code generiert haben, können wir ihn in das Repetier-Host-Programm laden. Da dies kein 3D-Druck ist, sondern nur Reisebewegungen, sollten wir das Kontrollkästchen „Reisebewegungen anzeigen“ aktivieren, um eine Vorschau unseres G-Codes anzuzeigen.

Endlich können wir auf die Schaltfläche „Drucken“ klicken und unser SCARA-Roboter lasert das Werkstück. Ich habe bereits gesagt, dass es so befriedigend ist, diese SCARA-Roboter-Lasergravur zu sehen, und wir können so viele Dinge damit lasergravieren.

Eine gute Eigenschaft ist, dass es eine verstellbare Z-Achse hat, was bedeutet, dass wir höhere Objekte lasergravieren können, wie zum Beispiel diese Holzkiste für meine Forstner-Bits. Ich habe mein Logo auf der Vorderseite eingraviert und einen Text „Forstner Bits“ auf der Rückseite der Box.

Hier ist ein Beispiel für das Gravieren derselben Vektorform, in diesem Fall eine Batman-Silhouette, nur mit Konturen und mit Füllung auf geschlossenen Schleifen.

Beim Gravieren mit Infill dauert es natürlich viel länger, aber auch das endgültige Erscheinungsbild ist viel besser.

Lassen Sie mich Ihnen abschließend zeigen, wie ich diese riesige Zeichnung mit einer Fläche von 600 x 450 mm mit diesem SCARA-Roboter graviert habe.

Ich habe den Roboter auf das Werkstück gestellt, damit er die Vorderseite und die beiden Seiten erreichen kann. Ich habe das Werkstück und den Roboter manuell so eingestellt, dass sie in der Mitte und parallel zueinander sind.

In der Marlin-Firmware habe ich die Nullposition auf die linke untere Ecke des Werkstücks eingestellt, die in X-Richtung 300 mm und in Y-Richtung 150 mm vom Roboter entfernt ist. Bei der Definition dieser Werte sollten wir auf die Vorzeichen achten. Dementsprechend habe ich auch die Variablen MANUAL_X und Y_HOME_POS geändert.

Nachdem ich die Firmware mit diesen neuen Werten hochgeladen habe, habe ich den Roboter wie zuvor erklärt positioniert und den Laser in die Nullposition geschickt. Dann habe ich den Laser aktiviert, damit ich die Arbeitspreisorientierung bei Bedarf weiter anpassen kann.

Durch das Senden von G01-Befehlen, die gerade Linien erzeugen, konnte ich das Werkstück überprüfen und anpassen, um es richtig zu positionieren.

Nun, um den G-Code für diese Gravur vorzubereiten, habe ich eine Vorlage mit dieser Konfiguration des Werkstücks und des Roboters in Inscape erstellt. Von hier aus kann ich sehen, wohin der Roboter mit dem Laser gelangen kann, und die Zeichnung entsprechend ändern.

Für die Zeichnung habe ich ein Bild heruntergeladen und mit dem Trace Bitmap-Tool in ein Vektorbild konvertiert.

Dann habe ich das Bild neu skaliert und positioniert, wie ich es wollte, und mit dem Löschwerkzeug habe ich die Bereiche gelöscht, in denen sich der Roboter befindet, und den Bereich, der außerhalb der Reichweite des Roboters liegt.

Then I generated the G-code let the machine do its job. It took 4 hours to laser engrave this drawing.

Once it finished, I wanted to fill the empty area where the robot was. For that purpose, I reposition the robot and the work piece, as well as changed the Marlin parameters so that the new work area of the robot is this empty space on the work piece.

Overall, this method requires some work for setting it up, but still it works great. I really like how this engraving turned out.

Wrap up

To wrap up, although there were some problems with the firmware, I managed to find workarounds to them get this SCARA robot working as laser engraver. If we take a closer look to the engraving, we can see that it’s far from perfect.

The robot is not that rigid and has some backlash, and therefore we cannot get precise and smooth movements. However, the things we learned in this tutorial can be implemented in any SCARA robot so you can definitely get better results.

I hope you enjoyed this tutorial and learned something new. Fühlen Sie sich frei, Fragen im Kommentarbereich unten zu stellen und sehen Sie sich meine Arduino-Projektsammlung an.


Herstellungsprozess

  1. DIY einfachste IV9 Numitron-Uhr mit Arduino
  2. Hindernisse vermeiden Roboter mit Servomotor
  3. Steuerung eines Roomba-Roboters mit Arduino und Android-Gerät
  4. DIY Voltmeter mit Arduino und einem Nokia 5110 Display
  5. MobBob:DIY-Arduino-Roboter, der von einem Android-Smartphone gesteuert wird
  6. DIY Einfaches Messrad mit Drehgeber
  7. DIY-Luftqualitätsmonitor mit Sharp GP2Y1010AU0F-Sensor
  8. DIY Arduino 1D Pong-Spiel mit WS2812 LED-Streifen
  9. DIY Arduino Roboterarm – gesteuert durch Handgesten
  10. Steuern Sie den Arduino-Roboterarm mit der Android-App