TALLER LEGO NTX CON JAVA

Msc. Manuel Sánchez Chero
manuelsanchezchero@gmail.com

http://www.lambayequeaprende.com

Objetivo
Proporcionar al participante los conocimientos básicos para programar robots Lego Mindstorms NXT usando el lenguaje de programación Java

Lego Mindstorms NTX
Es un juego de robótica para niños. El NXT es el MINDSTORMS. cerebro de los robots

 

Contiene una microcontrolador que permite a los robots tener vida y realizar diferentes tareas.

Lego Mindstorms NTX
Comunicación

Puertos para motores: A, B y C.


 

Puertos para sensores: 1, 2, 3 y 4.
Puerto USB. Conexión inalámbrica Bluetooth.

Lego Mindstorms NTX
Instalación del hardware

¡Ordene las piezas!
Una vez que haya organizado todos los elementos en las bandejas de clasificación, que puede ver en las imágenes, localice el libro de montaje y empiece a construir su primer modelo.

Lego Mindstorms NTX
Utilizar el NTX sin software

Encienda el NXT pulsando el botón Intro color naranja, que encontrará en el centro del ladrillo.
Aparecerá el menú principal, tal como se muestra en la imagen del NXT.

Lego Mindstorms NTX
Software – Mindstorms NTX

Permite programar el NXT desde una computadora y cargarle programas vía USB o Bluetooth.
El software intuitivo de arrastrar y soltar. Co-desarrollado LabVIEW. por National Instruments

 

Lego Mindstorms NTX
Software – Requerimientos
       

Procesador Intel® Pentium® o compatible, mínimo a 800 MHz. Windows XP Professional o Home Edition con Service Pack 2. 256MB de RAM mínimo.

Hasta 300MB de espacio disponible en disco duro.
Pantalla XGA (1024x768). 1 puerto USB disponible. Lector CD-ROM. Adaptador Bluetooth compatible (opcional).

Lego Mindstorms NTX
Instalar el Software
 

Colocar el cd que viene con el kit. Double clic en el archivo setup.

Lego Mindstorms NTX
Paletas
Descripción del entorno

Haga clic en el icono NTX para abrir el software

Conecte un extremo del cable USB en una ranura del computador y el otro extremo al NTX.

Bloques

Barra de Herramientas

Lego Mindstorms NTX
Escribir un programa
1. 2. 3.

Escriba un nombre para el archivo y pulsar ir, para empezar. Los programas se crean cogiendo bloques de la paleta. Descargar y ejecutar.

1 3

2

Lego Mindstorms NTX
Lenguaje Alternativos de Programación

Puede ser programado con varias interfaces, pero todos logrando el mismo fin, algunos de frameworks más conocidos:
  

Bricks o Legos Lejos

Not quite C

Lego Mindstorms NTX
Software – Java - NTX  Java Development Kit.  Driver del NXT.  Driver USB.  leJOS NXJ.  Entorno de Desarrollo en java.

JAVA

Java Development Kit 6

Descargar e Development Kit 6

instalar

Java

Update 16 o superior (java.sun.com)

http://java.sun.com

Driver NTX

Obtener e instalar el MINDSTORMS NXT. Driver v1.02 o superior.

Incluido en el CD

LeJos NTJ

leJOS NXJ es un ambiente de programación Java para el Lego Mindstorms NXT. Instala una maquina virtual reemplazando el firmware del bloque.

LeJos NTJ
 

Descargar e Instalar leJOS NXJ http://lejos.sourceforge.net/

LeJos NTJ

leJOS NXJ requiere reemplazar el firmware del NXT El firmware se puede instalar con:

El programa nxjflash en la línea de comandos, o el programa gráfico nxjflashg

NOTA: Es necesario instalar el firmware leJOS NXJ en el NXT para correr programas Java.

La API LeJos NTJ

Paquete lejos.ntx

IDE - Netbeans
Netbeans es una plataforma que permite la creación de

interfaces gráficas, y que es completamente compatible
con LeJOS.

Descargar e Instalar el IDE Netbean.

http://netbeans.org/community/releases/69/

IDE - Netbeans
Compatibilizar NetBeans con LeJOS: Empezaremos por abrir y probar los programas de ejemplo, para ello debemos copiar la carpeta pcsamples en el directorio del LeJOS para su uso en NetBeans.

IDE - Netbeans
Creando un programa para lejos con interfaz grafica. Usaremos la carpeta TachoCount, en ella crearemos un formulario:
1.

Hacemos clic derecho en la carpeta Tachocount, Nuevo, formulario de interfaz gráfica swing, formulario Dialog. Nombre Clase Formulario y para terminar Finish.

2.

IDE - Netbeans
Continuando. En el formulario colocamos varios botones:
3. 4.

Conectar, Desconectar, MotrorA, Parar A, MotorC y Parar C. Colocamos las etiquetas respectivas a cada botón como se indica en la figura.

IDE - Netbeans
Seleccionamos el boton Conectar.
5. 6.

Anticli – Event – Action - actionPerformed. Importamos las librerías correspondientes.

7.

Vamos al inicio de la clase y declaramos una variable para conexión.

6 7

import lejos.nxt.remote.NXTCommand; import lejos.pc.comm.NXTComm; import lejos.pc.comm.NXTCommLogListener; import lejos.pc.comm.NXTConnector; public class Formulario extends javax.swing.JDialog { private NXTConnector conn = new NXTConnector();

IDE - Netbeans
8.

Buscamos el método del botón conectar y digitamos lo siguiente.

8

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // Boton Conectar conn.addLogListener(new NXTCommLogListener() { public void logEvent(String message) { System.out.println(message); }

public void logEvent(Throwable throwable) { System.err.println(throwable.getMessage()); } }); conn.setDebug(true); if (!conn.connectTo("NXTTorna", NXTComm.LCP)) { System.err.println("Fallo de conexiónt"); System.exit(1); } NXTCommand.getSingleton().setNXTComm(conn.getNXTComm());
}

IDE - Netbeans
Seleccionamos el botón Desconectar.
9.

Anticli – Event – Action - actionPerformed.

9

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { // Desconectar try{ conn.close(); }catch(Exception e){ e.printStackTrace(); } }

IDE - Netbeans
Seleccionamos el botón MotorA.
10.

Anticli – Event – Action - actionPerformed.

10

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { // Motor A Motor.A.forward(); }

IDE - Netbeans
Seleccionamos el botón PararA.
11.

Anticli – Event – Action - actionPerformed.

11

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { // Motor A Motor.A.stop(); }

IDE – Netbeans
Compilar

clic derecho en el build.xml de la carpeta global de pcsamples, y darle a Ejecutar destino, build. Luego en el programa Formulario clic derecho ejecutar.

Lego Mindstorms NTX
Servo Motores

Los tres Servo Motores le dan al robot la capacidad de moverse. Si se usa el bloque Move del software LEGO MINDSTORMS NXT para programar los motores, los dos motores se sincronizarán automáticamente, de modo que el robot se moverá en línea recta.

Lego Mindstorms NTX
Servo Motores – Sensor de Rotación

Cada servo motor tiene incorporado un Sensor de Rotación. Esto permite controlar los movimientos del robot con mucha precisión. El Sensor de Rotación mide rotaciones del motor en grados o rotaciones completas (con exactitud de +/- 1 ).

Lego Mindstorms NTX
Servo Motores – Sensor de Rotación

Una rotación es igual a 360 , de modo que si se indica a un motor girar 180 , su salida producirá medio giro. El Sensor de Rotación incorporado en cada motor también permite establecer diferentes velocidades para los motores (estableciendo diferentes parámetros de poder en el software).

LeJos – Controles Básicos de Movimiento

Class
Motor

Method name
forward()
backward() changeDirection() stop()

Notes
Encienda el motor el girar adelante
Comience a girar al revés Invierta la dirección de la rotación Pare rápidamente Espere hasta que se presiona cualquier botón

Button

waitForPress()

LeJos – Control Exacto de Rotación

Class
Motor

Method name
rotate(angle) rotateTo(angle)

Notes
Gira con grados del ángulo Gira al ángulo

rotateTo(angle,true) Fija opuestamente a cero

TALLER LEGO NTX CON JAVA

GRACIAS
Msc. Manuel Sánchez Chero
manuelsanchezchero@gmail.com

http://www.lambayequeaprende.com

Lego Mindstorms NTX
Software - Firmware

Consta de las instrucciones básicas para hacer las distintas tareas.

Viene en el CD-ROM, debe ser cargado todas las veces que el robot se inicialice.
Para cargar el firmware debe ejecutarse el programa adjunto y luego esperar cerca de 3 minutos para que se cargue completamente el firmware básico.

Lego Mindstorms NTX
Sensor de Contacto
 

Le da al robot el sentido del tacto. Detecta cuando está siendo presionado por algo y cuando es liberado. Se puede usar para hacer que el robot sujete cosas:

Un brazo robótico equipado con un Sensor de Contacto permite al robot saber si tiene o no algo en su brazo para sujetar.

Lego Mindstorms NTX
Sensor de Sonido  Puede detectar decibeles (dB) y decibeles ajustados (dBA).  Un decibel es una medida de presión del sonido.  dBA: en la detección de decibeles ajustados, la sensibilidad del sensor es adaptada a la sensibilidad del oído humano.  dB: en la detección de decibeles estándar (sin ajustar), todos los sonidos son medidos con igual sensibilidad-

Lego Mindstorms NTX
Sensor de Luz
  

Es uno de los dos sensores que le dan visión al robot. Permite al robot distinguir entre luz y obscuridad. Puede leer la intensidad de luz en una habitación y medir la intensidad de luz de superficies coloreadas.

Lo que ven nuestros ojos Lo que ve el sensor de luz

Lego Mindstorms NTX
Sensor de Ultrasónico
  

Es uno de los dos sensores que le dan visión al robot. Permite al robot “ver” y detectar objetos. También se puede usar para hacer que el robot evada obstáculos, sense y mida distancia y detecte movimiento.

 

Mide distancia en centímetros y en pulgadas.
Es capaz de medir distancias de 0 a 255 cm con una precisión de +/- 3 cm.

Lego Mindstorms NTX
Sensor de Ultrasónico

Usa el mismo principio que los murciélagos: mide distancia mediante el cálculo del tiempo que le toma a una onda de sonido golpear un objeto y regresar (así como el eco). Los objetos grandes con superficie dura regresan las mejores lecturas. Los objetos hechos de material suave o que son curvos (como una pelota) o son muy delgados o pequeños pueden ser difíciles de detectar por el sensor.

Sign up to vote on this title
UsefulNot useful