Lego Mindstorms
Meine Schule verfügt inzwischen über ein LEGO Education Education Innovation Studio (LEIS) u.a. mit Mindstorm NXT und eine Reihe von Zusatzkästen. Wir setzen die in verschiedenen Klassenstufen ein, vor allem in Arbeitsgemeinschaften. Mit den jüngeren Schülern arbeiten wir mit NXT-G, mit den älteren Schülern, vor allem in der Studienstufe, mit textbasierten Programmiersprachen. In der Studienstufe will ich die Mindstorms auch im Zusammenhang mit der Dialog-Software DialogOS einsetzen. Ziel ist eine möglichst interessante Kommunikation zwischen Mensch und Roboter.
Die grafische Umgebung NXT-G
Für den Einstieg in die Programmierung ist die mitgelieferte grafische Entwicklungsumgebung eine große Hilfe. Hier stehen alle logischen Strukturen als Elemente zur Verfügung und können mit der Maus in die Anwendung gezogen werden. Leider hat die Software leichte Stabilitätsprobleme, die ich bisher nicht einkreisen konnte:
- Gelegentlich hängt die Anwendung vollkommen und lässt sich nur durch einen vollständigen Neustart reaktivieren
- Relativ häufig lassen sich einzelne Elemente nicht zum Bearbeiten aktivieren. Das Element ist dann zwar hervorgehoben, aber im unteren Bereich des Fensters erscheinen die Einstellmöglichkeiten nicht.
- Fast immer gibt es Probleme mit dem Zeichnen der Datenverbindungen. Die Linienverläufe sind erst dann vollständig zu erkennen, wenn z.B. das Element mit den Anschlüssen einmal geöffnet und wieder geschlossen wurde. Dann zeigt die Software den Linienverlauf korrekt an.
- Beim Verschieben von Elementen, zwischen denen Datenverbindungen vorhanden sind, z.B. in eine Wiederholstruktur, verschwinden oft die Datenverbindungen und müssen neu erstellt werden, was dann aber manchmal nicht funktioniert.
Zur Einführung in NXT-G (online-Version) oder PDF-Version (1,5 MByte)
BricxCC und NXC
Die grafisch orientierte Umgebung NXT-G ist wirklich große Klasse. Irgendwann kommt dann aber doch der Punkt, wo man anfangen möchte richtig zu programmieren. Mit dem RobotC wird von LEGO eine entsprechende Umgebung angeboten. Davon habe ich mir auch eine Einzelplatzversion beschafft. Was mich da schon genervt hat ist die Tatsache, dass ich die Software aktivieren musste. Als ich dann auch noch gesehen habe, dass die Schullizenz eine Beschränkung auf 12 Arbeitsplätze beinhaltet (und dann jeweils aktiviert werden muss?) kam das für mich nicht mehr in Frage. Um bei der Auswahl der Rechner einigermaßen flexibel bleiben zu können müsste ich dann schon drei Lizenzpakete kaufen. Da kaufe ich für das Geld lieber Kästen.
Zum Glück gibt es freie Alternativen zu dem RobotC. Ich habe mich momentan für NXC entschieden. Not eXactly C (NXC) ist eine C-ähnliche Programmiersprache für den NXT. Sie wird von John Hansen entwickelt, der auf für die IDE BricxCC verantwortlich ist. In die aktuellen Versionen von BricxCC ist NXC bereits integriert.
Für das NXC gibt es eine Reihe von Beschreibungen, u.a. ein deutsches Tutorial von Lukas Propst und natürlich den Programmer Guide von John Hansen sowie ein Tutorial von Daniele Benedettelli. Zu den Dokumenten gibt es teilweise auch Code-Beispiele.
Bei dem BricxCC hatte ich anfänglich ein Problem damit die Verbindung mittels Bluetooth zu realisieren. Aber bei Software wie BricxCC kann man ja den Programmautor um Hilfe fragen und John Hansen beantwortet Fragen sehr hilfsbereit. Es ist so, dass nur Bluetooth-Verbindungen genutzt werden können, die in der Datei nxt.dat im Programmverzeichnis von BricxCC stehen. Dort steht für jede Brick eine Zeile wie:
BTH::HANSA11=BTH::HANSA11::00:16:53:05:92:90::11
Im vorderen Teil tauch hier der Bezeichner BTH für Bluetooth und der Name der Brick auf. Im hinteren Teil ist die ID der Brick zu sehen. Die Einträge in der nxt.dat lassen sich notfalls mit einem Editor erstellen. Die ID kann man auf der Brick finden unter Setting -> NXT Version,
Einfacher ist es die Datei zu löschen, den Bluetooth-Adapter zu aktivieren und einmal die Verbindung z.B. mittels der LEGO-Software aufzubauen. Wenn man dann BricxCC neu startet wird die Datei passend neu erstellt, man muss dann nur im Find Brick Dialog den richtigen Port auswählen.
Zur Einführung in die Arbeit mit NXC (Online-Version) oder PDF-Version (260 kByte)
Die zusätzlichen Sensoren von Hitechnic
DialogOS
Eine sehr spannende Software im Zusammenhang mit den Mindstorms ist die Dialog-Software DialogOS. Damit kann man Roboter bauen, mit denen man in normaler Sprache kommunizieren kann.
Einen kleinen Einblick in die Möglichkeiten bietet das Video von einer Vorführung auf der CeBit 06 oder die Videos auf den Seiten der Universität des Saarlandes [1]
Einführung in die Arbeit mit DialogOS (Online-Version)
Projekte aus dem eigenen Unterricht.
Links
Fahrzeuge
http://www.nxtprograms.com/NXT2/3-motor_chassis/index.html
http://www.nxtprograms.com/MTV/index.html
http://www.nxtprograms.com/hammer_car/index.html
http://mindstorms.lego.com/nxtlog/ProjectDisplay.aspx?id=c7c74ccd-c36f-4e16-b9d5-787b2d24ccb4