¿Qué es este blog?

La idea de este blog nace para compartir los avances que se vayan realizando a lo largo de un estudio sobre cómo interconectar los distintos sensores que se pueden encontrar en el mercado, o fabricar de forma casera, con la plataforma Mindstorms de LEGO. Para ello se hará uso ARDUINO, un entorno de desarrollo abierto basado en microcontrolador.

miércoles, 26 de enero de 2011

Como instalar LejOS en Windows XP usando Eclipse

Antes que nada comentaros que el siguiente tutorial no está redactado por mi. El sitio del que lo he sacado se encuentra al final de este post (como siempre en referencias) y todo el mérito es de los respectivos autores. Mi idea es elaborar un tutorial más actualizado, y si tengo tiempo lo subiré al blog en sustitución de este. Mientras tanto, espero que os sea de ayuda :)

-------------------------------  
Aquí explicaremos como instalar y configurar todo el software necesario para desarrollar programas en java para el robot Lego Mindstorms NXT usando Lejos y software enbebido en el robot, es un metodo que permite colocar pequeños programas java adentro de la memoria del mismo y así proveer más independencia al mismo.
Se incluyen también referencias a sitios de interés y dos libros muy buenos para trabajar con los NXT.
Java es mucho más poderoso y flexible que el software provisto por Lego, NXT-G. Usaremos el editor Eclipse para escribir el código Java y bajarlo al NXT. Esta combinación permite escribir el software y convenientemente probarlo rápido en el NXT. Claro que hay muchos otros editores de Java, pero esta es una opción bastante viable. El tutorial es para plataforma Windows con la compilación LeJOS una alternativa muy buena para iniciarse en este campo, ya que no es dificil de instalar y las funciones son bastante intuitivas como se verá en el programa de ejemplo, seguiremos los siguientes 5 pasos:
1. Instalar Java en la computadora
2. Instalar el driver Lego NXT USB en la computadora.
3. Instalar Lejos en la computadora y en el Robot NXT
4. Instalar y configurar Eclipse en la computadora
5. Escribir, bajar y correr un programa “HolaMundo”

Es importante seguir el orden de estos pasos uno a uno, además recomendamos estos excelentes libros, mayan adventure y extreme NXT, ambos con información básica de los robots como su construcción y empleo pasando luego a cualidades más avanzadas (se detallará más en otro post sobre los libros).
En Mayan se diseña software para que salgan de un laberinto y en extreme se presentan múltiples ideas de proyectos con los NXT y cuestiones avanzadas como el quemador de pics y otros, con fotografías y guías paso a paso.

Libros

Mayan AdventureLego Extreme NXT

1. Instalar Java en la computadora

Descargar e instalar Java SE (Stadard Edition) JRE (Java Runtime Environment). No es necesario instalar el JDK (Java DEveloper Kit). Luego se instalará Eclipse, que contiene todas las herramientas necesarias para escribir y compilar los programas. Luego de la instalación no es necesario definir ningún Path o Classpath para Java. Java se instala normalmente en C:\Program Files\Java.

Si ya se tiene Java hay que revisar que por lo menos sea la versión 5, de preferencia del JRE, el JDK también funciona. Luego se instalará Eclipse que requiere esta versión como mínimo.

2.Instalar driver USB de Lego

El NXT se puede conectar a la computadora por USB o por Bluetooth. La comunicación por USB es más confiable y rápida que la por Bluetooth. El Bluetooth depende de cada computadora en especifico. USB en cambio, esta más estandarizado. Primero se debe instalar el driver y hasta después, conectar el NXT con el cable USB. No se necesita instalar el software que viene en el CD del robot porque no se programará en NXT-G (El software de lego basado en Labview). Solo se necesita instalar el driver USB que esta disponible en el sitio oficial de Mindstorms. Si ya se ha instalado el software original de Mindstorms no es necesario desinstalarlo, solo revisar si el sitio de mindstorms tiene alguna actualización para el dirver USB.
Descargar el Driver de Mindstorms NXT.

Descomprimir el archivo y ejecutar setup.exe.

Recorrer el programa de instalación

Es possible que windows solicite reiniciar el equipo luego de la instalación. Luego, se conecta el NXT por medio del USB. Comprobar la correcta instalación del driver comprobando si esta en el adminstrador de dispositivos. Para hacer esto, dar click derecho en “My Computer” y luego “Properties” pasar a Hardware. Dar Click en “Device manager”. Tiene que aparecer “Lego Devices=>Lego Mindstorms NXT”

3. Instalar Lejos en la computadora y en el Mindstorms NXT

Bajar Lejos.

Crear un directorio llamado “ProgramFiles” en el disco duro. Esto para evitar problemas con el espacio asociado al usual “Program Files” que a veces no funciona correctamente con Java. Luego se instalará Eclipse también en “ProgramFiles”.
Descomprimir Lejos. Esto nos dará una carpeta llamada “lejos_nxj”. Colocar esta carpeta en “ProgramFiles”.

Ahora hay que informar a Java de la existencia de la librería Lejos. Dar click derecho en “My Computer” y seleccionar “Propiedades”. Click en la pestaña “Advanced”. Click en “Environment Variables” hasta abajo. Crear una nueva “System variable”dando click en “New” hasta abajo. No crear una “User variable” de arriba.

Por nombre poner a la nueva system variable:
LEJOS_HOME
Y dar el value:
C:\ProgramFiles\lejos_nxj
En pocas palabras, Lejos necesita saber donde fue instalado. Notar que ahora ya usamos el nuevo directorio “ProgramFiles” que no tiene el carácter de espacio. Al finalizar, dar click en OK.

Verificar que la variable del sistema aparece en la lista. Ahora, se necesita agregar la variable LEJOS_HOME a la variable del sistema “Path”. Seleccionar “Path”de la lista y dar click en “edit”. Agregar:
;%LEJOS_HOME%\bin
Al final del valor. Los distintos valores estan separados por punto y coma y no se require punto y coma al final de la linea.

Ahora hay que probar si se instaló correctamente Lejos usando una ventana de comandos DOS. Dar click en el menú inicio, luego “All Programs=>Accessories=>Command Prompt”. Escribir:
lejosdl
El resultado debe ser como en esta imagen, si es así, todo esta bien.

Ahora hay que reemplazar el firmware original que viene con el NXT por Lejos. Esto solo se hace una vez. Luego Lejos funcionará como el sistema operativo del NXT. Implementa una maquina virtual Java donde se pueden correr los programas Java. Asegurarse de que el NXT está conectado a ala computadora con un cable USB y que ha sido reconocido por el sistema operativo. Para asegurarse ir al Device Manager. Primero se necesita colocar al NXT en modalidad de subida del firmware. Usar un clip para presionar y sostener el botón oculto abajo del bloque. El NXT tocará un sonido suave y pulsante que indica que está listo.

Escribir:
lejosfirmdl
En la linea de comandos DOS.

Lejos necesita Libusb para comunicarse con el NXT. Si no se ha instalado este software gratuito en la computadora, se iniciará el instalador del mismo. Libusb permite a los programas acceder a cualquier dispositivo USB de forma genérica. Hay que asegurarse de que no se ejecute la aplicación de prueba mencionada al final. En caso de que Lejos ya esté instalado en el NXT aún será necesario instalar LibUSB para ser capaz de bajar los programas. Se puede encontrar en “lejos_nxj\3rdparty\lib\libusb-win32-filter-bin-0.1.12.1.exe”. El nombre puede cambiar cuando una nueva versión de libusb esté disponible.

Una vez que Libusb está instalado el instalador de Lejos continuará hasta terminar exitosamente, viéndose de la siguiente manera:

Ahora se reiniciará el NXT y luego mostrará el logo de Lejos antes de cambiar al menú principal.

Ahora el NXT está listo para corer programas Java.

4. Instalar y configurar Eclipse en la computadora

Bajar Eclipse IDE para desarrolladores Java. Eclips está escrito en Java y no contiene un instalador, viene en un ZIP sencillo que habrá que extraer en nuestro foler “ProgramFiles”. Se puede crear un acceso directo para conveniencia de “eclipse.exe” en el escritorio o donde sea necesario.


Al iniciar Eclipse se solicitará escoger un espacio de trabajo. El espacio de trabajo contendrá todos los archives que se creen. De nuevo, se debería crear un directorio en una ubicación que no contenga espacios en blanco “ “. Usaremos un directorio “d:\programming\workspace”. Luego se da la pantalla de bienvenida de Eclipse.

Ahora crearemos un programa “Hola Mundo” y lo subiremos (o bajaremos) al NXT. Primero se necesita crear un nuevo proyecto Java. Dar click en “File => New => Java Project”. Escribir un nombre para el proyecto, evitar siempre los caracteres en blanco. En este caso se llamará “LeJOS_NXJ”

A continuación, se requiere convertir este proyecto en un proyecto Lejos. Dar click derecho en el proyecto y seleccionar “properties”. Seleccionar “Java Build Path” en la izquierda y dar click en la pestaña “libraries”. Luego, dar click en “Add External JARs…” y encontrar el directorio “lib”en la carpeta “ProgramFiles\lejos_nxj”. Seleccionar “clases.jar” y presionar “Open”. Ahora la librería Lejos aparecerá en el listado.

En propiedades, nos movemos a la sección “Java Compiler” que está a la izquierda. Seleccionamos la opción “Enable prject specific settings”y escoger nivel 1.3 para el nivel de compatibilidad del compilador. Esta hará que el compilador optimice para una versión anterior de Java. Esta versión anterior es más compatible con el NXT ya que ha sido diseñada para sistemas enbebidos. Requiere mucho menos recursos que la última versión de Java. Dar click en “Apply” luego en “OK” para dejar las propiedades.

El siguiente paso es configurar Eclipse para bajar el software al NXT. Dar clic en “Run => External Tools => Open External Tools Dialog…”.

Seleccionar “program” en la izquierda y luego dar click en “New”. Nombrar la herramienta “lejos Download” arrba. En la pestaña principal, ingresar la ubicación del archivo “lejosd1.bat” que tendría que estar en la carpeta “lejos-nxj\bin\” que se puede ubicar dando click en “Browse File System”. Entrar a:
${project_loc}\bin
En el “Working directory” e ingresar
${java_type_name}
En la sección de argumentos.

Ahora crearemos un acceso directo para bajar el programa al NXT. Dar click en el icono “run” en la barra de herramientas y seleccionar “Organize Favorites…” Dar click en “Add…” en la ventana que aparece y luego seleccionar la opción de “lejos Download”, que es la herramienta externa que hemos configurado anteriormente. Presionar “OK”y luego “Ok” de nuevo.

5. Escribir, bajar y ejecutar un programa “Hola mundo”


Primero, creamos la clase principal para nuestro programa. Dar click en “New=>Class”. Nombrarla “HelloWorld” y seleccionar “public static void(String[] args)”. Luego recibira una clase casí vacia. Eclipse es un editor de Java muy inteligente que intent compilar el programa a medida que se escribe. Similar a lo que ocurre en Word, subraya errores con una línea roja. En ocaciones esta compilación automática no funciona y se necesita forzar a que Eclipse compile. Esto se puede lograr simplemente guardando el archivo.

Ahora se ingresarán algunas lineas de codigo java. En la primera línea escribir:
import lejos.nxt.LCD;
Esta linea permitirá que el programa use el display LCD del NXT. Luego, necesitamos definir que se mostrará y cuando. Agregar estas líneas al método principal:
LCD.drawString(”Hola mundo!”, 2, 2);
LCD.refresh();
while(true) {}
Ahora se puede bajar el programa al NXT. En la siguiente pantalla se pueden ver estos pasos. Antes de empezar con el proceso de bajado hay que asegurarse de que el NXT este conectado a la computadora y de que el NXT ha sido reconocido por el sistema operativo, de nuevo, esto se puede comprobar en el administrador de dispositivos. Tambien hay que seleccionar la clase principal al centro antes de empezar a bajar, para que Eclipse sepa que clase es la que se quiere bajar. Usar el menú desplegable (4 en la pantalla) para seleccionar el favorito de bajada que antes creamos. Esto iniciará el proceso de bajado al NXT.

Luego de que la descarga ha sido completada se puede iniciar el program usando los botones en el NXT. Notar que el programa correrá para siempre. Para detenerlo se necesita resetear el NXT presionando los dos botones del centro por un tiempo más largo. Esto finalizará la conexión USB así que habrá que esperar un poco para reconectarse antes de bajar un nuevo programa. Claro que hay mejores maneras de terminar el programa, como escuchar por un botón o luego de algún tiempo, se puede reemplazar el while sin fin por esto:
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
}
Esto hará que el NXT duerma 5 segundos antes de que el programa termine. Ahora verá “Hola Mundo!” por cinco segundos y luego el programa termina. Para mas información de cómo programar en Java para el NXT se puede visitar el sitio leJOS.
-------------------------------------------------------------------------------------------
REFERENCIAS:
- Este tutorial está sacado de aquí

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.