Kiwijoghurt > Projekt 1 http://www.kiwijoghurt.org Lego Mindstorms NXT über lejos und Eclipse mit Java programmieren Wir, das Team KiwiJoghurt, programmieren seit zwei Jahren den Lego NXT Roboter mit Java. Um NXT Nutzern den Umstieg zu erleichtern haben wir dieses Tutorial entwickelt. Wichtig: Dieses Tutorial funktioniert nur unter Windows XP. Die Zielsetzung dieses Tutorials: Wir werden in diesem Tutorial erklären, welche Software nötig ist, um den NXT mit Java programmieren zu können, erörtern, wie man diese installiert und anwendet. Dabei soll die Eclipse Java Entwicklungsumgebung als Editor für Java genutzt werden. Am Ende dieses Tutorials soll es dem Nutzer möglich sein, über Eclipse Java Programme zu schreiben und auf den NXT zu übertragen. Die gesamte verwendete Software ist im Internet kostenlos, ohne Anmeldung herunterladbar. Der Inhalt: Schritt 1: Download der benötigten Software 1.1 Download der Java Laufzeitumgebung 1.2 Download des Lego NXT Treibers 1.3 Download der Java NXT Plattform lejos 1.4 Download der Eclipse IDE Schritt 2: Installation von Java und dem NXT Treiber 2.1 Installation Java 2.2 Installation des NXT Treibers 2.3 Installationsüberprüfung des NXT Treibers Schritt 3: Installation und Konfiguration von LeJOS 3.1 Vorbereitung und Installation von LeJOS 3.2 System variablen anpassen 3.3 Installationsüberprüfung 3.4 Firmware übertragen Schritt 4: Installation und Einrichtung von Eclipse 4.1 Vorbereitung und Installation von Eclipse 4.2 NXT spezifische Einstellungen vornehmen Schritt 5: Ein erstes Programm übertragen 5.1 Hello World 5.2 Wenn man nicht weiter weiß: die LeJOS API Anhang Wenn es mal brennt Wir über uns http://www.kiwijoghurt.org 1 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 2 http://www.kiwijoghurt.org Lizenzbedingungen Version Schritt 1: Download der benötigten Software 1.1 Download der Java Laufzeitumgebung Java wird benötigt, damit Java Programme auf dem Rechner überhaupt interpretiert werden können. Da Java relativ häufig verwendet wird, ist bei Vielen Java schon installiert. Sollte dies nicht der Fall sein, muss Java nun heruntergeladen werden. Alle, die Java schon installiert haben, können diesen Schritt überspringen. Unter dem unten genannten Link liegt der Download. Einfach die, im Bild markierte Datei, herunterladen. Download Link: http://www.java.com/en/download/manual.jsp http://www.kiwijoghurt.org 2 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 3 http://www.kiwijoghurt.org 1.2 Download des Lego-NXT Treibers Der NXT Treiber ist notwendig, um den Roboter mit dem Computer kommunizieren zu lassen. Ohne den Treiber kann Windows nicht auf den NXT zugreifen. Da die Voraussetzung für dieses Tutorial der Besitz eines NXTs ist, ist es durchaus nicht unwahrscheinlich, das eben jener schon auf dem System installiert ist. Wer eine fertige NXT Treiber Installation sein eigen nennt, darf diesen Schritt überspringen. Für die nicht so glücklichen gibt es unten stehend den Link zum Download sowie ein Bild, das den Download kennzeichnet. Wer vergeblich den Link sucht, um den Download zu starten, nicht traurig sein: Ich musste auch lange suchen bis ich herausgefunden habe, dass man auf die 7.12 MB rechts in der Tabelle klicken muss. Download Link: http://mindstorms.lego.com/support/updates/ http://www.kiwijoghurt.org 3 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 4 http://www.kiwijoghurt.org 1.3 Download der Java NXT Plattform lejos LeJOS enthält die Klassen, die nötig sind, um die einzelnen Teile des NXT anzusteuern. Auch ist eine Java Virtual Machine enthalten, die auf den NXT gespielt wird, damit dieser Java interpretieren kann. Beim Download muss man darauf achten die ZIP Datei herunterzuladen, nicht die.exe Datei. Sollte eine neue Version erscheinen kann man auch diese verwenden, statt der 0.7 Version. Download Link: http://sourceforge.net/project/showfiles.php?group_id=9339&package_id=217619 http://www.kiwijoghurt.org 4 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 5 http://www.kiwijoghurt.org 1.4 Download der Eclipse IDE Eclipse ist eine Entwicklungsumgebung für fast alles. Es gibt Eclipse in verschiedenen Ausführungen, unter anderem für Java und c++. Da nur Java von belang ist wird eine recht schmale Version heruntergeladen, die für unsere Zwecke aber völlig ausreicht. Download Link: http://www.eclipse.org/downloads/ Schritt 2: Installation von Java und dem NXT Treiber 2.1 Installation Java Die Installation von Java ist relativ unkritisch. Einfach auf die heruntergeladene ausführbare Datei Doppel klicken und den Installationsanweisungen folgen. In welches Verzeichnis Java installiert wird, ist egal. Wie auch schon beim Download gilt: Wer eine aktuelle Java Version schon installiert hat, kann diesen Schritt übergehen. 2.2 Installation des NXT Treibers Die Installation des NXT Treibers gestaltet sich ähnlich simpel. Die Datei ausführen und den Installationsanweisungen folgen. Auch hier ist das Zielverzeichnis unkritisch und glückliche Systembesitzer mit schon installiertem NXT Treiber können diesen Schritt überspringen. 2.3 Installationsüberprüfung des NXT Treibers Um sicher zu gehen, das der NXT Treiber auch ordnungsgemäß funktioniert wird nun der NXT angeschlossen. Wichtig ist, das der NXT auch an ist! Im Windows Gerätemanager sollte nun ein Punkt Lego Devices vorhanden sein. Ist dies der Fall, so wurde der NXT Treiber korrekt installiert. Für alle die sich nun Fragen, wo man den Gerätemanager findet gibt es hier eine kurze Wegbeschreibung: Rechtsklick auf den Arbeitsplatz und dort im Menü Eigenschaften auswählen. Nun zum Karteireiter Hardware wechseln und dort auf Gerätemanager klicken. http://www.kiwijoghurt.org 5 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 6 http://www.kiwijoghurt.org Schritt 3: Installation und Konfiguration von LeJOS 3.1 Vorbereitung und Installation von LeJOS Da LeJOS in einem Archiv gepackt ist, muss es nun entpackt werden. Allerdings nicht irgendwohin, sondern nach C:\ProgramFiles. Das ist wichtig um eine saubere Installation zu gewährleisten. Nachdem man diesen Ordner angelegt hat, LeJOS einfach in dieses Verzeichnis entpacken. Danach sollte in Verzeichnis ProgramFiles ein Verzeichnis lejos_nxj liegen. Ist eine neue Version von LeJOS erschienen so kann man die alte Version wieder löschen und durch die neue ersetzen. 3.2 System variablen anpassen Nun wird es ein wenig schwieriger, aber nicht bedeutend. Es müssen zwei System variablen angepasst werden, um Windows mitzuteilen, wo LeJOS liegt. Wichtig ist, das man Administrator rechte hat, da sich die System variablen sonst nicht editieren lassen. Die System variablen werden wie folgt aufgerufen: Nach einem Rechtsklick auf Arbeitsplatz im Menü Eigenschaften wählen. Dort zum Karteireiter Erweitert wechseln und auf Systemvariablen klicken. Achtung: Wenn an dieser Stelle System variablen gelöscht oder nicht ordnungsgemäß geändert werden, kann es zu unerwünschtem Fehlverhalten und Störungen einzelner Programme/Funktionen kommen. Zuerst muss eine neue System variable eingerichtet werden. Ein Klick auf neu öffnet ein Fenster in das man einen Namen und einen Wert für die neue System variable eingeben soll. Diese System variable soll das Oberverzeichnis enthalten, also lejos_nxj. Und so sieht die System variable aus: LEJOS_HOME C:\ProgramFiles\lejos_nxj Name: Wert: http://www.kiwijoghurt.org 6 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 7 http://www.kiwijoghurt.org Jetzt muss die Path Variable geändert werden. Dazu die Path Variable (Name: Path) aus der Liste suchen und auf bearbeiten klicken. Diesmal muss an den schon vorhandenen Wert etwas angehängt werden. Den vorhandenen Inhalt nicht löschen. Auch wichtig ist, dass der Wert am Ende des schon vorhandenen Wertes eingefügt wird. Path ;%LEJOS_HOME%\bin Name: Anzuhängender Wert: 3.3 Installationsüberprüfung Die Installation kann überprüft werden, indem man in der Konsole den Befehl lejosdl ausführt. Um die Konsole zu öffnen ruft man in Start Menü die Eingabeaufforderung auf und startet mit dem Befehl cmd die Konsole. Wenn man dann lejosdl ausführt sollte man eine ähnliche Anzeige bekommen wie ich: http://www.kiwijoghurt.org 7 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 8 http://www.kiwijoghurt.org 3.4 Firmware übertragen Damit der NXT Java versteht, muss die Lego Firmware auf dem NXT durch die LeJOS Firmware ersetzt werden. Dazu wird der NXT an den Computer angeschlossen und die Konsole geöffnet. Nun muss am NXT ein kleiner Knopf betätigt werden, der den NXT in den Modus versetzt in dem man die Firmware übertragen kann. Dieser befindet sich in einem der äußeren Löcher auf der Rückseite des NXT. Am besten man benutzt einen dünnen Gegenstand wie etwa eine Büroklammer oder einen Zahnstocher: Hat man diesen Knopf betätigt, so fängt der NXT leise an zu ticken. Ist dies der Fall kann man ihn über das USB Kabel mit dem PC verbinden und in der Konsole mit dem Befehl lejosfirmdl die Übertragung der Firmware starten. Ist dies geglückt so erscheint beim Start des NXT mit der großen weißen Taste das LeJOS Logo. Es kann sein, das LeJOS den NXT nicht findet. In diesem Fall muss LibUSB nachinstalliert werden. Das ist jedoch nicht tragisch, da es schon im LeJOS Verzeichnis liegt: Pfad: C:\ProgramFiles\lejos_nxj\3rdparty\lib\libusb-win32-filter-bin-0.1.12.1.exe Wenn das übertragen an dieser Stelle immer noch nicht klappt, ist irgendwas schief gelaufen. Jedoch ist noch nicht aller Tage Abend. Ihr könnt uns gerne eine Mail an die unten genannte Adresse schreiben, wir helfen gerne. Die Lego Firmware kann jederzeit wieder auf den NXT gespielt werden. http://www.kiwijoghurt.org 8 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 9 http://www.kiwijoghurt.org Schritt 4: Installation und Einrichtung von Eclipse 4.1 Vorbereitung und Installation von Eclipse Die Installation von Eclipse ist denkbar einfach: Einfach nach C:\ProgramFiles entpacken, also in das gleiche Verzeichnis, wie LeJOS. Das Verzeichnis sollte dann so aussehen: NXT spezifische Einstellungen vornehmen Nun wird es interessant. Denn erst jetzt beginnt das Tutorial richtig, dies ist ein echter Mamutschritt, der bestimmt die Hälfte des gesamten Tutorials ausmacht. Also, los geht es. Als erstes muss Eclipse gestartet werden. Dazu in den Eclipse Ordner wechseln und die Datei Eclipse ausführen. Wer will kann sich auch gleich eine Verknüpfung auf den Desktop legen, um nicht immer in diesen Ordner wechseln zu müssen. Nachdem Eclipse gestartet ist, wird nach einem Workspace gefragt. Hier einfach bestätigen. Im Workspace werden alle Klassen und Programme abgelegt, die man in Eclipse speichert. http://www.kiwijoghurt.org 9 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 10 http://www.kiwijoghurt.org Danach kommt man zu diesem Fenster: Hier einfach auf den rechten Button Workbench klicken. Jetzt sieht man die Entwicklungsumgebung Eclipse Java. http://www.kiwijoghurt.org 10 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 11 http://www.kiwijoghurt.org Als nächstes muss man ein neues Projekt anlegen. Dazu oben links auf File Klicken und im Menü dann Java Project auswählen. http://www.kiwijoghurt.org 11 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 12 http://www.kiwijoghurt.org Jetzt erscheint ein Dialog in dem man einen Namen angeben muss, wie im Bild gezeigt. Hier bitte LeJOS_NXJ als Projektnamen eintragen. Nun kann man den Dialog mit einem Klick auf Finish schließen. http://www.kiwijoghurt.org 12 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 13 http://www.kiwijoghurt.org Das Projekt erscheint nun links in der Leiste. Dort auf das Projekt LeJOS_NXJ rechts klicken und im Menü Properties auswählen. http://www.kiwijoghurt.org 13 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 14 http://www.kiwijoghurt.org Im erscheinenden Dialog links Java Build Path wählen und rechts zum Karteireiter Libaries wechseln. Dort, wie im Bild zu sehen, auf Add External JARs klicken. http://www.kiwijoghurt.org 14 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 15 http://www.kiwijoghurt.org Ziel des Ganzen ist es die Java Klassen für den NXT in das Projekt zu laden. Dementsprechend wechseln wir nun auch in das LeJOS Verzeichnis und wählen im Unterverzeichnis lib Classes.jar aus: Ein Klick auf öffnen bestätigt die Aktion. http://www.kiwijoghurt.org 15 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 16 http://www.kiwijoghurt.org Jetzt muss noch der Java Compiler wie im Bild dargestellt eingestellt werden und dann kann der Properties Dialog mit einem Klick auf OK geschlossen werden. http://www.kiwijoghurt.org 16 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 17 http://www.kiwijoghurt.org Nun muss man nur noch auf den Roboter übertragen können. Das wird nun eingerichtet. Dazu im oberen Menü auf Run klicken und im Untermenü über External Tools auf External Tools Configurations... klicken. http://www.kiwijoghurt.org 17 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 18 http://www.kiwijoghurt.org Zuerst muss nun Program selektiert und danach auf das New Icon geklickt werden. In unserem Beispiel verwenden wir den Namen lejos Download. Jetzt unter Location: C:\ProgramFiles\lejos_nxj\bin\lejosdl.bat und unter Working Directory: ${project_loc}\bin eintragen. Zuletzt muss noch Arguments gefüllt werden: Arguments: ${java_type_name} Das ganze sollte dann so aussehen: Danach auf Run klicken. http://www.kiwijoghurt.org 18 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 19 http://www.kiwijoghurt.org Jetzt auf das Start Symbol klicken und Organize Favourites auswählen: Dann auf Add klicken und lejos Download auswählen und alles mit OK bestätigen. Damit ist es geschafft. War doch gar nicht so schwer oder? Schritt 5: Ein erstes Programm übertragen http://www.kiwijoghurt.org 19 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 20 http://www.kiwijoghurt.org 5.1 Hello World Das Ziel des letzten Schrittes dieses Tutorial ist es, den Schriftzug Hello World auf dem LCDisplay des NXT auszugeben. Dazu muss man als erstes eine neue Klasse erstellen. Dazu einfach im Hauptmenü unter File den Eintrag Class auswählen: Wichtig ist, das die Klasse den gleichen Namen hat, wie die Datei, in der sie gespeichert wird. Da die Klasse in diesem Fall HelloWorld heißt, muss die Datei HelloWorld.java heißen. Zusätzlich http://www.kiwijoghurt.org 20 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 21 http://www.kiwijoghurt.org muss man noch das Häkchen bei public static void main setzen. Das bedeutet, das dies die Methode ist, in der alles ausgefürt wird. Nun sollte Eclipse in etwa so aussehen: http://www.kiwijoghurt.org 21 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 22 http://www.kiwijoghurt.org Der Standardcode den Eclipse in jede neue Klasse schreibt ist hier jedoch nicht zu gebrauchen: Also raus damit. Stattdessen wird hier dieses kleine Programm eingefügt: Code: import lejos.nxt.lcd; public class HelloWorld { public static void main(string[] aarg) { } LCD.drawString("Hello World!", 2, 2); LCD.refresh(); while(true) {} } Nun noch den NXT ein stöpseln und anmachen, dann kann es losgehen. http://www.kiwijoghurt.org 22 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 23 http://www.kiwijoghurt.org Jetzt nur noch unter Run auf LeJOS Download klicken und auf dem Display sollte nun, nachdem der Roboter einmal gepiept hat, Hello World stehen. Alternativ kann man auch auf das Icon Klicken: Wenn der NXT einen Ton von sich gegeben hat, das Programm aber nicht startet kann man dies Manuell nachholen. Einfach auf dem NXT in den Menüpunkt Files gehen und dort das übertragene Programm auswählen. Dann mit Execute Program die Auswahl bestätigen. 5.2 Wenn man nicht weiter weiß: die LeJOS API da man sich schwerlich alle Befehle merken kann, gibt es im Internet die LeJOS API in der alle Befehle, nach Klassen geordnet, erklärt werden: http://lejos.sourceforge.net/nxt/nxj/api/index.html http://www.kiwijoghurt.org 23 Projekt < Kiwijoghurt
Kiwijoghurt > Projekt 24 http://www.kiwijoghurt.org Anhang Wenn es mal brennt Wenn es mal nicht klappt, ihr an einem Punkt nicht weiter kommt, einen Fehler im Tutorial gefunden habt, Anregungen geben, oder einfach nur danke sagen wollt: Schreibt uns eine E mail an: info@kiwijoghurt.org oder Schreibt in unser Forum: http://forum.kiwijoghurt.org Wir über uns Wir, das Team Kiwijoghurt, nehmen seit vier Jahren am RoboCup Junior Teil. Wir benutzen dazu den Lego NXT Roboterbausatz und wie könnte es auch anders sein programmieren mit Java. Wenn ihr mehr über unsere Arbeit erfahren wollt, besucht uns im Internet unter: http://www.kiwijoghurt.org Lizenzbedingungen Dieses Tutorial wurde vom Team KiwiJoghurt (http://www.kiwijoghurt.org ) erstellt und unterliegt auch den Lizenzbedingungen des Team KiwiJoghurt. Fragen oder Anregungen siehe Punkt Wenn es mal brennt. Version Version 1.1 http://www.kiwijoghurt.org 24 Projekt < Kiwijoghurt