LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

21
LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente

Transcript of LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Page 1: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

LEgo Java Operating System (LeJOS)

L. E. Sucar / Alberto Reyes

Robótica Inteligente

Page 2: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Guía de Instalación

• Descargar el JDK 5.0 Update 1 y documentación de http://java.sun.com/j2se/1.5.0/download.jsp

• Descargar JCreator Light Edition (LE) versión 3.5 de http://www.jcreator.com/download.htm

• Instalar JDK y agregar/crear variable de usuario Path con ruta a carpeta bin del JDK.

• Instalar JCreator y verificar el acceso a las herramientas del JDK.

Page 3: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Variable de entorno Path

Page 4: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Guía de Instalación

• Descargar LeJOS y su documentacion de http://lejos.sourceforge.net

• Crear una variable de ambiente LEJOS_HOME cuyo valor es la ruta a la carpeta de LeJOS (solo para uso de consola)

• Crear una variable de ambiente RCXTTY indicando el puerto donde se conecta la torre de infrarrojos. Ej. USB

Page 5: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Variable de entorno RCXTTY

Page 6: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Ejemplo de un batch file

• Si se desea ejecutar lejos por consola generar el siguiente archivo batch

• set JAVA_HOME=c:\j2sdk1.4.1_06• set LEJOS_HOME=c:\lejos_win32_1_0_4\lejos• set PATH=%PATH%;%JAVA_HOME%\bin;%LEJOS_HOME%\bin• set RCXTTY=USB• set CLASSPATH=.

Page 7: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Compilador e Interprete

• Conectar la torre de infrarrojos lego e instalar driver (usar disco de legomindstorms).

• Transmitir el firmware al RCX usando el comando lejosfirmdl

• Para compilar usar lejosc filename.java• Para ejecutar usar lejos filename• Ejemplo para cargar mas de un programa: lejos

programa1,programa2,..• Usar el botón Prgm del RCX para seleccionar

cada programa.

Page 8: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Configuración de la IDE JCreator

• Desde configure->tools->new agregar lejosfirmdl, lejosc y lejos con las siguiente configuración

Page 9: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Configuración de la IDE JCreator

Page 10: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Configuración de la IDE JCreator

Page 11: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Prueba de la IDE

• Descargar el firmware lejos en en robot encendido usando ctrl-1 o seleccionado el primer botón de la sección de herramientas (con el icono de llave española).

• Escribir un programa sencillo por ejemplo para imprimir mensajes en pantalla.

Page 12: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Programa de ejemploimport josx.platform.rcx.TextLCD;import josx.platform.rcx.Button;import josx.platform.rcx.LCD;

public class StringTest {

public static void main (String[] args) throws InterruptedException{

String ha = "HA";TextLCD.print (ha);Button.VIEW.waitForPressAndRelease ();ha = ha + ' ' + ha;TextLCD.print (ha);Button.VIEW.waitForPressAndRelease ();LCD.showNumber ((int)Runtime.getRuntime().freeMemory());Button.VIEW.waitForPressAndRelease ();

}

}

Page 13: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Prueba de la IDE

• Compilar el programa usando ctrl-2 o seleccionado el segundo botón de la sección de herramientas.

• Descargar el programa en el RCX usando ctrl-2 o seleccionado el tercer botón de la sección de herramientas.

• El orden de uso de los botones puede variar de acuerdo al orden en que se configuraron las herramientas

Page 14: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Limitaciones de lejos

• No tiene recolector de basura• No hay sentencia switch• No hay aritmética sobre variables tipo long.• La máxima longitud de un arreglo es de 511.• No soporta carga dinámica de clases.• Solo se dispone de 12K para programas.

Page 15: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Arquitectura de lejos

Page 16: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Paquete josx.platform.rcx

• Es el paquete mas importante del sistema operativo LeJOS

• Este paquete contiene clases para interactuar con los componentes principales del RCX (motores, sensores, pantalla, sonido, botones, e IR).

Page 17: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Ejemplos de corridas

Page 18: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Control Directo

• En esta modalidad la programación es puramente Java.

• La ventaja principal es que ofrece todas la bondades de Java y la posibilidad de uso de herramientas como Elvira, Weka o cualquier herramienta de IA disponibles en Web.

• La desventaja es que la operación correcta del RCX depende de cono visual de la torre de infrarrojos

Page 19: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Instalación de APIs

• Instalar el driver para manejo de la torre infrarroja con el puerto USB

• Instalar el firmware de legomindstorms en el RCX (usar disco adjunto al kit)

• Se requieren dos APIS de Java:• comm.jar disponible en el sitio de sun

http://java.sun.com/products/javacomm/downloads/index.html

• rcx.jar disponible en el e-book legominstorms programming with java

Page 20: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Compilación y ejecución

• Agregar una variable de entorno classpath con los valores .;ruta al archivo comm.jar; ruta al archivo rcx.jar

• Compilar un programa demostrativo (también disponibles en el e-book) usando la herramienta javac del sdk.

• Ejecutar programa manteniendo al RCX cerca de la torre de infrarrojos

Page 21: LEgo Java Operating System (LeJOS) L. E. Sucar / Alberto Reyes Robótica Inteligente.

Referencias

• Sitio de Sun microsystems http://java.sun.com

• E-book Programming legominstorms with Java

• Sitio de JCreator http://www.jcreator.com/

• Sitio de lejos http://lejos.sourceforge.net