SmartBot – Ein Roboter mit Android und Linux

2013 kaufte sich ein Freund von mir einen Raspberry Pi, also einen Einplatinencomputer im Kreditkartenformat, der zwar sehr wenig Rechenleistung hat (1GHz Single-Core ARM), jedoch durch seine Kompaktheit und Sparsamkeit eine gute Option zum Beispiel als Heimserver ist, wenn man eine externe Festplatte anschließt.
Eine besondere Eigenschaft des Raspberry Pi ist, dass er sogenannte GPIO-Pins hat, also kleine Pins, die sich direkt über das Betriebssystem ansteuern lassen, und die man zum Beispiel mit anderen Platinen verbinden kann um LEDs zu steuern oder eben halt einen ganzen Roboter.

Der erste Versuch von ihm war es, einen fahrbaren Untersatz, auf dem eine Butterbrotdose mit dem Raspberry liegt, über den Computer steuern zu können. Hier kann man das Resultat betrachten:

Der Raspberry Pi stellt hier einfach über einen Webserver (lighttpd) die Seite mit den Knöpfen und einem Webcambild bereit. Wenn ein Knopf gedrückt wird, wird über AJAX ein PHP-Skript geöffnet, welches auf dem entsprechenden GPIO-Pin Spannung gibt, sodass die angeschlossenen Motoren sich bewegen.

Ich schloss mich ihm an und schrieb mithilfe der Library Pi4J einen Server in Java, welchen wir auf dem Raspberry Pi betrieben und damit das PHP-Skript ersetzten. Außerdem entwickelte ich eine passende grafische Javaanwendung mit Swing, welche die Buttons darstellte und sich zunächst über einen TCP-Socket mit dem Server per WLAN verband.
Mein Freund kümmerte sich um ein geeigneteres Fahrgestell und und lötete eine Schaltung, welche über Microcontroller und eigene Stromversorgung nun größere Motoren ansteuern konnte. Beides zusammen sah dann so aus:


Nun ist leicht zu erkennen, dass die Steuerung über das Netbook nicht gerade einfach oder komfortabel ist. Schnell kam der Gedanke auf, man könnte das Ganze doch über das Smartphone steuern. Da ich gerade die CoJoBo-App fertiggestellt hatte, war ich zumindest ansatzweise mit Smartphone-Apps vertraut und da Android-Apps mit Java entwickelt werden, fiel die Entscheidung zur Entwicklung einer entsprechenden Anwendung leicht.
Langfristig stellte sich heraus, dass ich mir für dieses Projekt sogar, trotz meinem Hang zu Windows Phone, ein Google Nexus-Gerät zulegte.
Bei der Entwicklung der App baute ich auf dieses GitHub-Projekt zur Steuerung von Robotern auf und entwickelte es mit meinem Freund zusammen weiter. Idee war, dass der Roboter selbstständig von A nach B navigiert, wenn man ihm auf einer Karte einen Punkt angibt.
Wir beworben uns mit dem Projekt beim Wettbewerb „jugend forscht“ der Universität Bonn, für den wir eine vollständige Dokumentation verfassten. (Download: SmartBot_Dokumentation) Der Wettbewerb ist nächste Woche Freitag und ich bin gespannt wie gut wir abschneiden werden.
Ganz aktuell sind noch Abstandsmessgeräte hinzugekommen, bei denen es momentan allerdings noch Probleme mit der Verbindung an den Raspberry Pi gibt.
Das Projekt ist also noch aktuell…

Der Roboter und die App sehen inzwischen übrigens so aus:

DSCF1878

Screenshot_2014-01-08-20-53-37 Screenshot_2014-01-08-20-56-53

Kommentar verfassen