Einen eigenen Roboter erschaffen und flexibel mit dem Smartphone steuern? Alles, was Sie dafür benötigen ist ein Android-Smartphone mit Beschleunigungssensor und diesen Artikel.
Der Lego-Roboter besteht aus dem programmierbaren NXT-Baustein, drei Motoren sowie verschiedenen Sensoren. Die einzelnen Bauteile ermöglichen den Aufbau sehr unterschiedlicher Modelle, angefangen von einem gewöhnlichen Fahrzeug bis hin zu tierähnlichen Gestalten und humanoiden Gebilden. Entwickelt wurde er in erster Linie, um Interessierten einen Einblick in die Robotik und Sensorik, sowie die Programmierung zu gewähren. Der Roboter wird so programmiert, dass er mit Hilfe seiner Sensoren in unterschiedlichen Situationen selbstständig agieren kann. Lego liefert eine speziell entwickelte Software mit, mit der selbst ohne weitreichende Programmierkenntnisse Programme für den NXT geschrieben werden können. Fortgeschrittene verwenden jedoch eine eigens entwickelte Programmiersprache wie Java LeJOS oder NXC, mit der sie noch mehr Möglichkeiten haben.
Falls Sie auf lange Programmier-Sessions verzichten und den Roboter flexibel und einfach fernsteuern wollen, benötigten Sie bisher eine nicht ganz billige Fernbedienung und einen Infrarot-Sensor. Doch wozu Geld ausgeben, wenn die Technik bereits vorhanden ist? Smartphones können via Bluetooth ebenfalls als Fernsteuerung dienen.
Verbindung aufnehmen
Bevor Sie den Roboter steuern können, muss dieser zunächst mit dem Smartphone gekoppelt werden. Dieser Vorgang wird als Pairing bezeichnet. Schalten Sie zunächst den NXT-Baustein ein. Dann aktivieren Sie Bluetooth in den Einstellungen des Smartphones unter dem Menüpunkt Drahtlos&Netzwerke und wählen Sie Ihr Gerät aus.

Auf dem Bildschirm des NXT-Computers erscheint nun ein Passwort zum Pairing der Geräte. Drücken Sie auf dem NXT die orangefarbene OK-Taste und geben dieses Passwort in Ihr Smartphone ein. In der Regel ist als Standard-Passwort die vierstellige Zahlenfolge 1234 vorgegeben.

Nun haben Sie die Geräte miteinander verbunden. Diesen Vorgang müssen Sie nur einmal durchführen. Später aktivieren Sie die Verbindung in der jeweiligen App um eine Kommunikation zwischen den Geräten zu ermöglichen. Der Verbindungsaufbau dauert nur zwei bis drei Sekunden. Manchmal kommt es vor, dass der Roboter nicht gefunden wird. Schalten Sie Ihn in diesem Fall einfach noch einmal aus und wieder ein.
Wenn Sie mit der Ausführung einer App fertig sind, trennen Sie die Verbindung wieder. Dafür gehen Sie mit dem Zurück-Button Ihres Handys wieder in den Startbereich zurück oder öffnen das Menüfenster. In der Regel wird die Verbindung durch das Schließen der App getrennt. Da die Apps häufig im Hintergrund noch laufen, ist dies jedoch nicht immer der Fall. Wenn Sie dann eine neue Anwendung zur Steuerung des NXT verwenden möchten, kann es sein, dass die Verbindung nicht zustande kommt, da noch die andere Bluetooth-Verbindung aktiv ist und erst beendet werden muss.
Die nachfolgenden Apps sind auf die Standardeinstellungen des Mindstorms-Roboters ausgerichtet. Sollte sich dieser nicht richtig bewegen, liegt eventuell eine falsche Verkabelung der Motoren oder Sensoren mit den Eingängen des NXT-Bausteins vor. Achten Sie darauf, dass normalerweise die Motoreingänge B und C zum Fahren genutzt werden.
Cellbots
Eine Fernbedienung mit ganz unterschiedlichen Möglichkeiten bietet die Anwendung Cellbots [1]. Die kostenlose App eignet sich nicht nur für die Lego Mindstorms Roboter, sondern auch für andere Robotertypen wie beispielsweise dem Staubsaugerroboter Roomba. Gehen Sie auf Add new Cellbot und wählen Ihren Roboter aus. Die Namenszuweisung kann hilfreich sein, wenn Sie später mehrere Geräte über diese App steuern möchten.
Nach erfolgreicher Verbindung des Smartphones mit dem Roboter werden Sie von einem freundlichen Lächeln auf dem Bildschirm begrüßt. Verfügt dieser über eine Kamera, können Sie das aufgenommene Bild in diesem Fenster sehen.

Unten befinden sich zur Steuerung unterschiedliche Oberflächen. Die Pfeiltasten lassen den Roboter in die gewünschte Richtung fahren. Wenn Sie ihn lieber mündlich dazu auffordern möchten, tippen Sie rechts neben die Pfeiltasten auf das kleine Mikrofon.

Bei den Sprachbefehlen muss berücksichtigt werden, dass die Anweisungen auf Englisch zu erteilen sind und bei einer undeutlichen Aussprache leicht missverstanden werden. Die Sprachanweisungen können Sie einsehen, indem Sie das Fragezeichen rechts neben dem Mikrofon auswählen. Der Roboter führt den Befehl solange aus, bis dies erledigt ist oder er einen neuen Befehl erhält.
MINDdroid
Lego selbst hat mit MINDdroid [2] eine spezielle Android-Anwendung veröffentlicht, die sogar mehrere Robotermodelle steuern kann. Derzeit können Sie zwischen den Modellen Shooterbot, Robogator und Tribot wählen, die jeweils unterschiedliche Handlungen ausführen. So ist der Shooterbot beispielweise ein Fahrzeugroboter, der auf Befehl Plastikkugeln abfeuert. Solche speziellen Handlungen können in den meisten Steuerungs-Apps nicht so einfach ausgeführt werden, da diese sich in der Regel auf die einfache Fortbewegung von Fahrzeugrobotern beschränken.
Neben dem Menüpunkt Robotertyp finden Sie die Option File hochladen. Hier steht bereits eine Auswahl unterschiedlicher Dateien zur Verfügung, die sich auswählen und dann per Klick auf Ihren Roboter übertragen lassen. Weitere Dateien, die schon an ihren Roboter übertragen wurden, können Sie später jederzeit auswählen. Dies betrifft sowohl Dateien, die mit der zugehörigen Programmiersoftware von Lego erstellt wurden als auch Programme der eigens entwickelten Programmiersprache Java LeJOS. Weitere Informationen finden Sie auf der LeJOS-Homepage [3].

Die Steuerung des Roboters funktioniert bei MINDdroid über den Beschleunigungssensor des Smartphones. Beugen Sie Ihr Androidgerät nach vorne, so fährt der Roboter vorwärts. Wenn Sie ihn rückwärtsfahren lassen möchten, kippen Sie es nach hinten. Durch seitliches Schräghalten können Sie die Richtung nach links oder rechts auswählen. Die Schnelligkeit wird über den Neigungswinkel beeinflusst. Desto steiler Sie Ihr Handy halten, umso schneller bewegt sich der Roboter. Möchten Sie besondere Handlungen ausführen lassen, drücken Sie auf ACTION. Der Shooterbot wird dann beispielsweise zwei Kugeln abfeuern. Das Besondere an dieser Anwendung besteht in der Möglichkeit unterschiedliche Programme flexibel zu starten. Dadurch lassen sich viele unterschiedliche Modelle steuern.

NxtRemote
Wer den Roboter über das Smartphone steuern und gleichzeitig Informationen von den Sensoren empfangen möchte, für den lohnt sich ein Blick auf die App NxtRemote [4]. Die App kostet 2,95 Euro.

Per Druck auf die Glühbirne oder den Lautsprecher kann ein rotes Leuchten oder ein Signalton auf dem Roboter erzeugt werden. NXT Remote kann wie MINDdroid ebenfalls auf die gespeicherten Programme im NXT-Baustein zurückgreifen. Aufgrund der von den Sensoren gelieferten Informationen kann der Roboter gesteuert werden, ohne dass dieser dabei in Sichtweise ist. NXT Remote liefert Informationen von den drei Hauptsensoren Tastsensor, Farbsensor und Ultraschallsensor. Über den Ultraschallsensor wird beispielsweise gemeldet, wie weit ein bestimmtes Hindernis entfernt ist.
NXT data log
NXT data log [5] bietet eine simple Möglichkeit, Motoren und Sensoren auf Funktionstüchtigkeit zu testen. Dafür werden die Motoren über den Befehl Move in Bewegung gesetzt. Besonders hilfreich ist die Anwendung, wenn ein Defekt vorliegt und herausgefunden werden muss, ob ein Sensor oder vielleicht ein Kabel defekt ist. Gleichzeitig zeigt die App die Ports der Sensoren an, um zu kontrollieren, ob alle Sensoren mit den entsprechenden Eingängen des NXT-Bausteins verbunden wurden. Ein weiterer Vorteil dieser App liegt darin, dass die Werte der Sensoren per E-Mail versendet werden können, falls man diese archivieren oder vergleichen möchte.

NXT Camera
NXTCamera [6] verwandelt das Smartphone in das Auge des Roboters und übermittelt die aufgenommenen Bilder live an den PC. Voraussetzung ist eine Wifi-Verbindung. Bevor Sie diese App verwenden können, benötigen Sie als Gegenseite das zugehörige Programm für Ihren PC. Sie können es auf der Seite des Entwicklers [7] kostenlos herunterladen. Öffnen Sie das Programm NXTCamera sowohl auf Ihrem PC als auch dem Smartphone und schalten Sie den NXT ein. Nun können Sie die Verbindungen zwischen Ihrem Androidgerät, dem Roboter und Ihrem Computer aufnehmen.

Befestigen Sie das Smartphone sicher an Ihrem Roboter. Zum Steuern benötigen Sie nun die Tastatur Ihres Computers. Alternativ können Sie einen Joystick anschließen. Die aufgenommen Bilder werden an Ihren PC übermittelt. Mit der Glühbirne können Sie die Beleuchtung des Lichtsensors und der Handykamera einschalten. Aufgrund der Übertragung kann es vorkommen, dass die Befehle zeitverzögert ausgeführt werden.

NXTCamera ist eine nette Anwendung, wenn Sie den Roboter von einem anderen Raum aus steuern möchten oder Aufnahmen benötigen, die Sie ansonsten nicht bekämen. Etwas störend ist die manchmal zeitverzögerte Ausführung der Befehle, was auf die Verbindung zwischen den drei Geräten zurückzuführen ist. Die App ist zudem kostenpflichtig, auch wenn der Preis von 0,99 Euro nicht wirklich teuer ist.
NXT Sprachsteuerung
Diese App [8] wurde speziell für das Projekt „Roberta – Lernen mit Robotern“ entwickelt und ermöglicht eine Steuerung des Roboters über vorher selbst festgelegte Sprachbefehle. Voraussetzung dafür ist, dass die kostenlose Google-App Sprachsuche ebenfalls installiert ist und eine Internetverbindung besteht. Wegen des entstehenden Traffics empfehlen die Entwickler hierfür eine WLAN-Verbindung. Der Vorteil zu den bereits existierenden Sprachbefehlsteuerungen liegt bei dieser Anwendung darin, dass bis zu vier eigene Befehle erteilt werden können. Im Gegensatz zu vielen anderen Apps muss darauf geachtet werden, dass Bluetooth bereits vor dem Starten aktiviert wird.

Sie können die Sprachbefehle entweder über die Tastatur oder die Spracherkennung übermitteln. Über den Button Speech Controller gelangen Sie zum Sprachfenster. Sprechen Sie Ihren Befehl dann ein. Vergessen Sie nicht, die Felder für Geschwindigkeit und Entfernung auszufüllen.
Funktioniert die Spracherkennung nicht, haben Sie eventuell eine falsche Sprache eingestellt. Ein weiterer häufiger Fehler besteht darin, nach der Eingabe der Wörter Leerzeichen zu setzen. Schreibhilfen wie Swype oder Touch Pal setzen diese nämlich automatisch. Dann kann es vorkommen, dass Sie zwar als Befehl los eingeben und die Spracherkennung los durchaus versteht, aber aufgrund der Leerzeichens keine Übereinstimmung feststellt und eine Fehlermeldung übermittelt.
NXT Mailbox Remote
Zeichenketten-, Zahlen- und Wahrheits-Werte können mit NXT Mailbox Remote [9] an bis zu zehn verschiedene Mailboxen gesendet werden. Dafür muss auf den NXT zuvor ein Programm transferiert werden, welches diesen Variablen bestimmte Handlungen zuweist. Durch diese Vorgehensweise sind sehr flexible Abläufe möglich. Diese App ist sinnvoll, wenn Sie komplexere Programme benötigen oder mehrere NXT miteinander kommunizieren lassen möchten. Es können sogar Befehle aus dem Programm heraus an das Smartphone gesendet werden, um etwa Informationen von dort zu erhalten.

Fazit
Im Google Play-Store gibt es eine große Anzahl verschiedener und meist kostenloser Apps um Mindstorms Roboter zu steuern, mit besonderen Fähigkeiten auszustatten oder deren Funktionsfähigkeit zu überprüfen. Allerdings funktionieren diese nur bei Standardmodellen und in den meisten Fällen lediglich für Fahrzeuge. Es gibt jedoch immer mehr Entwickler, die kreative Fernsteuerungen für ihre Roboter erschaffen und in Google Play anderen zur Verfügung stellen. Wünschenswert wäre darüber hinaus eine App, welche dem Nutzer nicht nur Steuerungsmöglichkeiten für seinen Roboter anbietet, sondern auch das direkte Modellieren von NXT-Programmen auf dem Smartphone oder Tablet ermöglicht. Solch eine existiert für Android derzeit leider noch nicht.
Wer den Roboter über die jetzigen Möglichkeiten hinaus steuern möchte, muss eine eigene Anwendung erstellen. Dies geht jedoch neuerdings sogar ohne Programmierkenntnisse. Mit Hilfe des App-Inventors vom Massachusetts Institute of Technology (MIT) und Google. Damit erstellen Sie Android-Apps mit einigen Klicks selbst. Aufgrund der zunehmenden Beliebtheit von Mindstorms NXT Robotern gibt es beim App-Inventor vorgefertigte Befehle für die Sensoren. In der nächsten Ausgabe von Android User zeigen wir Ihnen, wie Sie damit eigene Apps zusammenstellen.