MK2 Plus Roboterarm-Controller – Arduino UNO, CNC Shield & Schrittmotoren
Komponenten & Zubehör
| Bauteil | Menge |
|---|---|
| Arduino UNO | 1 |
| CNC Shield V3 (für Arduino UNO) | 1 |
| A4988 Schrittmotortreiber | 3 |
| NEMA 17 Schrittmotoren | 3 |
| Mikro-Endschalter (Mechanisch) | 3 |
| 12-V-Netzteil (ausreichend dimensioniert) | 1 |
Benötigte Werkzeuge
- 3D-Drucker (für MK2 Plus Arm, Thingiverse #2520572)
- Lötkolben (für Treiber-Pins, Endschalter)
Projektbasis: EEZYBOT MK2 Arm
Der ursprüngliche EEZYBOT MK2 (von daghizmo) nutzt Servos – wackelig und unpräzise. Der MK2 Plus Remix ersetzt sie durch 3 NEMA-17-Schrittmotoren für präzise, wiederholbare Bewegungen. Kinematik basiert auf ABB IRB 460 (skaliert 1:7). Druckzeit: mehrere Tage.
Referenzfahrt (Homing) mit 3 Endschaltern
Da Schrittmotoren keine Absolutposition kennen, wird beim Start eine Homing-Routine gefahren:
- X & Y gemeinsam: Gegenläufig fahren, bis Y-Endschalter triggert.
- Dann gleichläufig, bis X-Endschalter triggert.
- Beide leicht zurückfahren, bis Schalter öffnen (Feinjustage).
- Z (Basisrotation): Drehen bis Z-Endschalter, dann zurück bis Öffnen.
Die Logik ist in der Funktion autohome() implementiert (siehe Code).
Verkabelung (CNC Shield)
- X-Motor → X-Achse (Seite mit Y-Endschalter)
- Y-Motor → Y-Achse (Seite mit X-Endschalter)
- Z-Motor → Z-Achse (Basisrotation)
- Endschalter an X-LIMIT (Pin 9), Y-LIMIT (Pin 10), Z-LIMIT (Pin 11) – INPUT_PULLUP
- ENABLE Pin 8 (LOW = Treiber an)
- 12 V an Motor Shield (nicht an Arduino Vin!)
Software: AccelStepper Bibliothek
Installation über Bibliotheksverwalter: AccelStepper (by Mike McCauley). Ermöglicht ruckfreie Beschleunigung, gleichzeitiges Fahren mehrerer Motoren und Positionierung in Steps.
Code-Struktur (Ausschnitte)
#define XSTEP 2, YSTEP 3, ZSTEP 4
#define XDIR 5, YDIR 6, ZDIR 7
#define ENABLE 8
#define XLIMIT 9, YLIMIT 10, ZLIMIT 11
AccelStepper XMOTOR(1, XSTEP, XDIR);
AccelStepper YMOTOR(1, YSTEP, YDIR);
AccelStepper ZMOTOR(1, ZSTEP, ZDIR);
void pinsetup() { ... }
void autohome() { xyhome(); zhome(); }
void xyhome() { ... } // siehe Original für Details
void zhome() { ... }
void setup() {
Serial.begin(9600);
pinsetup();
autohome();
Serial.println("HOMING OK");
}
void loop() {
// Beispiel: einfache Bewegungssequenz
XMOTOR.runToNewPosition(100); delay(1000);
YMOTOR.runToNewPosition(50); delay(1000);
YMOTOR.runToNewPosition(-50); delay(1000);
YMOTOR.runToNewPosition(0); delay(1000);
XMOTOR.runToNewPosition(0); delay(1000);
}
Vollständiger Code & Download: GitHub Repository
Erweiterungsmöglichkeiten
- Serielle Steuerung (G-Code / eigenes Protokoll) für PC-Ansteuerung.
- Inverse Kinematik: Cartesian Koordinaten (X,Y,Z) → Schrittmotor-Positionen.
- Greifer / Werkzeugwechsler am Endeffektor.
Fazit
Der MK2 Plus mit Schrittmotoren ist ein hervorragendes Lernprojekt für Robotik-Kinematik, CNC-Steuerung und 3D-Druck. Die Homing-Routine ist der Schlüssel zur Wiederholgenauigkeit. Ohne PC (nur Arduino) lassen sich fixe Abläufe realisieren – ideal für Demos oder kleine Automatisierungsaufgaben.
Herstellungsprozess
- Infineon stellt IMC300 Motor Controller mit integriertem Arm Cortex-M0 für erhöhte Flexibilität vor
- Dualarm-SCARA-Roboter: Fortschrittliche Montage- & Produktionslösungen
- MeArm Roboterarm V1.0 – Arduino & Raspberry Pi gesteuerter Roboterarm bauen
- Ethernet-gesteuerter Roboterarm: Fernsteuerung leicht gemacht
- LittleArm 2C: Robuster 3D-gedruckter Arduino-Roboterarm für STEM-Bildung
- DIY Roboterarm mit Gestensteuerung (Hand-Tracking) – Arduino & 3D-Druck
- Arduino Roboterarm per Android-App & Bluetooth steuern
- Realtime Robotics bringt fortschrittlichen Controller zur Vereinfachung der Integration und Beschleunigung der Bereitstellung
- Yama Seiki GA-2000CR: Kompaktes Drehzentrum mit Roboterarm & Palettensystem
- KUKA KMR iiwa: Mobiler kollaborativer Roboterarm für Industrie 4.0