Start Magazin Lego Mindstorms NXT Roboter über Android steuern

Lego Mindstorms NXT Roboter über Android steuern

6447
0
Teilen
© The Lego Group

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.

Abbildung 1: In den Einstellungen können Sie Bluetooth aktivieren und Geräte mit Ihrem Smartphone paaren.
Abbildung 1: In den Einstellungen können Sie Bluetooth aktivieren und Geräte mit Ihrem Smartphone paaren.

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.

Abbildung 2: Geben Sie hier die PIN ein und drücken Sie anschließend auf OK. Beim NXT-Roboter müssen Sie diese PIN nicht mehr eintippen, womöglich aber bei anderen Geräten.
Abbildung 2: Geben Sie hier die PIN ein und drücken Sie anschließend auf OK. Beim NXT-Roboter müssen Sie diese PIN nicht mehr eintippen, womöglich aber bei anderen Geräten.

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.

Abbildung 3: Geben Sie in das obere Feld den gewünschten Namen ein und drücken Sie dann auf Done.
Abbildung 3: Geben Sie in das obere Feld den gewünschten Namen ein und drücken Sie dann auf Done.

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.

Abbildung 4: Startbildschirm nach erfolgreicher Paarung. Oben der Bildschirm für die Kamera und darunter die Steuerungstasten.
Abbildung 4: Startbildschirm nach erfolgreicher Paarung. Oben der Bildschirm für die Kamera und darunter die Steuerungstasten.

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.

Abbildung 5: Um Sprachbefehle einzugeben, klicken Sie Sie einfach einmal auf das Mikrofon und sprechen dann den Befehl ein.
Abbildung 5: Um Sprachbefehle einzugeben, klicken Sie Sie einfach einmal auf das Mikrofon und sprechen dann den Befehl ein.

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.

Abbildung 6: Im Menü können Sie den Robotertyp bestimmen oder ein Programm auf den Roboter laden.
Abbildung 6: Im Menü können Sie den Robotertyp bestimmen oder ein Programm auf den Roboter laden.

Abbildung 7: Die Auswahl des Robotermodells in der App MINDdroid.
Abbildung 7: Die Auswahl des Robotermodells in der App MINDdroid.

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

Abbildung 8: Steuerung des NXT-Roboters. Wird das Smartphone waagrecht gehalten, befindet sich das gelbe Kästchen in der Mitte und der Roboter steht still.
Abbildung 8: Steuerung des NXT-Roboters. Wird das Smartphone waagrecht gehalten, befindet sich das gelbe Kästchen in der Mitte und der Roboter steht still.

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.

Abbildung 9: Im Menü können Sie sich die verschiedenen Dateien auf dem NXT ansehen und nach Bedarf ausführen lassen. Hier finden Sie außerdem die Dateien, die Sie vorher ausgewählt und auf den Roboter übertragen haben.
Abbildung 9: Im Menü können Sie sich die verschiedenen Dateien auf dem NXT ansehen und nach Bedarf ausführen lassen. Hier finden Sie außerdem die Dateien, die Sie vorher ausgewählt und auf den Roboter übertragen haben.

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.

Abbildung 10: Im Menü wird die Verbindung zwischen dem Roboter und der Anwendung hergestellt. Außerdem kann hier das Layout und das Programm gewählt werden.
Abbildung 10: Im Menü wird die Verbindung zwischen dem Roboter und der Anwendung hergestellt. Außerdem kann hier das Layout und das Programm gewählt werden.

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.

Abbildung 11: Im Layout Multi Pad können alle Motoren einzeln gesteuert werden.
Abbildung 11: Im Layout Multi Pad können alle Motoren einzeln gesteuert werden.

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.

Abbildung 12: Der Tastsensor ist gedrückt, der Geräuschsensor empfängt 81 dB und das nächste Hindernis ist 35 cm entfernt.
Abbildung 12: Der Tastsensor ist gedrückt, der Geräuschsensor empfängt 81 dB und das nächste Hindernis ist 35 cm entfernt.

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.

Abbildung 13: Stellen Sie sicher, dass PC und Smartphone im selben WLAN-Bereich liegen und dass das Programm NXTCamera auf Ihrem PC geöffnet ist.
Abbildung 13: Stellen Sie sicher, dass PC und Smartphone im selben WLAN-Bereich liegen und dass das Programm NXTCamera auf Ihrem PC geöffnet ist.

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.

Abbildung 14: NXTCamera auf dem PC. Von hier aus können Sie sehen, was Ihr Roboter sieht, bei Bedarf über Rotate das Bild drehen und mit Snapshot ein Foto machen.
Abbildung 14: NXTCamera auf dem PC. Von hier aus können Sie sehen, was Ihr Roboter sieht, bei Bedarf über Rotate das Bild drehen und mit Snapshot ein Foto machen.

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.

Abbildung 15: Definieren Sie die Sprachbefehle links, Geschwindigkeit und Distanz rechts unter den Motorbefehlen.
Abbildung 15: Definieren Sie die Sprachbefehle links, Geschwindigkeit und Distanz rechts unter den Motorbefehlen.

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.

Abbildung 16: Hier wird der Befehl gesprochen.Oben rechts können Sie die Sprache ändern.
Abbildung 16: Hier wird der Befehl gesprochen.Oben rechts können Sie die Sprache ändern.

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.

Abbildung 17: An Mailbox 4 wird der Logik-Wert True (Bedingung erfüllt) übermittelt. Daraufhin führt der entsprechende NXT-Roboter eine im Programm zuvor festgelegte Anweisung aus.
Abbildung 17: An Mailbox 4 wird der Logik-Wert True (Bedingung erfüllt) übermittelt. Daraufhin führt der entsprechende NXT-Roboter eine im Programm zuvor festgelegte Anweisung aus.

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.