231455

So werden Sie zum Roboter-Programmierer

23.11.2009 | 17:05 Uhr | Hans-Christian Dirscherl

Doch das Zusammenbauen ist nur Teil der Mindstorms-Erfahrung: Sobald Sie ein Modell komplett zusammengesetzt haben, beginnt der Spaß erst richtig. Denn nun müssen Sie dem LEGO Mindstorms NXT-Brick Intelligenz einhauchen. Dazu programmieren Sie den NXT-Brick von Ihrem Rechner aus - einfache Befehlsfolgen können Sie übrigens auch über die Bedientasten auf dem NXT-Baustein direkt eingeben.

Statt kryptischem Quellcode in englischer Sprache eine freundlich erscheinende deutschsprachige visuelle Programmieroberfläche
Vergrößern Statt kryptischem Quellcode in englischer Sprache eine freundlich erscheinende deutschsprachige visuelle Programmieroberfläche
© 2014

Sie haben noch nie programmiert, kryptische Befehlsfolgen mit endlos verschachtelten Klammern sind für Sie Teufelszeug? Kein Problem: Um den LEGO Mindstorms NXT 2.0 zum Leben zu erwecken, ist keine klassische Programmiersprache wie Basic, C, C++ oder Java erforderlich - der damit verbundene Lernaufwand entfällt also. Stattdessen setzt LEGO beim NXT auf eine vergleichsweise leicht erlernbare Programmiersprache mit grafischer Oberfläche: NXT-G genannt. NXT-G orientiert sich an Labview, einer professionellen grafischen Programmiersprache für die Automaten- und Maschinensteuerung, wie sie in der Industrie verwendet wird. Insofern handelt es sich bei NXT-G also durchaus um eine ernst zu nehmende Form der Programmierung, nur dass Sie den gesamten "Quell-Code" nicht mühsam und fehleranfällig von Hand eintippen müssen, sondern alle Code-Bestandteile bequem mit der PC-Maus zusammenklicken.

Die NXT-G-Programmiersprache
Die NXT-G-Programmiersprache samt Entwicklungsumgebung wird auf dem PC installiert, wo Sie alle Programme für Ihren Roboter erstellen. Dabei bedienen Sie sich aus den von der Entwicklungsumgebung mitgelieferten Auswahlwerkzeugen. Sie ziehen einfach die Programmiersymbole (zum Beispiel für Motorsteuerung oder Sensorabfrage) von der Auswahlliste am linken Bildschirmrand auf die Arbeitsfläche, ordnen sie hintereinander an und konfigurieren die einzelnen Blöcke. Mehrere Entwicklungsstränge lassen sich parallel anordnen, so dass Ihr Roboter verschiedene Funktionen gleichzeitig macht. LEGO liefert bereits einige fertige Programme mit, die Sie sofort ausprobieren können, ohne selbst programmieren zu müssen. Übrigens: Die gesamte Entwicklungsumgebung liegt in deutscher Sprache vor, Sie müssen also im Unterschied zu einer "normalen" Programmiersprache wie C oder C++ kein Englisch büffeln.

Das Programmierern erfolgt mit der Maus via Drag&Drop
Vergrößern Das Programmierern erfolgt mit der Maus via Drag&Drop
© 2014

NXT-G bietet typische Programmierinstrumente wie Schleifen und Verzweigungen, stellt Vergleichsoperatoren zur Verfügung und erzeugt Zufallszahlen. Variablen lassen sich ebenfalls anlegen und initialisieren. Sie müssen keine Befehle auswendig lernen, können sich nicht vertippen und vermeiden so von vornherein die ärgerlichen Syntaxfehler, wie man sie von klassischen Programmiersprachen her kennt. Lediglich bei der Programmierlogik müssen Sie natürlich aufpassen: Wenn Sie beispielsweise den Sensor, mit der Roboter den Boden vor sich abtasten soll, falsch programmieren, so erkennt LEGO Mindstorms NXT die Stufe vor sich nicht und stürzt unweigerlich in den Abgrund.

Das fertige Programm überspielen Sie via USB oder Bluetooth auf den NXT-Brick Ihres Robotormodells. Nach einige Sekunden ist der Roboter startbereit, wie ein Piep-Ton anzeigt. Sie können mehrere Programme gleichzeitig auf dem NXT-Brick speichern, allerdings wird dessen Flash-Speicher bei längeren Programmen schnell zu klein. Löschen Sie dann nicht benötigte Sounddateien oder alte Programme, um Platz zu gewinnen.

Der Mindstorms erwacht zum Leben
Wenn Sie dann noch auf den orangen Startknopf auf dem Gehäuse des NXT-Brick drücken, erwacht LEGO Mindstorms zum Leben. Er arbeitet Schritt für Schritt die Befehlsfolge ab, die Sie ihm vorgegeben haben. Nur ein Beispiel: Sie lassen den Roboter kreuz und quer durch ihre Wohnung fahren; sobald er gegen ein Hindernis stößt (das er mit seinem Berührungssensor erkennt), stoppt der Roboter, stößt etwas zurück und spielt eine kurze Melodie ab (sie können verschiedene Audio-Dateien auf dem NXT-Brick speichern), macht danach ein 90-Grad-Drehung und fährt wieder los, bis er erneut auf ein Hindernis stößt. Ideal ist es, wenn sich der Mindstorms-Roboter mit Hilfe mehrere Sensoren gleichzeitig orientieren kann. Aktivieren Sie also beispielsweise zur Unterstützung des Ultraschallsensors noch zusätzlich den Tastsensor. Stößt Mindstorms jetzt auf ein flach vor ihm liegendes Hindernis, das der Ultraschallsensor nicht erkennt, so identifiziert es der Tastsensor.

In die Entwicklungsumgebung ist eine ausführliche Hilfefunktion integriert, die den Sprachumfang erklärt. Ein gedrucktes Handbuch fehlt allerdings. Der Phantasie des Anwenders sind kaum Grenzen gesetzt, er kann nach Belieben seine eigene Modelle entwerfen und dazu passende Programme schreiben. Mit wenigen Schritten lässt sich eine Endlosschleife erstellen, die den Mindstorms NXT ununterbrochen durch die Wohnung düsen lässt. Bei der Feinjustierung der Licht- und Ultraschall-Sensoren ist grundsätzlich ausprobieren angesagt, bis man die optimalen Einstellungen gefunden und programmiert hat.

Tipp: Versierte Tüftler aus der engagierten Community rund um den Mindstorms haben längst Entwicklertools für gängige Hochsprachen wie C, C++ und Java geschrieben. Damit können Sie den Mindstorms beispielsweise auch unter Linux programmieren!

PC-WELT Marktplatz

231455