lejos-asennusohje Robottiohjelmoinnin harjoitustyö Kevät 2011 28.01.11 1
Vaiheet Asennetaan tarvittavat ohjelmat Kaikilla järjestelmillä JDK 1.5 tai uudempi (ja esim. Eclipse) Ubuntu/Debian: (mikäli ei jo asennettu) sudo apt-get install openjdk-6-jdk eclipse (vaihtoehtoisesti Oraclen JDK, jolla lejos testataan) Windows/OSX, ohjelmien kotisivuilta Ubuntu/Debian-järjestelmille lisäksi: sudo apt-get install libusb-dev libbluetooth-dev ant Windowsille ja OSX:lle lisäksi: Lego Mindstorms NXT -ohjelmisto (USB-ajurin vuoksi) Windows-järjestelmillä loppu pitäisi hoitua GUIasennusohjelmalla (.exe), muille järjestelmille tehdään vielä hieman käsisäätöä 28.01.11 2
Ubuntu/Debian/Mac OSX Käynnistetään Terminal, ladataan lejos ja puretaan se (tai sama homma graafisilla työkaluilla) wget <lejos-paketin-osoite.tar.gz> tar xvzf lejos_nxj_0_8_5beta.tar.gz Luodaan esim. tiedosto ~/lejosenv.sh, johon kirjoitetaan: export NXJ_HOME= $HOME/lejos_nxj export JAVA_HOME= /usr/lib/jvm/java-6-openjdk (ant:ia varten, polku voi vaihdella, tämä Ubuntu 10.10:llä) export PATH= $PATH:$NXJ_HOME:$NXJ_HOME/bin:$JAVA_HOME/bin export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$NXJ_HOME/bin export DYLD_LIBRARY_PATH= $LD_LIBRARY_PATH OSX:lle sekä Eclipsen pluginia varten 28.01.11 3
Ubuntu/Debian/Mac OSX (jatk.) Lisätään esim. tiedoston ~/.bashrc loppuun rivi: source $HOME/lejosenv.sh Sekä tiedostoon ~/.profile (sh:lle yms) export ENV=$HOME/lejosenv.sh Annetaan käyttäjälle oikeus USB:hen (korvaa user omalla käyttäjätunnuksellasi) sudo groupadd lego sudo gpasswd -a user lego sudo gedit /etc/udev/rules.d/70-lego.rules Lisätään rivit: BUS=="usb", SYSFS{idVendor}=="03eb", GROUP="lego", MODE="0660" BUS=="usb", SYSFS{idVendor}=="0694", GROUP="lego", MODE="0660" 28.01.11 4
Ubuntu/Debian/Mac OSX (jatk..) Oikeuksien lisäämisen jälkeen voi buutata koneen tai ottaa oikeudet väliaikaisesti terminaali-istuntoon käyttöön: sudo udevadm control reload-rules bash -l newgrp lego Käännetään lejos: cd ~/lejos_nxj/build ant Jos tässä tulee virheitä, tarkista että libusb-dev ja libbluetoothdev ovat asennettuna ja että $JAVA_HOME osoittaa oikeaan paikkaan (järjestelmäkohtaista) Tarkista polku komennolla (Ubuntu): update-java-alternatives -l 28.01.11 5
Keskusyksikön flashaus (Windows) Käynnistetään ohjelma nxjflashg ja noudatetaan ohjeita 28.01.11 6
Keskusyksikön flashaus (muut) Jos lejos asentui onnistuneesti: Kytketään NXT:hen USB-johto ja painetaan se päälle Painetaan esimerkiksi paperiliittimellä NXT:n takapuolella vasemmassa yläkulmassa sijaitsevan reiän sisällä olevaa nappia Ei välttämättä tarpeen Näyttö pimenee, palikka alkaa naksuttamaan hiljaa Terminalissa: nxjflash Jos onnistui, palikan pitäisi käynnistyä lejos-firmwareen Jos ei, tarkista oletko varmasti lego-ryhmässä ja että ympäristömuuttujat on asetettu oikein 28.01.11 7
Flashausongelmat Voi käydä niin, että nxjflash ei toimikaan, vaan NXT jää firmwarenpäivitystilaan naksuttaen, eikä ole enää mahdollista palata valikkoon ennen kuin uusi firmware on latautunut Tämä voi johtua useammasta syystä, mutta esim. fuksiläppäreiden Ubuntussa on moduuli cdc_acm, joka tulee väliin kun NXT:n Atmel-piirin SAM-BA -tila (= odottaa firmwarea) aktivoituu ja tämän moduulin latautumisen estäminen ratkaisee ongelman mikäli kaikki muu on kunnossa Lisää tiedostoon /etc/modprobe.d/blacklist.conf seuraava rivi: blacklist cdc_acm Buutin jälkeen ei ongelman pitäisi enää vaivata, mutta moduulin voi myös poistaa käytöstä ilman buuttia komennolla: sudo rmmod cdc_acm 28.01.11 8
Esimerkkiohjelmien kokeilu Seuraavassa näytetään muutamia tapoja kääntää lejosohjelmia: Komentoriviltä: cd ~/lejos_nxj/projects/samples/<joku> ant Kääntää esimerkin ja lähettää sen palikalle ks. tarkemmin build.xml ja../samplebuild.xml Vaihtoehtoinen tapa: cd ~/lejos_nxj/projects/samples/<joku> nxjc <joku>.java nxj -r <joku> (huom. luokan nimi, ei päätettä) 28.01.11 9
Esimerkkiohjelmien kokeilu (jatk.) Eclipsestä: Eclipse ei lue edellä määriteltyjä ympäristömuuttujia ellei sitä käynnistetä shellistä Voi tehdä esim. skriptin eclipse.sh #!/bin/bash source $HOME/lejosenv.sh eclipse & Importtaa samples-hakemisto Asenna lejos-plugin jotta polkujen lisääminen projekteihin olisi kätevämpää (Convert to lejos NXJ project) Sampleja voi kääntää valitsemalla niiden build.xml:n kohdalta oikealla napilla Run As Ant Build Kääntää ja lähettää ohjelman palikalle 28.01.11 10
Esimerkkiohjelmien kokeilu (jatk..) NetBeansista Fuksiläppärillä on oletuksena asennettu NetBeans IDE. Jos käyttää NetBeansia ohjelmointiin, pitää uuden Javaprojektin luotuaan avata sen ominaisuudet (oikea korva ja Properties) ja lisätä kääntämisasetusten kirjastopolkuun lejos_nxj/lib/classes.jar (ainakin) 28.01.11 11
Oman ohjelman luonti (ant komentoriviltä) Päätetään mihin halutaan oma koodi Luodaan esim. ~/legocode mkdir ~/legocode cd ~/legocode # kopioi ant-tiedostot ja niiden asetukset, ovat käteviä cp $NXJ_HOME/projects/samples/sample*./ # projektikohtainen ant-tiedosto samaten cp $NXJ_HOME/projects/samples/HelloWorld/build.xml./ Luodaan projektille hakemisto ja kopioidaan build.xml mkdir Testi cp build.xml Testi/ cd Testi 28.01.11 12
Oman ohjelman luonti (jatk.) Luodaan Testi.java, jonka sisällöksi esimerkiksi: import lejos.nxt.*; public class Testi { public static void main (String[] args) { } } System.out.println( Hoi maailma! ); Button.ENTER.waitForPressAndRelease(); Tallennetaan tiedosto ja ajetaan: ant Ohjelman pitäisi kääntyä ja siirtyä NXT:lle jos käännös onnistui 28.01.11 13