leJOS – Java für LEGO MINDSTORMS

Lego-Roboter mit Java programmieren

Michael Jentsch

Mit leJOS NXJ steht ein Java-Betriebssystem für den LEGO-MINSTORMS-NXT-Baustein zur Verfügung, der es ermöglicht, einen LEGO-Roboter mit Java zu programmieren. Damit kommt man dem „Write once, run anywhere“-Gedanken von Java wieder einen Schritt näher. Anhand eines kleinen Beispielprogramms wird hier die Programmierung der leJOS NXJ Firmware vorgestellt.

Anfang 2006 präsentierte LEGO die das neue MINDSTORMS-NXT-Produkt, das sich schon nach kürzester Zeit einer großen Beliebtheit erfreute und seit einiger Zeit auch in Schulen und Universitäten zu Lehrzwecken angeboten wird. Der LEGO MINDSTORMS NXT wird mit dem grafisches Programmiersystem LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench) von National Instruments ausgeliefert. Die mitgelieferte Programmierumgebung NXT-G ist intuitiv zu benutzen, und man hat sich schnell in die grafische Programmierung der Motoren und Sensoren eingearbeitet.

Abb. 1: LEGO-MINDSTORMS-NXT-Entwicklungsumgebung

Wer sich intensiver mit NXT-G beschäftigt, wird feststellen, dass man bei komplexeren Programmen schnell die Übersicht verliert. Die Programmierumgebung NXT-G wurde für eine Zielgruppe ab einem Alter von 10 Jahren entworfen und ist für diese Zielgruppe der ideale Einstieg in die Programmierung von Robotern. Dem erfahrenen Java-Entwickler fällt es vermutlich aber leichter, mit Eclipse ein Java-Programm zu schreiben, als ein Programm mit LabVIEW zu „malen“. Glücklicherweise hat man mit leJOS eine alternative Firmware, die es ermöglicht, Java-Programme auf dem LEGO MINDSTORMS NXT auszuführen.

leJOS NXJ

Das LEGO Java Operating System (leJOS) basiert auf der TinyVM und wurde 1999 von José Solórzano für den damaligen RCX Brick umgesetzt. 2007 wurde unter dem Namen leJOS NXJ eine leJOS-Portierung für den neuen NXT-Baustein veröffentlicht, die deutlich performanter läuft, mehr verfügbaren Speicher bietet und sogar Bluetooth-Unterstützung mitbringt. Implementiert ist ein großer Teil der Java Virtual Machine, der die Ausführung von Java-Programmen auf dem LEGO-MINDSTORMS-NXT-Baustein ermöglicht. Das Projekt steht unter der Mozilla Public License und ist damit Open Source.

Neben der Firmware enthält leJOS NXT einen Compiler, einen Linker und weitere Tools zum Upload der Programme und zum Installieren der Firmware per USB auf dem NXT-Baustein. Die leJOS NXJ API bringt alle nötigen Klassen zur Steuerung der bis zu 3 möglichen Motoren, zur Abfrage der unterschiedlichen Sensoren, der Tasten am NXT und der Ausgabe von Bild und Text auf dem LCD-Display mit.

Für eine große Anzahl von Sensoren sind bereits vorgefertigte Klassen im API enthalten. Neben den im Lieferumfang des LEGO MINDSTORMS NXT enthaltenen Sensoren wie Berührungssensor, Lichtsensor, Geräuschsensor und Ultraschallsensor sind auch Klassen für Sensoren von Drittanbietern wie z.B. der GyroSensor von HiTechnic, mit dem man Neigungen und Drehungen messen kann, oder die NXTCam von mindsensors, die mit dem „Vision Subsystem for NXT“ eine Kamera für den MINDSTORMS NXT anbieten. Insgesamt enthält die API mehr als 160 Klassen und Interfaces, die neben vielen anderen Features auch Unterstützung für Multithreading, Events und File IO bieten.

Geschrieben von
Michael Jentsch
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.