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).
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
_______________________________________________________________________________
(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).
_________________________________________________________________________________
(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.
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. Por ultimo se enchufa el robot, el solo compila, enlaza, y lo sube.
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. Por ultimo se enchufa el robot, el solo compila, enlaza, y lo sube.
No hay comentarios:
Publicar un comentario