EggBot77 2018 - Easterhegg-Edition
Agenda des Workshops
JK: Aufgrund der Trocknungszeiten des Holzleims würde ich folgenden Ablauf vorschlagen (Einrückungen = Mechanik)
- Begrüßung
- Verteilen der Sets
- Verkleben des Gehäuses
- Verkleben der Eierhalter
- Umbau der Shields (Brücken, Treiber)
- Verkleben des Arms
- Montage von Arduino und Shield
- InkScape-Plugin
- Montage der Motoren
- Stecker der Motoren
- Stecker des Servos
- Montage des Arms
- Inbetriebnahme (ohne Ei)
- Montage der Welle
- Montage Moosgummi
- Tests mit Ei
Aufbau Mechanik
Aufbau Elektronik
Es gibt mehrere Stellen, an denen Ihr Hardware zerstören könnt! Daher ist es sehr wichtig, folgende Hinweise zu beachten:
- Einsetzen der Stepper-Treiber immer in der richtigen Richtung - s. Foto
- Trennen der 12 V-Versorgung _nie_ zwischen Netzteil und Shield; immer durch Ziehen des Netzsteckers
- Auf- und Abstecken des Shields _immer_ im stromlosen Zustand (USB- und 12 V-Leitung getrennt)
- An- und Abstecken der Stepper _immer_ im stromlosen Zustand (USB- und 12 V-Leitung getrennt)
Dabei können nicht nur die Stepper-Treiber oder der Arduino, sondern auch der USB-Host (Laptop!) zerstört werden!
Steppermotoren
Stecker auf dem CNC-Shield
Servo
Taster
- Enden abisolieren und verzinnen
- Enden an den Tastern anlöten
- jeweils das eine Ende auf den weißen Stift (An) und das andere Ende auf den schwarzen (GND)
- Arm (grün) - resume (=A1)
- Motor (gelb) - hold (=A2)
- Stop (rot) - abort (=A0)
Software
Inkscape + EggBot-Extension
- Dort ist in der README beschrieben wie auf verschiedenen Plattformen installiert wird.
benötigte Pakete installieren (linux)
sudo apt-get install inkscape python python-serial
Extension installieren (linux)
curl -L https://github.com/justinotherguy/eggbot_extension/archive/1.2.tar.gz | tar -xz mkdir -p ~/.config/inkscape cp -r eggbot_extension-1.2/templates ~/.config/inkscape cp -r eggbot_extension-1.2/extensions ~/.config/inkscape
Neue Zeichnung selbst erstellen
MenÜ : File-> open from template : “EggBot” auswählen danach gewünschten Inhalt zeichnen
Beispielzeichnung öffnen
Menü : Extensions → EggBot Contributes → ......
Zeichnung drucken / Eggbot Einstellungen
Einstellungen
- Setup:
- Pen up position: 35% (dieser und der nächste Wert hängt vom verwendeten Stifttyp und von der Mittelstellung des Servo ab)
- Pen down position: 50%
- Timing:
- Speed when pen is down: 300
- Speed when pen is up: 400
- Pen raising speed: 50
- Delay after raising pen: 200
- Pen lowering speed: 20
- Delay after lowering pen: 400
- Optionen:
- Reverse motion of Motor 1 (pen)
- Reverse motion of Motor 2 (egg)
- Egg (x) axis wraps around
- Start with pen centered
- Return home when done
- nicht: Enable graver, if attached
- Curve smoothing: 0,2
Firmware EggDuino auf den Arduino flashen
- Der Arduino ist bereits von uns mit der richtigen EggDuino-Firmware geflasht, die hier aufgeführten Schritte müssen also nicht ausgeführt werden, sondern dienen der Dokumentation.
- Repository : https://github.com/justinotherguy/EggDuino.git
- Die Pinbelegung der Boards wird in der Datei
config.h
angepasst, s. https://github.com/justinotherguy/EggDuino/blob/eh2018-CNC-Shield-for-Uno/config.h
Vorgehensweise mit PlatformIO:
Eggduino-Firmware laden
git clone https://github.com/justinotherguy/EggDuino.git cd Eggduino git checkout eh2018-CNC-Shield-for-Uno
platformIO installieren
pip install platformio
Arduino flashen
platformio run -t upload -e uno
troubeshooting, serielle devices anzeigen
platformio device list # serielle devices anzeigen apt-get install python pip # benötigte pakete
- Die Sourcen werden am einfachsten mit PlatformIO kompiliert und auf die Arduino Boards übertragen. Alternativ kann auch die klassische Arduino IDE benutzt werden.
Vorgehen mit Arduino-IDE:
- Download Arduino
- cp -R EggDuino/lib/VarSpeedServo ~/Documents/Arduino/libraries/ (macOS - Zielpfad weicht unter Linux ab)
- Arduino per USB an den Rechner anschließen
- Tools → Board: „Arduino Uno“
- Tools → Port: „/dev/cu.wchusbserial1410“ (o.ä. unter macOS); „/dev/ttyACMO“ (o.ä. unter Linux)
- „Upload“
FAQ / Tipps zur Fehlersuche
"Failed to connect to EggBot"
- hat der Benutzer Berechtigung für das Device? Bsp.:
$ ls -al /dev/tty.usbmodem1421 crw-rw---- 1 root wheel 21, 92 30 Mär 20:31 /dev/tty.usbmodem1421
- > Benutzer muss in Gruppe wheel sein; falls das nicht so ist: Gruppe für das Device auf eine Gruppe ändern, in der der Benutzer ist
Arduino
- Test: lässt sich blink.ino flashen?
Einer oder beide Stepper drehen in die falsche Richtung?
- mehrere Möglichkeiten:
- die Einfachste: den Stecker des Steppers umdrehen (Obacht! Vorher 12 V-Versorgung und USB-Kabel ausstecken)
- in der EggBot-Extension unter Optionen das Häkchen bei „Reverse motion of Motor“ für den entsprechenden Motor entfernen oder setzen
Bekannte Probleme
- Der Stift wird zu Beginn jeder Zeichnung ein Mal kurz aufgesetzt
- Lösungen:
- Unterbrechen der Reset-Leiterbahn auf dem Arduino-Board (welche, wie?)
- Kondensator einsetzen (wo, wie?)
- in Software (wie?)
Zutaten
- Stepper (2x)
- NEMA 17
- Achslänge: 20mm
- Achsdurchmesser: 5mm, abgeflacht
- Tiefe der 4 Befestigungsbohrungen: mind. 4,5mm
- Schrittwinkel: 1,8° (200 Schritte/Umdrehung)
- Stecker an der Zuleitung
- nice to have: gesteckte Zuleitung auch auf Motorseite
- Servo
- SG90, 9g
- Arduino Uno CNC-Shield (inkl. 4x Stepper-Treiber, Kühlkörper)
- Jumper (werden wohl beim Arduino-Shield nicht mitgeliefert; pro Board werden 6 Stück benötigt (je 3 für X und für Y)
- 20 Boards a 6 Jumper → 120 Jumper → 12 Sets a 10 Jumper
- Netzteil 12V mit mind. 500 mA; Hohlstecker 5,5mm/2,1mm; +-Pol innen
- 3 Taster
- Verbindungsleitungen zum Anschluss der Taster (3x insgesamt: 40 Adern → 13 Sätze a 6 Stücke)
- 2x 20mm Moosgummi ( OBI Rutschstopper selbstklebend extra soft, enthält 8 runde Moosgummi-Stücke, die perfekt auf die Cups passen)
- Stifte:
- https://www.ebay.de/itm/272231819580 (nicht selbst getestet)
- Saugnäpfe: http://www.1a-saugnapf.com