EggBot77 2018 - Easterhegg-Edition

Prototyp

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

Jumper für Microstepping

Steppertreiber und Motorkabel (bitte nicht falschrum einsetzen (magic smoke und so))

Stecker auf dem CNC-Shield

Servo

  • Braun - GND
  • Rot - 5V
  • Gelb/Orange - Spindle enable - D12 (muss herausgelöst werden - s. Foto)

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

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

Menü : Extensions → EggBot → EggBot Control 

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.

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
  1. > 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

Ergebnisse