Dieser Artikel wurde archiviert, da er - oder Teile daraus - nur noch unter einer älteren Ubuntu-Version nutzbar ist. Diese Anleitung wird vom Wiki-Team weder auf Richtigkeit überprüft noch anderweitig gepflegt. Zusätzlich wurde der Artikel für weitere Änderungen gesperrt.
Anmerkung: Paket nicht mehr im PPA
LeJOS-Homepage LeJOS ist eine schlanke Java Virtual Machine, die auf einem Lego-Mindstorms-NXT-Baustein installiert werden kann. Dadurch lässt sich der Lego-NXT-Baustein vollständig mit Java programmieren. Häufig verwendet man dann die Bezeichnung NXJ (J für Java) anstelle von NXT. LeJOS bringt verschiedene nützliche Werkzeuge mit:
nxjbrowse – Ein Dateibrowser für den NXT.
nxjmonitor – Ein „Armaturenbrett“ auf dem man alle Sensor- und Motorwerte ablesen kann.
und natürlich den Compiler (nxjc), den Linker (nxjlinker), einen Uploader (nxjupload) sowie andere Werkzeuge (nxj).
LeJOS ist leider nicht als Deb-Paket verfügbar und muss daher aus den Quellen kompiliert werden.
Erst sollte sichergestellt werden, dass
sowie die folgenden Pakete installiert sind:
build-essential
ant
libusb-dev
libbluetooth-dev
Paketliste zum Kopieren:
sudo apt-get install build-essential ant libusb-dev libbluetooth-dev
sudo aptitude install build-essential ant libusb-dev libbluetooth-dev
Nun muss die neueste Version von LeJOS von lejos heruntergeladen und nach /opt/ entpackt [3] werden.
Fremdsoftware kann das System gefährden.
Um in Zukunft alle benötigten Umgebungsvariablen zu haben, empfiehlt es sich, die Datei ~/.profile um folgende Zeilen zu ergänzen[2]:
export NXJ_HOME=/opt/lejos_nxj export LEJOS_HOME=$NXJ_HOME export PATH=$PATH:$NXJ_HOME/bin export CLASSPATH=$CLASSPATH:.:$NXJ_HOME/lib/classes.jar:$NXJ_HOME/lib/pccomm.jar:$NXJ_HOME/lib/jtools.jar:$NXJ_HOME/lib/pctools.jar
Danach sollte man sich abmelden und erneut anmelden, damit die Umgebungsvariablen global zur Verfügung stehen.
Nach diesen Vorbereitungen kann das Kompilieren durch folgende Befehle im Terminal [1] erledigt werden:
cd /opt/lejos_nxj/build sudo ant
Wenn am Ende der Ausgabe BUILD SUCCESSFUL
steht, kann mit dem nächsten Schritt fortgefahren werden.
Um LeJOS vom PC zu entfernen, reicht es den Ordner /opt/lejos_nxt zu löschen und die Änderungen in der Datei ~/.profile rückgängig zu machen.
Theoretisch würde die Verbindung nun bereits funktionieren, jedoch müssen die NXJ-Werkzeuge direkt schreibend auf die USB-Gerätedateien zugreifen können, was normalerweise nur als Root möglich ist. Man sollte es jedoch möglichst vermeiden als Root eine Verbindung zum NXT herstellen. Mittels udev bietet sich ein eleganter Weg, auch normalen Benutzern alle nötigen Rechte zu gewähren.
Zuerst sollte man eine neue Gruppe (z.B. "lego-nxj") anlegen und sich und Root der Gruppe hinzufügen:
sudo addgroup lego-nxj sudo adduser `whoami` lego-nxj sudo adduser root lego-nxj
Danach sollte man sich neu anmelden oder gleich das ganze System neu starten, damit die Rechte neu eingelesen werden.
Um die weitere Konfiguration durchführen zu können, müssen erst noch einige Informationen gesammelt werden. Dazu wird der NXT-Baustein über das USB-Kabel mit dem Computer verbunden, angeschaltet und
lsusb | grep Lego
aufgerufen. Die Ausgabe sollte etwa wie folgt aussehen:
Bus 004 Device 007: ID 0694:0002 Lego Group
Wichtig sind dabei die beiden Zahlen hinter „ID“, hier also 0694
und 0002
. Diese Ausgaben werden nun benutzt, um eine sogenannte udev-Regel zu schreiben, die der Gerätedatei schlussendlich die richtigen Rechte zuweist. Diese Regel wird in der Datei /etc/udev/rules.d/01-lego-nxj.rules gespeichert und sollte etwa wie folgt aussehen:
# Lego NXJ USB für die Gruppe lego-nxj verfügbar machen. SUBSYSTEM=="usb", ATTR{idVendor}=="0694", ATTR{idProduct}=="0002", GROUP="lego-nxj", MODE="0660"
Anschließend müssen die udev-Regeln mit dem Befehl
sudo udevcontrol reload_rules
oder ab Intrepid
sudo udevadm control --reload-rules
neu geladen werden. Nach einem Neustart des NXT kann man nun die Firmware hochladen.
Falls bereits das neuste LeJOS-System auf dem Baustein ist, kann dieser Schritt übersprungen werden.
Ansonsten muss man den NXT erst durch längeres Drücken des Resetknopfs zurücksetzen. Die Resettaste ist sehr gut im Röhrchen an der Unterseite unterhalb des USB-Anschlusses versteckt. (Man kommt nur mit einer Büroklammer o.ä. ran). Wenn der NXJ zurückgesetzt ist, gibt er ein leises Klicken von sich und man kann mit dem Befehl
sudo -s export NXJ_HOME=/opt/lejos_nxj/ cd /opt/lejos_nxj/bin ./nxjflash exit
die LeJOS-Firmware hochladen. Falls das Klicken aufhört, bevor nxjflash gestartet wurde, muss der Resetknopf erneut gedrückt werden.
Dadurch werden alle Daten sowie die Firmware auf dem NXJ überschrieben! Die Original-Firmware kann jedoch jederzeit durch Verwenden der originalen LEGO-Software wieder hergestellt werden.
Falls alles funktioniert hat, ist beim Starten des NXJ das LeJOS-Logo auf dem Display zu sehen. Und man erhält durch Eingabe des Befehls
nxjmonitor
nach der Auswahl des NXJ ein übersichtliches Armaturenbrett mit Anzeigen für alle Sensoren und Motoren.
Um den NXJ über Bluetooth anzusprechen, muss erst wie im Artikel Bluetooth/Einrichtung beschrieben vorgegangen werden. Danach muss auf dem NXJ im Menu "Bluetooth" das Bluetooth eingeschaltet werden. Es sollte dann folgende Anzeige sichtbar sein:
Status on vis
Danach kann man wieder
nxjmonitor
gestartet werden. Falls nach einem PIN o.ä. gefragt wird, muss man "1234" eingeben.
Unter Ubuntu 8.10 "Intrepid Ibex" ist eine Verbindung per Bluetooth (Pairing) aufgrund des Bug #284994 im Paket bluez-gnome nicht möglich. Es treten folgende Fehlermeldungen auf:
Error from open: Can't connect: Permission denied (13) oder Can't create connection: Operation not permitted
Abhilfe bietet das Paket bluez-gnome - 1.8-0ubuntu2 aus dem PPA von Adilson Oliveira. Diese Lösung sollte jedoch nur von erfahrenen Nutzern angewendet werden.
Danach muss man den NXT "manuell" über "System -> Einstellungen -> Bluetooth -> +" mit dem PC Pairen. Der Pin des NXT ist "1234".
Fremdpakete können das System gefährden.
Zusätzliche Fremdquellen können das System gefährden.
Nun ist alles bereit um erste Java-Programme zu kompilieren und zu übertragen. Dazu kann man erst den Ordner samples aus dem LeJOS-Ordner ins eigene Homeverzeichnis kopieren und folgende Befehle ausführen:
cd samples/HelloWorld nxjc HelloWorld.java nxj -r HelloWorld
Der letzte Befehl lädt das Programm auf den NXJ und führt es auch gleich aus.
Diese Revision wurde am 19. März 2012 14:02 von aasche erstellt.