martes, 12 de febrero de 2013

Configuraciones iniciales, Java, LeJOS y Eclipse


Java

El nxt requiere Java SE 6 debido a temas de licencias   y software libre ya no se encuentra en los repositorios de ubuntu, las opciones para instalarlo son añadir un nuevo repositorio que lo contenga, o mediante los binarios.

En mi caso mi versión de Ubuntu es la 10.04  x 32 y como es para programar quiero la jdk (en principio se  podría instalar la última versión porque tienen carácter retrocompatible, pero para ahorrar posibles problemas usare esta  jdk-6u39-linux-i586.bin).
Instalar desde archivos .bin es fácil:
-Se descarga (desde el navegador )
(luego con la terminal cd ~/Descargas),
se le da permisos de ejecución (sudo chmod +x jdk-6u39-linux-i586.bin)
y se ejecuta  (sudo ./jdk-6u39-linux-i586.bin).
Esto nos crea una carpeta en ~/Descargas con los archivos instalados.

Para dejarlo ordenado, me hago una carpeta en /usr/lib/jvm/ (sudo mkdir -p /usr/lib/jvm/java6), muevo el contenido (sudo mv ./jdk1.6.0_39/* /usr/lib/jvm/java6) y borro ya la carpeta (sudo rm -r ./jdk1.6.0_39)

Ahora  le digo al sistema que  use estos archivos  java, javac (compilador) y javaws:
(sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java6/bin/java" 1)
(sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java6/bin/javac" 1)
(sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/java6/bin/javaws" 1)
(sudo /usr/sbin/update-alternatives --config java)
en ruta aparecerá esta /usr/lib/jvm/java6/jre/bin/java  y es la que elegimos
 _______________________________________________________________________________

LeJOS
 
Para dotar al robot de un lenguaje versátil nos bajamos la plataforma LeJOS, como lo que queremos es programar el nxt   http://sourceforge.net/projects/lejos/files/lejos-NXJ/ y no bajamos la última versión. (Cuando lo hice la última versión era la leJOS_NXJ_0.9.1beta-3)

(tar -xvfz leJOS_NXJ_0.9.1beta-3.tar.gz)

 una vez descomprimido conviene leerse el archivo README.html

 para dejarlo ordenado hago una carpeta en /usr/local (sudo mkdir -p /usr/local/lejos) y muevo el contenido (sudo mv ./leJOS_NXJ_0.9.1beta-3/*  /usr/local/lejos),(sudo rm -r ./leJOS_NXJ_0.9.1beta-3).

Ahora editamos el archivo  ~/.bashrc (sudo gedit ~/.bashrc) al final añadimos estas líneas.
<líneas a añadir>

 #Robotica lego
export JAVA_HOME=/usr/lib/jvm/java6
export NXJ_HOME=/usr/local/lejos
export PATH=$PATH:$NXJ_HOME/bin

 < fin líneas a añadir>

ahora nos situamos en el directorio  /usr/local/lejos (cd /usr/local/lejos)
y ejecutamos una herramienta de compilacion de java conocida por ant  (ant).
A veces pueden faltar  2 librerías  como pone el README:
- Si falla usb.h -> sudo apt-get install libusb-dev
        (Otra opción: Nos metemos en el gestor de paquetes Synaptic e instalamos libusb-dev)
- Si falla bluetooth.h -> sudo apt-get install libbluetooth-dev
        (Otra opción: Nos metemos en el gestor de paquetes Synaptic e instalamos libbluetooth-dev)

 si esto pasa repetir ant . Ya con esto estaría funcional. pero vamos a añadir una regla de uso de los USB para no tener que trabajar con sudo como sugiere el README.

(sudo gedit  /etc/udev/rules.d/70-lego.rules)

 <líneas a añadir>
### Lego NXT brick in normal mode SUBSYSTEM=="usb", DRIVER=="usb", ATTRS{idVendor}=="0694", ATTRS{idProduct}=="0002", GROUP="lego", MODE="0660"
### Lego NXT brick in firmware update mode (Atmel SAM-BA mode) SUBSYSTEM=="usb", DRIVER=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", GROUP="lego", MODE="0660"
< fin líneas a añadir>

 después creamos el grupo de lego (sudo addgroup lego) añadimos nuestro usuario (en mi caso victor, en otros lo que devuelva echo $LOGNAME)(sudo adduser victor lego), un paso que a lo mejor se necesita es ordenarle al gestor de reglas que lea las nuevas reglas (normalmente lo hace solo) (sudo udevadm control --reload-rules).
_________________________________________________________________________________

Eclipse

Para ayudarnos en la programación usamos el IDE eclipse  lo más fácil es instalarlo desde el repositorio usando el centro de software de ubuntu. Una cosa que hay que tener cuidado con él , una vez instalado  quitarle las actualizaciones automáticas, ya que pueden desconfigurarlo todo.
Yo al final me decidí por instalarle el plugin de LeJOS.
Añadirlo es muy fácil:
Se abre el eclipse, se va a la pestañita que pone help o ayuda y se elige install new software o añadir nuevo software, se abre una ventana y en la primera línea se mete esta dirección:   http://lejos.sourceforge.net/tools/eclipse/plugin/nxj/
nada más ponerla aparece   leJOS NXJ Support   se la selecciona y se da a siguiente.

una vez instalado lo único que queda es decirle donde tenemos la carpeta  del  NXJ_HOME , eso se hace desde la pestaña window o ventana y se elige preferences o preferencias se abre una ventana se busca el apartado leJOS NTX y en NXJ_HOME se añade  /usr/local/lejos  es bueno quitar la pestaña de que se ejecute el código nada más subirlo y ya está , para empezar a programar se elige  new java proyect, luego  se puede convertir para  el NTX, él se encarga de cargar librerías y el botón de run se pone  para el NTX.  P
or ultimo se enchufa el robot, el solo compila, enlaza, y lo sube.

No hay comentarios:

Publicar un comentario