Softwareinstallationen

leJOS: Java für LEGO Mindstorms

Um einen Roboter mit Java programmieren zu können, benötigt man leJOS. leJOS ist eine Bibliothek, bestehend aus einer winzigen "Java Virtual Machine", einer Programmierschnittstelle und Werkzeugen, um zwischen Rechner und Roboter zu interagieren (z.B. um ein Programm auf den Roboter zu laden). Man erhält dadurch typische Java-Funktionalitäten wie Kontrollstrukturen, Objektorientierung, Threads, Rekursion, Arrays und viele Klassen der Standardbibliotheken. Das entsprechende leJOS muss man je nach Robotertyp (EV3, NXT, RCX) herunterladen. Achten Sie dabei auch auf die Art Ihres Betriebssystems!

Im Folgenden werden vier Software-Varianten zur Programmierung eines NXT vorgestellt. (Falls Sie einen EV3 besitzen, sei auf folgende Quelle verwiesen).

Variante 1: Eclipse mit nxj-Plugin

Im professionellen Java-Bereich ist Eclipse eine beliebte Entwicklungsumgebung. Gegen den Einsatz im Schulumfeld spricht der gewöhnungsbedürftige komplexe Funktionsumfang, von dem nur ein Bruchteil Anwendung findet. Dafür sprechen ein installierbares leJOS-Plugin sowie eine gute Strukturierungsmöglichkeit seiner Programme in Workspaces, Projekten und Paketen. Ferner existiert ein sehr empfehlenswertes Tutorial, das einem nützliche Hinweise und Warnungen vor Installations-Tücken bereitstellt (z.B. benötigt man aufgrund von leJOS NXJ eine 32-bit Version von Eclipse, auch wenn man ein 64-bit System besitzt). Mit installiertem Plugin muss man noch unter Window>Preferences den Pfad zu NXJ_HOME setzen:

Screenshot: Eclipse leJOS-NXJ-Plugin: Preferences-Tab[1]

Variante 2: BlueJ mit Plugin

BlueJ ist eine für Ausbildungszwecke konzipierte integrierte Java-Entwicklungsumgebung. Die IDE ist für alle gängigen Plattformen verfügbar. Beachten Sie bei der Installation, dass Sie ein JDK (Java Development Kit) benötigen. Bei manchen BlueJ-Installationspaketen ist das JDK bereits mit integriert. Dennoch kann es sein, dass Sie beim erstmaligen Start von BlueJ noch Pfade zur JDK (z.B. /usr/bin/javac) setzen müssen.

Auch für BlueJ existiert fü den NXT ein leJOS-Plugin namens LeJOSNXTExtension.jar, mit dem man über eine Erweiterung im Kontextmenü zwischen der IDE und dem Roboter interagieren kann. Ein empfehlenswertes Tutorial erläutert die folgenden notwendigen Einzelschritte im Detail:

  1. LeJOSNXTExtension.jar speichern in "Installationspfad"/BlueJ/lib/extensions-Verzeichnis
  2. Nach BlueJ-Start ins Menü "Tools>Preferences" (Werkzeuge>Einstellungen) wechseln
  3. Im "Libraries"-Tab die Datei classes.jar hinzufügen (Abbildung 1)
  4. Im "Extensions"-Tab gibt man den Pfad zum "lejos_nxj"-Verzeichnis an (Abbildung 2)
  5. BlueJ neu starten
Screenshot: BlueJ leJOS-NXT-Plugin: Libraries-Tab[2]
Screenshot: BlueJ leJOS-NXT-Plugin: Extensions-Tab[3]

Auch hier sollte man im Fehlerfall seine Berechtigungen überprüfen, ggf. müssen Verzeichnisse mit chmod diesbezüglich verändert werden. Es empfiehlt sich, BlueJ bereits mit Administrationsrechten zu starten (z.B. mit sudo). Ein Timeout beim Hochladen eines Programms auf den Roboter kann ein Seiteneffekt von nicht vorhandenen Rechten sein.

Variante 3: Notepad++ und Shell-Script

Man kann seine Programme unabhängig von einer Programmierumgebung in einem Editor schreiben, z.B. mit Notepad++. Anschließend muss man sein Java-Programm "manuell" über die Kommandozeile (Konsole | Shell | Terminal | Eingabeaufforderung) unter der Verwendung der leJOS-Werkzeuge kompilieren und auf den Roboter portieren. Nützlich sind hierbei Shellskripts (Linux), AppleScript (Mac OS) bzw. BAT-Dateien (Microsoft Windows).

Bei Linux können etwaige Berechtigungshürden durch sudo überwunden werden. Windows erlaubt in neueren Versionen abhängig vom Typ des Benutzerkontos unter Umständen das Ausführen einer solchen Datei überhaupt nicht.

Variante 4: Java-Editor

Der Java-Editor von Gerhard Röhner unterstützt die Programmierung mit leJOS für alle drei Mindstorms-Varianten (RCX, NXT und EV3). Um Programme für das hier beschriebene NXT-System zu erstellen und auf dem NXT-Baustein auszuführen sind folgende Schritte notwendig.

Für die Übertragung von Programmen kann später eine Bluetooth-Verbindung genutzt werden, zur Übertragung der leJOS-Firmware (Flashen) auf den Baustein ist jedoch eine USB-Verbindung notwendig (Schritte 3 +4).

  1. Installation des JDK (Java Development Kit, Java-Entwicklungswerkzeuge) und des Java-Editors
  2. Konfiguration des Java-Editors: Beachte insbesondere Abschnitte Dokumentation und Mindstorms: Hier können automatisiert die API (application programming interface, Schnittstelle für den Anwendungsprogrammierer), ein JAVA-Handbuch sowie das leJOS installiert und zur Verwendung mit dem Java-Editor eingerichtet werden.
  3. Installation des USB-Treibers (Download the NXT Fantom Driver) für den NXT-Baustein. Ist auf dem PC bereits die NXT-G-Software installiert, so sollte auch der Treiber bereits installiert sein.
  4. Flashen des NXT-Bausteins: zum Beispiel über die entsprechende Schaltfläche des Java-Editors bei einer USB-Verbindung
    Screenshot: Java-Editor mit Mindstorms-Schaltfläche zum Flashen[4]

Quellen

  • http://www.lejos.org/
  • http://www.lejos.org/nxt/nxj/tutorial/Preliminaries/UsingEclipse.htm
  • http://www.bluej.org/
  • http://homepages.herts.ac.uk/~comqdhb/lego/bluej.php
  • http://www.java-online.ch/lego/
  • http://javaeditor.org
  • [1]: Screenshot: Eclipse leJOS-NXJ-Plugin: Preferences-Tab - Urheber: mks - Lizenz: Inf-Schule.de
  • [2]: Screenshot: BlueJ leJOS-NXT-Plugin: Libraries-Tab - Urheber: mks - Lizenz: Inf-Schule.de
  • [3]: Screenshot: BlueJ leJOS-NXT-Plugin: Extensions-Tab - Urheber: mks - Lizenz: Inf-Schule.de
  • [4]: Schaltflächen zum Flashen mit dem Java-Editor - Urheber: BF - Lizenz: Inf-Schule.de
X

Fehler melden

X

Suche