lego1

8
OBJETIVOS Realizar un programa para LEGO MINDSTORMS que siga una línea negra Armar LEGO MINDSTORMS (un auto seguidor de línea ) Observar el funcionamiento del programa en LEGO MINDSTORMS MARCO TEORICO Lejos NXJ es un entorno de programación Java para LEGO MINDSTORMS NXT . Le permite programar robots LEGO en Java. Se compone de: Firmware para el NXT que incluye una máquina virtual de Java. Una biblioteca de clases de Java (classes.jar) que implementan la aplicación Lejos NXJ interfaz de programación (API) y ofrece una alternativa de ejecución de Java (paquetes java. *) Que se optimiza para el NXT. Un enlazador para ligarse usuario clases Java con classes.jar para formar un archivo binario que se puede cargar y ejecutar en el NXT. Herramientas de PC para la actualización del firmware, cargar programas, depuración, y muchas otras funciones. Una API PC para escribir programas de PC que se comunican con Lejos programas NXJ utilizando flujos de Java a través de Bluetooth o USB, o utilizar el LEGO Protocolo de Comunicaciones (LCP). Muchos programas de ejemplo Como Lejos es un reemplazo de firmware, el nuevo Lejos NXJ firmware debe ser flasheado en el NXT, y sustituirá a la norma LEGO MINDSTORMS firmware. Esto borra todos los archivos actualmente en poder del firmware de LEGO. El firmware de LEGO se pueden restaurar utilizando el software suministrado LEGO. Lejos es un proyecto de código abierto alojado en el repositorio de source forge. Fue creado originalmente por el proyecto Tiny VM que implementa una máquina virtual de Java para el sistema LEGO Mindstorms RCX.

Upload: juan-aguilar

Post on 05-Dec-2014

20 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: lego1

OBJETIVOS

Realizar un programa para LEGO MINDSTORMS que siga una línea negra Armar LEGO MINDSTORMS (un auto seguidor de línea ) Observar el funcionamiento del programa en LEGO MINDSTORMS

MARCO TEORICO

Lejos NXJ es un entorno de programación Java para LEGO MINDSTORMS NXT . Le permite programar robots LEGO en Java.

Se compone de:

Firmware para el NXT que incluye una máquina virtual de Java. Una biblioteca de clases de Java (classes.jar) que implementan la aplicación Lejos NXJ

interfaz de programación (API) y ofrece una alternativa de ejecución de Java (paquetes java. *) Que se optimiza para el NXT.

Un enlazador para ligarse usuario clases Java con classes.jar para formar un archivo binario que se puede cargar y ejecutar en el NXT.

Herramientas de PC para la actualización del firmware, cargar programas, depuración, y muchas otras funciones.

Una API PC para escribir programas de PC que se comunican con Lejos programas NXJ utilizando flujos de Java a través de Bluetooth o USB, o utilizar el LEGO Protocolo de Comunicaciones (LCP).

Muchos programas de ejemplo

Como Lejos es un reemplazo de firmware, el nuevo Lejos NXJ firmware debe ser flasheado en el NXT, y sustituirá a la norma LEGO MINDSTORMS firmware. Esto borra todos los archivos actualmente en poder del firmware de LEGO. El firmware de LEGO se pueden restaurar utilizando el software suministrado LEGO.

Lejos es un proyecto de código abierto alojado en el repositorio de source forge. Fue creado originalmente por el proyecto Tiny VM que implementa una máquina virtual de Java para el sistema LEGO Mindstorms RCX. 

Ventajas de LeJOS NXJ

Hay muchas ventajas de utilizar LeJOS NXJ más que el NXT-G o entornos de programación para el NXT. Estos incluyen:

Utiliza el lenguaje estándar de la industria Java. Apoya la programación orientada a objetos. Es un proyecto de código abierto con muchos colaboradores. Permite una selección de profesionales de entornos de desarrollo integrado Eclipse y

Netbeans incluidas. Dispone de plugins para Eclipse y Netbeans ambos. Tiene soporte multiplataforma - Windows, Linux y Mac OS X.

Page 2: lego1

Es mucho más rápido que NXT-G. Tiene soporte completo para Bluetooth, USB, I2C y protocolos RS485. Se proporciona un control de motor de alta precisión. Es compatible con las últimas características del lenguaje Java 1.7. Tiene soporte de navegación avanzada. Se admite la localización como Monte Carlo localización (MCL). Es compatible con otros algoritmos probabilísticos robótica, como los filtros de

Kalman. Ofrece clases de comportamiento que apoyan la arquitectura de subsunción para

facilitar la programación de comportamientos de robots complejos. Es compatible con muchos sensores de terceros. Es compatible con el registro remoto a la PC a través de Bluetooth o USB,

opcionalmente mediante la reorientación de System.out y System.err. Soporta el monitoreo remoto y la localización de su programa NXJ Lejos de la PC. Proporciona aritmética de punto flotante, trigonometría y otras funciones

matemáticas. Es compatible con la interfaz LCD JME usuario, incluyendo funciones gráficas muchos. Apoya multithreading. Es compatible con los oyentes y eventos. Es compatible con la gestión de memoria segura con la recolección de basura. Es compatible con Java estándar de entrada / salida de flujos a través de Bluetooth,

USB y RS485. Cuenta con un sistema de archivos flash visitada por las clases estándar java.io. Es compatible con el registro de datos y la captura remota de los registros. Cuenta con soporte para sonido incluidos en 8-bits WAV. Proporciona docenas de programas de ejemplo. Apoya la ejecución remota de un gran subconjunto de la API desde el PC. El sitio Web tiene foros en línea para ayudar a resolver cualquier problema que pueda

tener, para compartir ideas de proyectos, y para comunicarse con el equipo de desarrollo.

Tiene soporte telerobótica estándar a través de sockets TCP / IP. Es compatible con NXT NXT Bluetooth y comunicaciones RS485. Se admite la comunicación Bluetooth con otros dispositivos, tales como los receptores

GPS. Tiene soporte para dispositivos GPS incluyendo soporte para la API de

javax.microedition.location. Es compatible con teclados Bluetooth que utilizan el perfil Bluetooth Serial Port (SPP). Es compatible con la comunicación bidireccional con el RCX a través de adaptadores

de terceros, como el NRLink Mindsensors. Es compatible con servomotores y función de potencia (PF) motores. Proporciona compatibilidad con Lego Protocolo de Comunicaciones (LCP), por lo que

muchas herramientas que funcionan con el estándar firmware LEGO, también trabajamos con Lejos.

Tiene un fácil utilizar el sistema de menús. Es ampliamente utilizado por las universidades y otros establecimientos educativos. Tiene soporte para aplicaciones sencillas de visión artificial.

SOLUCION A LOS PROBLEMAS

Page 3: lego1

Diagrama

Inicio

import lejos.nxt.* // importamos //librería de lejos(drivers)

(!Button.ESCAPE.is

Pressed

SigLin.readValue() < 41

Motor.C.forward()

Motor.B.stop();

Motor.B.forward()

Motor.C.stop();

FIN

SI

NO

SI

NO

Page 4: lego1

Código

import lejos.nxt.*;

public class SigLin{

public static void main(String[] args) throws Exception

{

LightSensor SigLin = new LightSensor(SensorPort.S3);

LCD.drawString("Siguiendo linea",0,0);

LCD.drawString("valor luz",0,1);

Motor.B.setSpeed(200);

Motor.C.setSpeed(200);

while (!Button.ESCAPE.isPressed())

{

LCD.drawInt(SigLin.readValue(),4,12,1);

while(true){

if(SigLin.readValue() < 41)

{

Motor.B.forward();

Motor.C.stop();

LCD.drawInt(SigLin.readValue(),4,12,1);

}

else{

Motor.C.forward();

Motor.B.stop();

}

}

Page 5: lego1

CONCLCUSIONES Y RECOMENDACIONES

El programa que se realizo es para un seguidor de líneas básico, ya que funciona perfectamente en un sentido, pero al cambiar la posición funciono pero al llegar a un vértice de una esquina ya no seguía la línea negra giro al otro sentido y siguió su camino, Bueno este problema se dio por el programa tiene un error.

Tener cuidado con el armando de Lego ya que las piezas son delicadas

Page 6: lego1

Universidad Mayor de San SimónFacultad de Ciencias y Tecnología

Ingeniería Electrónica

NOMBRES:

AGUILAR BRAVO JHONNYALVAREZ ROMERO VANIA

MATERIA:ROBOTICA

FECHA:09 DE MARZO DEL 2013

PRACTICA Nº1