Issuu on Google+


Índice Conociendo al Lego Mindstorms .....................................................................................................................................................................................4 

Bloque NXT ..............................................................................................................................................................................................................4

Motores del Lego Mindstorms ................................................................................................................................................................................5

Sensores del Lego Mindstorms ...............................................................................................................................................................................5

Conectores y piezas no eléctricas............................................................................................................................................................................6

Tipos de Robots .......................................................................................................................................................................................................7

.........................................................................................................................................................................................................................................7 Conociendo LeJOS ...........................................................................................................................................................................................................8 

¿Qué es LeJOS NXJ? .................................................................................................................................................................................................9

Instalación de Java.................................................................................................................................................................................................11

Instalación de Drivers ............................................................................................................................................................................................13

Instalación de LeJOS ..............................................................................................................................................................................................13

Comenzando con LeJOS NXJ ..................................................................................................................................................................................15

Menú principal ......................................................................................................................................................................................................16

Comenzando a programar.............................................................................................................................................................................................19 

Compilar y ejecutar su primer programa ..............................................................................................................................................................19

Comando NXJBrowse ............................................................................................................................................................................................21

Reproducir sonido .................................................................................................................................................................................................22

Controlando los motores.......................................................................................................................................................................................23

2


¿Qué es Lego Mindstorms?

Lego Mindstorms es un Kit de robótica fabricado por la empresa Lego, el cual está conformado por motores, sensores, un microprocesador y piezas que pueden ser unidas de diferentes formas. El microprocesador llamado bloque (o ladrillo) NXT cuenta con puertos de entrada y salida para controlar los motores y recibir información a través de los sensores. El NXT es programable mediante un software que una vez instalado en una computadora, ofrece una interfaz gráfica permite a través de la unión de bloques de instrucciones poder controlar los movimientos y acciones del juego, esto a través de instrucciones secuenciales, de ciclos y de decisión, éstas últimas, basadas en los datos reportados por los sensores. La comunicación con la computadora se realiza mediante un cable USB, así como con dispositivos que cuenten con una interfaz Bluetooth como teléfonos móviles y otros bloques NXT. Estas características permiten al Lego Mindstorms ser utilizado como herramienta educacional.

3


Conociendo al Lego Mindstorms Como ya se había mencionado, Lego Mindstorms está compuesto por varios elementos, a continuación se describe cada uno de los componentes y sus características.

 Bloque NXT

El

microprocesador

NXT

de

32

bits

ARM7TDMI|AT91SAM7S256 (256 KB de memoria flash y 64 KB RAM), posee una pantalla matricial LCD de 100x64 pixeles [1], puerto USB 2.0 [2], conectividad inalámbrica vía Bluetooth, cuatro puertos de entrada (cable digital de 6 hilos) [3], tres puertos de salida (cable digital de 6 hilos) [4], Altavoz [5], Alimentación con seis pilas AA o batería recargable [6], botones de navegación que te permiten avanzar [8] o retroceder [7] entre las opciones que muestra el NXT, poder seleccionar alguna de estas o entrar a un sub menú [9], así como cancelar una operación o regresar al menú superior [10] (figura 1) .

4


 Motores del Lego Mindstorms

El kit de Lego Mindstorms cuenta con tres servo motores que permiten movimiento al robot, cada uno cuenta con un sensor de rotación, lo que posibilita tener un control muy preciso de los movimientos. El sensor mide rotaciones en grados con una exactitud de +/- 1° y rotaciones completas. Otra de las capacidades de los motores es enviar información al NXT de la velocidad a la que están rotando y por consiguiente la distancia recorrida (Figura 2).

 Sensores del Lego Mindstorms 

El sensor de contacto (Touch Sensor) es un botón que proporciona información al NXT cuando está siendo presionado y cuando es liberado, simulando el sentido del tacto [1].

El sensor de luz (Light Sensor) es capaz de detectar la intensidad de luz en una habitación, de igual forma puede medir la intensidad de luz de diferentes colores [2].

El sensor Ultrasónico (Ultrasonic Sensor) puede medir distancia

5


mediante el cálculo del tiempo que le toma a una onda de sonido golpear un objeto de superficie solida y regresar. Además de medir distancia en centímetros y en pulgadas, entre 0 a 255 cm con una precisión de +/- 3 cm [3]. Otra aplicación que tiene es detectar movimiento y en conjunto con el sensor de luz simula el sentido de la vista para el NXT. 

El sensor de sonido (Sound Sensor) detecta los sonidos de su entorno, es capaz de adaptarse para medir decibeles ajustados (dBA) que entran en el rango de 3 – 6 KHz donde el oído humano es más sensible, y decibeles (dB) estándar donde todos los sonidos son medidos con igual sensibilidad. La información enviada por este dispositivo provee al NXT del sentido del oído [4] (Figura 3).

 Conectores y piezas no eléctricas

El medio por el cual los sensores y motores se comunican es a través de cable digital de 6 hilos, en la parte inferior del NXT se conectan los sensores (puertos 1, 2, 3 y 4), mientras que en la parte superior se conectan los motores, como se puede observar en la 6


Figura 4. Todas las piezas que no son electrónicas del Lego Mindstorms entran en las siguientes categorías: vigas, conectores, engranes, misceláneo (Figura 5).

 Tipos de Robots

La gama de robots que se pueden construir con el Kit Lego Mindstorms es muy amplia y dependen del ingenio del estudiante, básicamente los tipos de robots que pueden ser armados son: Vehículos, Máquinas, Animales y Humanoides (Figura 6).

7


Conociendo LeJOS El software para programar el Lego Mindstorms NXT fue desarrollado por National Instruments LabVIEW, de tal forma que sea intuitivo y sencillo manejarlo, a través de arrastras bloques representativos de las funciones que puede realizar el NXT y unirlos, se pueden manipular las características de los bloques como la duración de un evento, o la dirección del movimiento de los motores. El software cuenta con guías de armado de robots y su programación, propiciando que el usuario rápidamente comience a manipularlo e inconscientemente adentrarse en el paradigma de programación estructurada que se encuentra presente en la forma que se pueden agrupar los bloques de funciones, por lo tanto se puede considerar una alternativa atractiva como herramienta educacional.

Para que el NXT pueda realizar las tareas que sean programadas, debe contar con un firmware el cual consta de las instrucciones básicas que puede efectuar el bloque. Si no se carga el firmware, el robot queda en modo de arranque. En otras palabras el firmware es el sistema operativo del robot el cual se encuentra grabado en memoria de tipo ROM y que contiene las diferentes funciones que hacen posible su funcionamiento.

Por lo tanto la secuencia para operar al Lego Mindstorms es la siguiente:

Armado del Robot

Programación del robot

Descarga del programa al robot

Ejecición del programa por el robot

8


La siguiente tabla muestra los requerimientos mínimos para su instalación.

Tabla 1. Requerimientos Sistema Operativo

Windows

Macintosh

Versión

XP Professional o Home Edition con Service Pack 2

Apple MacOS X v. 10.3.9 ó 10.4

Procesador

Intel® Pentium® o compatible, mínimo a 800 MHz

PowerPC® G3, G4, G5, mínimo a 600 MHz

Memoria RAM 256 MB mínimo, Disco duro Hasta 300MB de espacio disponible, Pantalla XGA (1024x768), Puerto USB, Lector CD - ROM, Adaptador Bluetooth compatible (opcional)

 ¿Qué es LeJOS NXJ?

LeJOS NXJ es un entorno de programación en Java diseñado para remplazar el firmware del NXT. LeJOS instala una maquina virtual de Java que permite programar robots Lego en el lenguaje de programación Java. Posee una biblioteca de clases de Java (classes.jar) específicas para Lejos NXJ, permite la comunicación entre el NXT y la PC a través de Bluetooth o cable USB mediante el protocolo de comunicación de Lego (LCP), ofrece herramientas para la actualización, cargar y depurar programas entre otras muchas funciones.

9


Cabe mencionar que como LeJOS es un remplazo del firmware original, se debe eliminar el firmware estándar de Lego y restablecer las instrucciones básicas que hacen posible el funcionamiento del NXT instalándole LeJOS NXJ como su nuevo firmware.

Se mencionan a continuación solo algunas de las ventajas de utilizar LeJOS NXJ para programar un bloque NXT. 

Utiliza el lenguaje Java estándar de la industria.

Es compatible con la programación orientada a objetos.

Permite seleccionar entornos de programación Java como Eclipse, JCreator y Netbeans.

Tiene soporte multiplataforma - Windows, Linux y Mac OS X.

Tiene soporte completo para Bluetooth, USB, I2C y protocolos RS-485.

Proporciona un control de motor de alta precisión.

Soporta las últimas características del lenguaje Java 1.6.

Es compatible con algoritmos de robótica probabilística

Ofrece clases de comportamiento para facilitar la programación de comportamientos de un robot complejo.

Es compatible con sensores de terceros.

Soporta el monitoreo remoto y seguimiento de su programa de LeJOS NXJ desde el PC.

Permite multithreading.

Permite el manejo de eventos.

Tiene un sistema de archivos flash de acceso a las clases java.io estándar.

Tiene soporte de sonido, incluyendo la reproducción de archivos WAV de 8 bits.

Se admite la comunicación Bluetooth con otros dispositivos, tales como receptores GPS.

10


Si las características del Lego Mindstorms ya lo acreditaban como una herramienta educacional, la inclusión de las ventajas que ofrece LeJOS NXJ, lo convierten en una atractiva práctica para el desarrollo de pensamiento lógico y reforzamiento de conocimientos básicos de programación orientada a objetos. Por lo tanto es ampliamente utilizado por universidades e instituciones educativas. Secuencia para instalar LeJOS

Descargar Java JDK Driver NXT Driver USB LeJOS

Instalar Java y agregar javac.exe a la variable de entorno

Instalar Drivers y LeJOS

Remplazar el firmware del NXT e instalar el firmaware de Lejos NXJ

Compilar y cargar un programa de prueba en el NXT

 Instalación de Java

LeJOS está basado en la tecnología de Java, por lo tanto debe de estar instalada la última versión del JDK de Java. El software puede ser descargado de la siguiente URL: http://java.sun.com. EL JDK cuenta con un asistente de instalación, por lo tanto solo debe aceptar las condiciones de la licencia, escoger todos los componentes a ser instalados y seleccionar la dirección donde desea que sean instalados. Una vez instalado se debe comprobar que la instalación se realizo de forma correcta.

11


El primer paso para comprobar que la instalación se realizo de forma correcta es verificando que el sistema operativo reconoce el comando java que es necesarios para la ejecución de programas java. Para esto teclee el comando java en una ventana de símbolo de sistema, si el resultado son las opciones de uso del comando la prueba fue exitosa, como lo muestra la figura 7. El segundo paso es comprobar que el sistema operativo reconoce el comando javac que es necesarios para la compilación de programas. Para esto teclee el comando javac en una ventana de símbolo de sistema, si el resultado son las opciones de uso del comando la prueba fue exitosa. Si alguna de las pruebas muestra como resultado el siguiente mensaje “no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable”, es necesario actualizar las variables de entorno en el sistema. Para actualizar las variables de entorno, haga clic en el menú de inicio / Equipo / Propiedades del sistema / Configuración avanzada del sistema / Variables de entorno. Hecho esto aparecerá una ventana como se muestra en la figura 8, en Variables del sistema seleccione la variable Path [1], y seleccione Editar, aparecerá una segunda ventana [2], en Valor de la variable [3] deberá colocarse al final de la cadena, sin dejar espacios agregar un punto y coma y la dirección absoluta de la carpeta bin, de los archivos instalados de java y donde se encuentran los archivos java.exe y javac (C:\Program Files (x86)\Java\jdk1.6.0_18\bin). Por último debe aceptar la edición de la variable del sistema y de las ventanas activas. 12


Una vez terminado esto realice nuevamente la prueba de los comandos java y javac, si el resultado es exitoso su sistema está listo para desarrollar programas en java.

Instalación de Drivers

El kit de Lego Mindstorms incluye un CD de instalación del IDE para programar en la plataforma de NXT-G, el cual incluye drivers de Windows, para que el sistema operativo pueda reconocer el dispositivo. El primer paso es seleccionar el idioma, después el driver (LEGO MINDSTORMS NXT DRIVER). Una vez instalado, la primera vez que sea conectado el NXT a la computadora lo reconocerá como un dispositivo de almacenamiento USB, después de realizar la actualización del driver se reconocerá de forma correcta como un bloque NXT.

 Instalación de LeJOS

Como primer paso debe descargar LeJOS de la siguiente URL: http://lejos.sourceforge.net/, la dirección nos ubicará en el sitio oficial de LeJOS y permitirá descargar un instalador del software, por lo tanto solo debe aceptar las condiciones de la licencia y seleccionar la dirección donde desea que sea instalado el software. Una vez concluida la instalación aparecerá una ventana como la que se muestra en la figura 9 [1], la cual nos permitirá instalar NXJ firmware en el NXT sustituyendo el firmware original. Haga clic Start program, a continuación surgirá un mensaje [2] para cerciorarse que está conectado por medio del cable USB el NXT, después aparecerá un nuevo mensaje preguntando si desea eliminar todos los archivos del NXT, una vez eliminados comenzará a instalar el nuevo firmware, mostrando información del proceso [3] y al finalizar preguntará si desea repetirlo [4].

13


Una vez instalado se debe comprobar que la instalación se realizo de forma correcta, para esto se ejecutará una prueba como la realizada con java. Se debe verificar que el sistema operativo reconoce el comando nxj que es necesarios para la ejecución de programas nxj. Para esto teclee el comando nxj en una ventana de símbolo de sistema, si el resultado son las opciones de uso del comando la prueba fue exitosa. Si la prueba muestra como resultado el siguiente mensaje “no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable”, es necesario actualizar las variables de entorno en el sistema. Nota: Si cerro la ventada de instalación del NXJ firmware y desea repetir nuevamente la operación en otro NXT, teclee el comando nxjflashg en una ventana de símbolo de sistema.

14


 Comenzando con LeJOS NXJ

Una vez que ha sido remplazado el firmware estándar del Lego Mindstorms por LeJOS NXJ como su nuevo firmware, podemos comenzar a cargar programas en el robot realizados en LeJOS, pero antes conoceremos las opciones básicas que ofrece el sistema LeJOS NXJ para el Lego NXT. 15


Al encender el NXT aparecerá en la pantalla el Logotipo de LeJOS NXJ [1] y después el menú principal [2]. En la parte superior izquierda se muestra el icono de carga de la batería [2.1], después al centro el nombre del block NXT, y en la parte superior derecha se indica si se encuentra activa la opción de conexión por medio de Bluetooth [2.2]. Debajo una serie de opciones las cuales puede seleccionar por medio de los botones de navegación del NXT como lo muestra la (Figura 10).

 Menú principal Run Default: Ejecuta un programa que ha sido establecido por defecto y que se ejecutara en el momento de encender el NXT, el programa se puede establecerse desde la opción Files.

Files: ([3]) Muestra una lista con los programas que han sido cargados, cuando se selecciona alguno, se despliega un submenú con las siguientes opciones ([3.1]). •

Execute program: Ejecuta el programa.

Set as default: Lo establece por defecto.

• Delete file: Elimina el programa.

Bluetooth: ([4]) Permite controlar el chip Bluetooth. Cuando éste se encuentra apagado se muestra en la parte superior el mensaje “Power of“ y “Power on“ cuando se encuentra encendido, en este estado puede conectarse con otros dispositivos.

16


El mensaje Visibility indica que es posible localizar el NXT cuando está en el estado “on”, y no ser visible para otros dispositivos cuando se encuentra en el estado “off”. Está opción también cuenta con el siguiente submenú ([4.1]). •

Power off: Apaga el chip Bluetooth.

Search and pair: Busca y enlista dispositivos con los cuales pueda conectarse [4.2], si se selecciona alguno de los dispositivos encontrados [4.3] mostrará la opción “Pair” que solicitará la clave de emparejamiento formada por cuatro dígitos [4.4].

Device: Enlista dispositivos conocidos para su fácil conexión.

Visibility: Cambia el estado del dispositivo si es visible para otros dispositivos o no, depende del estado actual del chip Bluetooth.

Change PIN: permite cambiar la clave de emparejamiento del NXT

Sound: ([5]) Permite configurar el volumen del NXT, y permite seleccionar las siguientes opciones ([5.1]). •

Volumen.

Volumen Key

System: ([6]) Muestra información sobre la disponibilidad de memoria flash, RAM y voltaje de la batería del NXT y permite seleccionar las siguientes opciones ([6.1]) 17


Format: Borra todos los archivos.

Sleep time: Determina el tiempo en que tiempo se apaga el NXT si no es utilizado.

Auto run: Determina si un programa se inicia cuando se prende el NXT en lugar del menú principal.

Version: (Figura 10 [7]) Muestra información sobre la versión del firmware [7.1].

18


Comenzando a programar Una vez instalado LeJOS NXJ podemos comenzar a programar, tome en cuenta que ahora tenemos como periféricos de salida la pantalla matricial LCD, bocina y motores, por otra parte como periféricos de entrada los sensores del NXT.

Compilar y ejecutar su primer programa

Comenzaremos con un programa simple que escriba un mensaje en la pantalla del NXT. Primero asegúrese que el NXT se encuentre conectado con el cable USB, encendido y reconocido por la computadora, después copie el código del ejemplo Mensaje (Celdas grises) en el bloc de notas, es importante que guarde el archivo con el mismo nombre de la clase “Mensaje” y la extensión .java (Celda naranja) respetando mayúsculas y minúsculas.

Nota: El nombre de los archivos no debe ser mayor de 16 letras sin incluir la extensión. Mensaje.java 1

Despliega un mensaje en la pantalla del NXT

import lejos.nxt.*;

2 public class Mensaje 3 { 4 public static void main (String[] arg) throws Exception 5 { 6 LCD.drawString("Programando",3,1); 7 LCD.drawString("Robots Lego NXT",1,3); 8 LCD.drawString("con Java",4,5); 9 Thread.sleep(10000); 10 } 11 }

lejos.nxt.*; es el paquete de las clases estándar de LeJOS que permiten controlar el NXT Se mantiene la estructura de una clase estándar en Java class nombre_de_la_clase { tipo_de_dato nombre_del_atributo; tipo_devuelto nombre_del_método ( lista de parámetros) { cuerpo del método} } Por medio del método drawString de la clase LCD podemos escribir texto en la pantalla. Los parámetros son: drawString ( Texto que se desea imprimir, columna, fila) El método sleep de la clase Thread suspende la actividad del programa durante un determinado tiempo. Los parámetros son: sleep( milésimas de segundo)

19


A continuación habrá una ventana de símbolo de sistema, ubíquese en la misma carpeta donde se encuentra su archivo y teclee nxjc Mensaje.java, si el programa no tiene errores y la dirección de la carpeta donde se encuentra nuestro archivo es correcta, el comando compila el programa y devuelve el prompt del sistema sin enviar mensaje alguno, además de genera dos archivos nuevos con el mismo nombre en la misma carpeta donde se guardo nuestro archivo original, uno con extensión .class y otro con .nxj.

Para que se ejecute el programa teclee nxj –r y el nombre del archivo sin extensión, en ese momento detecta si está conectado y encendido el NXT, carga el archivo ejecutable y el robot lo ejecuta (Figura 11). El programa despliega en la pantalla del NXT el mensaje “Programando Robots Lego NXT con Java”.

En este momento el archivo con extensión .nxj ya se encuentra en el robot y puede ser ejecutado desde el mismos a través del menú File (Figura 10 [3]). Si se desea ejecutar desde la PC, solo debe repetir el último paso sin compilar el programa. En el caso de realizar algún cambio al archivo Mensaje.Java es indispensable compilar nuevamente el programa para actualizar los cambios en el ejecutable que se descarga en el robot. También existe la posibilidad de únicamente cargar el archivo y no ejecutar el programa omitiendo –r, únicamente teclee nxj y el nombre del archivo sin extensión.

Nota: Tome en cuenta que el NXT tiene una capacidad de memoria limitada, por lo que rápidamente se puede llenar con la carga de varios programas y será necesario borrar algunos.

20


Comando NXJBrowse

El comando NXJBrowse nos permite visualizar los archivos contenidos en el NXT y poder ejecutarlos, para esto solo teclee nxjbrowse y se desplegara una ventana como la que se muestra en la figura 12 [1]. La información que se muestra es perteneciente a los NXT encendidos que ha localizado (nombre, protocolo de conexión, dirección y estado), ya sea mediante cable USB o Bluetooth. Los robots localizados tendrán un estado desconectado, para poder ver el contenido de alguno de ellos, solo basta con seleccionarlo y oprimir el botón conectar.

Una vez seleccionado el dispositivo, se despliegan los nombres y el tamaño de los archivos con extención .nxj que han sido cargados [2]. Mediante esta ventana se puede eliminar un o varios archivos, únicamente seleccionando el checkbox que se encuentra al lado del nombre del archivo y oprimiendo el botón Delete Files. También la opción de cargar y descargar archivos con los botones Upload File y Download File respectivamente. Ejecutar un programa con Run program. Desfragmentar el NXT con Defrag y Asignarte un nombre nuevo al robot con Set Name.

21


 Reproducir sonido

Como ya se había mencionado, el NXT está equipado con una pequeña bocina que funciona como periféricos de salida, por lo tanto es capaz de reproducir sonidos que se encuentran pre cargados en el sistema, así como archivos con extención .wav, para poder reproducir los sonidos es necesario utilizar algunos métodos pertenecientes a la clase Sound, como los que se muestran en los siguientes ejemplos.

Sonido.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Reproduce sonidos del sistema NXT

import lejos.nxt.*; public class Sonido { public static void main(String [] arg) throws Exception { Sound.beep(); Thread.sleep(1000); Sound.twoBeeps(); Thread.sleep(1000); Sound.beepSequence(); Thread.sleep(1000); Sound.beepSequenceUp(); Thread.sleep(1000); Sound.buzz(); Thread.sleep(1000); } }

Para poder reproducir sonido a través de la bocina del NXT, se utiliza la clase Sound. la siguiente lista son sonidos que pertenecen al firmware y se encuentran disponibles, para reproducirlos únicamente debe llamar al método asociado. 

Sound.beep(); Emite un pitido

Sound.twoBeeps(); Emite dos pitido

Sound.beepSequence(); Emite una secuencia de pitidos en forma descendente

Sound.beepSequenceUp(); Emite una secuencia de pitidos en forma ascendente

Sound.buzz(); Emite un zumbido

El siguiente programa reproduce un archivo con extensión .wav, para esto cargue el archivo Aplauso.wav que se encuentra en la carpeta Ejemplos/Sonidos, con la ayuda del comando nxjbrowse. 22


Sonido_Archivo.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Reproduce un archivo de sonido wav pre cargado en el NXT

import lejos.nxt.*; import java.io.*; public class Sonido_Archivo { public static void main(String [] arg) throws Exception { File[] archivos = File.listFiles(); for (int i=0; i< archivos.length && archivos[i] != null; i++) { if (archivos[i].getName().equals("Aplauso.wav")) { Sound.playSample(archivos[i],100); LCD.drawString("Reproduccion de",1,2); LCD.drawString("archivo wav", 3,4); Thread.sleep(3000); }}}}

Este programa reproduce un archivo de sonido wav pre cargado en el NXT, para esto se debe incluir la librería java.io.*, que controla el flujo de entrada y salida de información de los archivos. La clase File proporciona utilidades relacionadas con ficheros y con la obtención de información básica sobre los mismos. El método listFiles(), devuelve una lista de los archivos contenidos en el NXT, en esta ocasión se almacenarán en un arreglo llamado archivos de tipo File. El método getName(), devuelve el nombre de un archivo en formato cadena. La forma de comparar si dos cadenas son iguales en java es mediante el método equals de la clase String. Los parámetros son: Variable de tipo String .equals( Texto que se desea comparar) Para reproducir el archivo wav, se utiliza el método playSample de la clase Sound Los parámetros son: Sound.playSample(archivo de tipo File, volumen del 0 al 100 )

 Controlando los motores Los motores del NXT son considerados también como periféricos de salida, puede controlar hasta tres motores a la vez, la forma hacerlo es mediante de la clase Motor y especificando el puerto que enviara la información de lo que debe hacer cada uno. Debe asegurarse que los motores estén conectados en alguno de los tres puertos de salida (A, B, C) del NXT. Para probar el siguiente código arme un robot con forma de vehículo terrestre colocando dos motores de forma paralela que le permitan moverse. Utilizaremos los puertos A y B para que el programa envíe las instrucciones.

23


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Gira dos motores hacia el frente y atrás Basico_Motor.java import lejos.nxt.*; El programa debe ser probado en un robot con forma de vehículo terrestre colocando dos motores de forma paralela, Puertos a utilizar: A, B. public class Basico_Motor { El ciclo permite ejecutar el programa y tener tiempo de desconectar el cable USB antes de que avance el robot (tres segundos señalados por pitidos) public static void main (String[] Arg) throws Exception { La clase Motor es utilizada para accionar los motores del NXT, la forma de for (int i=0; i< 3; Sound.beep(), Thread.sleep(1000), i++); utilizarlos es especificando que puerto servirá de canal de conexión con el robot y Motor.A.forward(); Motor.B.forward(); alguno de los métodos propios de la clase. Thread.sleep(2000); Clase.Puerto.Método() Motor.A.backward(); Motor.B.backward(); Motor.A.forward() Thread.sleep(2000); Motor.A.forward(); Motor.B.backward(); • Motor.A.forward(): Rotación hacia adelante Thread.sleep(2000); • Motor.A.backward(): Rotación hacia atrás Motor.A.backward(); Motor.B.forward(); • Motor.A.stop(): Se detiene, y ejerce fuerza para que no rotar los motores Thread.sleep(2000); El método sleep de la clase Thread permite que los motores estén funcionando Motor.A.stop(); Motor.B.stop(); Thread.sleep(5000); durante un determinado tiempo. } }

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Incremento de velocidad conforme avanza Velocidad_Motor.java import lejos.nxt.*; El programa debe ser probado en un robot con forma de vehículo terrestre colocando dos motores de forma paralela, Puertos a utilizar: A, B. public class Velocidad_Motor { El ciclo permite ejecutar el programa y tener tiempo de desconectar el cable USB antes de que avance el robot (tres segundos señalados por pitidos) public static void main (String[] Arg) throws Exception { for (int i=0; i< 3; Sound.beep(), Thread.sleep(1000), i++); La clase Motor es cuenta con el método setSpeed, el cual permite asignar la for (int i=0; i< 900; i++) velocidad con la que gira un motor. Los parámetros son: { Motor.A.setSpeed(número entero) Motor.A.setSpeed(i); Motor.B.setSpeed(i); Motor.A.forward(); Motor.B.forward(); Otro método perteneciente a Motor es flt, el cual a diferencia de Stop que ejerce Thread.sleep(10); fuerza para detener el motor y no permitir que siga moviéndose, solo detiene la } alimentación de energía al motor permitiendo inercia Motor.A.flt(); Motor.B.flt(); Thread.sleep(5000); }}

24


25


Programación de robos Lego