Eggbot mit Arduino und Fischertechnik selber bauen – so geht’s

Seite 2: Software-Installation

Inhaltsverzeichnis

Voraussetzung für das Projekte sind die Programmierumgebung für den Arduino und das Open-Source-Zeichenprogramm Inkscape – beide gibt es für Windows-, Mac- und Linux-Rechner. Als nächstes benötigt man die Eggbot-Erweiterung für Inkscape, dann die Eggduino-Software und steuert den Becherbot schließlich über Inkscape.

Bei der Installation des Inkscape-Add-Ins hilft die Eggbot-Anleitung – ich habe einen Windows-Rechner und die Version 2.5.0 mit Installer genutzt. Damit der Arduino von Inkscape erkannt wird und das Programm auf dem Arduino Uno funktioniert, habe ich das Add-in modifiziert.

In der Quelldatei eggbot.py des Add-Ins habe ich ein paar Programmzeilen auskommentiert, die nach dem Eggbot-Kontroller suchen, da das Projekt sonst nicht funktioniert. In der Version 2.7.1 sind sie nicht mehr zu finden, die habe ich aber nicht getestet. Die Datei liegt meist unter C:\Programme\Inkscape\share\extensions\ oder C:\Programme (x86)\Inkscape\share\extensions\. Die folgenden Zeilen muss man auskommentieren oder entfernen:

for strComPort in eggbot_scan.findEiBotBoards():
serialPort = self.testSerialPort( strComPort )
if serialPort:
self.svgSerialPort = strComPort
return serialPort

Meine Version der Eggduino-Software für den Arduino kann hier heruntergeladen werden. Sie basiert auf der Eggduino-Software von Joachim Cerny, die ich für den Einsatz des Adafruit Motorshield angepasst habe. Der Ordner wird als Bibliothek in der Arduino-Softwareumgebung eingebunden und der Arduino mit der Eggduino.ino bespielt.

Anschließend muss der Autoreset des Arduinos mit einem 10-µF-Kondensator zwischen Reset und GND unterbunden werden, der sonst bei jedem Ansprechen über eine serielle Schnittstelle ausgelöst wird. Möchte man ein neues Programm in den Arduino laden, muss der Kondensator wieder entfernt werden. Da das Motorshield dann auch abgebaut werden muss und zumindest ich noch mit einigen Variablen experimentiert habe, empfehle ich, den Kondensator über einen Schalter anzuschließen.

Wurde das Programm in den Arduino geladen und der Kondensator eingesetzt, kann das Inkscape Plug-in ausprobiert werden.

Nach dem Start von Inkscape wird das Eggbot-Template über "Neu ➤ Aus Vorlage erstellen" geöffnet. Über das Menü "Erweiterungen ➤ Eggbot ➤ Tab: Manuell" werden die Eggbot-Motoren und der Servo manuell gesteuert. Hier habe ich zunächst alle Bewegungen in alle Richtungen durch die Eingabe von positiven und negativen Werten ausprobiert.

Funktioniert die manuelle Bedienung der Motoren kann man sich an eine erste Zeichnung heranwagen. Ich habe dazu ein kleines Quadrat gezeichnet, dies mit dem Befehl "Pfad ➤ Objekt in Pfad umwandeln" modifiziert und dann über den Befehl "Erweiterungen ➤ Eggbot Control ➤ Tab Plotten" an den Arduino geschickt.

Hierbei zeigte sich, dass in dem Plot aus dem Quadrat ein Rechteck wurde – dies ist nicht weiter verwunderlich, da ich die Untersetzungen der beiden Motoren nirgendwo im Programm berücksichtigt hatte. Dafür habe ich die Werte der Variablen rotMicrostep und penMicrostep in der Eggduino.ino geändert. In meinem Beispiel verwende ich nun die Werte 4 für rotMicrostep und 16 für penMicrostep.

Da der absolute Zeichenweg auf der Oberfläche des Zylinders vom Radius abhängt, außer bei Bewegungen entlang der Rotationsachse, kann man die Ratio nur für einen bestimmten Durchmesser (z.B. eines Bierglases) optimieren. Zum Schluss wollte ich noch sicherstellen, dass die Breite der Inkscape-Vorlage genau mit einer 360° Drehung des Rotationsmotors übereinstimmt. Den Korrekturfaktor (bei mir 1,32) habe ich bei der Wertezuweisung der Variable rotStepsEBB im Unterprogramm Helper_Functions.ino der Eggduino-Software eingfügt:

*rotStepsEBB = (int)(atoi(arg3)*1.32);

Nachdem der Code verändert wurde, muss er jedes Mal neu auf den Arduino gespielt werden.