R2-D2

Projektidee

Material

Schaltplan

Do IT yourself!

Fazit

Projektidee: R2-D2 von Thinkway Toys mit Arduino-Steuerung

Fahrende Roboter aller Art haben für Bastler einen besonderen Reiz: Sie lassen sich mit relativ geringem Aufwand mittels Mikrocontrollern steuern. Der Roboter R2-D2 aus den STAR WARS™ Science Fiction Filmen stellt hier keine Ausnahme dar und wurde auch bereits in einem anderen Projekt beschrieben. Das größte, preislich erschwingliche Modell ist hier ein immerhin 45 cm großer R2-D2 der Firma THIUNKWAY TOYS, der 2020 erschien und mittlerweile nur noch gebaucht erhältlich ist. Der Roboter wird zusammen mit einer Infrarot-Fernbedienung ausgeliefert und kann fahren, Original-Sounds abspielen, den Kopf drehen, einige LEDs und eine Leia-Projektion aktivieren sowie das mittlere Bein vor- und zurückbewegen. Das Problem mit diesem Modell ist nur, dass all diese Funktionen insgesamt relativ unübersichtlich sind und nicht immer glücklich miteinander kombiniert werden.

Die Idee war nun, alle Original-Funktionen des R2-D2 einzeln und unabhängig voneinander ansteuern und beliebig programmieren zu können. Dabei sollten keine Sensoren oder Aktoren außer den bereits vorhandenen genutzt werden dürfen. Als Mikrocontroller sollte - da im Innern des Roboters ausreichend Platz vorhanden war - ein Arduino MEGA 2560 zum Einsatz kommen. Auch die Original-Fernbedienung sollte weiterhin genutzt werden, allerdings sollten alle Tasten frei programmierbar sein. Selbstverständlich wurde auch das Batteriefach mit 6x AA-Batterien verwendet, um den Arduino und alle anderen Komponenten mit Strom zu versorgen.

Nach oben

Material

Nach oben

Schaltplan

 

Nach oben

Do IT yourself!

Zunächst musste die Original-Infrarotfernbedienung ausgelesen werden, damit später alle Tasten und Hebel der Fernbedienung individuell programmiert werden konnten. Dazu wurde eine Testschaltung mit einem VS1838B Infrarotsender aufgebaut, um die Infrarot-Signale der Fernbedienung zu dekodieren. Wie sich herausstellte, konnten die RAW-Signale der Fernbedienung mittels der Arduino-Bibliothek "IRremote" von Ken Shirriff in der aktuellen Version korrekt erkannt werden. Im nächsten Schritt wurden nun die Codes aller Tasten und Hebel der Fernbedienung ausgelesen und notiert, um sie später im Programmcode nutzen zu können. Dabei viel u.a. auf, dass ein längeres Drücken der Steuerhebel andere Signale aussendet als ein kurzes Drücken; dasselbe gilt für das gleichzeitige Drücken des linken und rechten Steuerhebels nach vorne, nach hinten oder in entgegengesetzter Richtung.

Als nächstes mussten die Tastfelder ausgelesen werden, die in der Originalschaltung dafür zuständig sind, die Position des Kopfes und der Vor- und Rückwärtsbewegung des mittleren Beins des R2-D2 zu bestimmen. So sollte später der Motor, der für die Drehbewegung des Kopfes zuständig ist, über die Tastfelder genau gesteuert werden können. Alle Tastkontakte des Tastfeldes mussten darüber hinaus mit Pulldown-Widerständen ausgestattet werden.

Auch die im Kopf eingebauten LEDs (zwei blaue, eine rote, eine Leia-Projektion) mussten getestet und hierfür mussten passende Widerstände für die Ansteuerung durch den Arduino ermittelt werden. Interessant war hierbei, dass die LEDs eine gemeinsame Anode besitzen, im Programmcode also mittels "LOW" ein- und mittels "HIGH" ausgeschaltet werden.

Die beiden im Kopf befindlichen Infrarot-Sensoren funktionierten auf Anhieb mit der o.g. "IRremote"-Bibliothek und konnten so ohne Modifikationen direkt parallel an den Arduino angeschlossen werden.

Die drei Motoren (je ein Motor für die beiden Beine links und rechts sowie ein Motor für die Kopfdrehung bzw. die Vor- und Rückwärtbewegung des mittleren Beins) wurden direkt an den Adafruit MotorShield angeschlossen. Mittels der zugehörigen Bibliothek können die Motoren einfach über "sprechende Befehle" angesteuert werden.

Die größte Herausforderung bestand technisch gesehen darin, die originalen Sounds des R2-D2 aus den Kinofilmen wiedergeben zu können. Die einfachste Lösung hierfür war ein DFPlayer Mini MP3 Player Modul mit einer 16 GB MicroSD-Karte, auf der mehrere Originalsounds im MP3-Format gespeichert werden können. Dieses MP3-Modul wird mittels serieller Befehle angesteuert und spielt eine einmal begonnene MP3-Datei bis zum Ende bzw. bis zum nächsten seriellen Befehl ab. Auf diese Weise ließen sich während des Abspielens einer MP3-Datei gleichzeitig andere Aktionen ausführen (z.B. Fahren, Kopfdrehung, LEDs), was in der originalen Software des R2-D2 so nicht möglich war. Praktisch war hier übrigens auch, dass der bereits eingebaute Lautsprecher des R2-D2 problemlos an das DFPlayer-Modul angeschlossen werden konnte und einen ordentlichen Sound lieferte.

Der Arduino MEGA 2560 wurde nun mit dem Adafruit MotorShield, den Infrarot-Sensoren sowie mit dem DFPlayewr mini und - mittels eines selbstgebauten Shields aus einer Streifenraterplatine, abgewinkelten Steckkontakten, Buchsen und Widerständen - mit den Tastfeldern, dem Button auf der Voderseite des Roboters und den LEDs im Kopf verbunden. Der Schalter auf der Rückseite des Roboters wurde mit dem Arduino und dem Batteriefach verbunden.

Um den im R2-D2 verbauten Adruino Mikrocontroller jederzeit programmieren zu können, wurde eine USB-Verlängerung mit Einbaubuchse unterhalb des Batteriefachs auf der Rückseite des Roboters eingebaut - die einzige von außen sichtbare Veränderung des R2-D2.

Im diesem Arduino-Beispielprogramm werden alle Funktionen des R2-D2 per Infrarot-Fernbedienung gesteuert (alle Codes der Tasten und Hebel sind hier aufgeführt): Die Motoren, die LEDs und das Sound-Modul. Um die Tastenfelder auslesen zu können, sind diese mit den LEDs verbunden, während der Button auf der Vorderseite des Roboters mit dem Sound-Modul verbunden wurde.

Nach oben

Fazit

Dieser R2-D2 bietet dank seiner neuen Arduino-Mikrocontrollersteuerung eine Vielzahl an Programmiermöglichkeiten, aufgrund seiner Robustheit und Größe insbedsondere auch für die Schule. Bemerkenswert ist, dass alle bereits vorhandenen Aktoren und Sensoren des Roboters genutzt werden konnten, sodass nur sehr wenig zusätzliches Material für den Umbau notwendig war. Durch die Anbindung mehrerer Bibliotheken für Infraot-Fernbedienung, DFPlayer-Modul und MotorShield und eine vollständige Dokumentation aller RAW-Codes der Original-Fernbedienung sind auch komplexere Programmierideen relativ einfach umzusetzen. Der einzige Wermutstropfen ist, dass der Roboter keine Sensoren aufweist, mittels derer er seine Umgebung wahrnehmen und sich damit autonom bewegen kann. Allerdings ließen sich im und am R2-D2 sicherlich eine Vielzahl an zusätzlichen Sensoren unterbringen und am Arduino MEGA 2560 mit seinen vielen I/O-Ports anschließen - aber das wäre dann ein anderes Projekt.

Nach oben