sandria2009 pr nxt j 05e

Upload: vampirosdarkness

Post on 10-Feb-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    1/57

    Taller:

    Programacin de

    Robots Lego NXT con Java

    M.I.A. Julio Csar Sandria [email protected]

    RobotSA

    Congreso Internacional de Tecnologas de Informacin y Robtica (CITIR09)

    12 al 14 de Noviembre de 2009 Boca del Ro, Ver. Mxico

    ACM Mexico Chapter

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    2/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com2

    Objetivo

    Proporcionar al participante los conocimientos

    bsicos para programar robots Lego MindstormsNXT usando el lenguaje de programacin Java.

    Se construir un robot mvil con los motores y

    sensores del paquete NXT y se usarnalgunos mtodos bsicos Java para el NXT.

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    3/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com3

    Agenda

    1. Introduccin

    2. Software Java y NXT3. Piezas LEGO

    4. Estrategias de construccin

    5. Construccin de un robot mvil

    6. Programacin del robot mvil

    7. Mini-concurso de robtica

    8. Otros cursos y talleres

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    4/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com4

    1. Introduccin

    Lego

    Lego Mindstorms El NXT

    Sensor de contacto Sensor de sonido

    Sensor de luz

    Sensor ultrasnico

    Servo motores

    Software Mindstorms NXT

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    5/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com5

    Lego

    Compaa de juguetes que produce

    ladrillitos de colores. Es uno de los juguetes ms populares del

    platena.

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    6/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com6

    Lego lnea de tiempo

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    7/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com7

    Lego Mindstorms

    RIS 1.0 (1998), 1.5 (1999), 2.0 (2001)

    NXT (2006)

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    8/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com8

    El NXT

    El NXT es el cerebro de los robots MINDSTORMS. Esun bloque LEGO que contiene una computadora-

    controlador que permite a los robots MINDSTORMStener vida y realizar diferentes tareas.

    Puertos para motores: A, B y C.

    Puertos para sensores: 1, 2, 3 y 4.

    Puerto USB.

    Conexin inalmbrica Bluetooth.

    Bocina Botones

    Pantalla

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    9/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com9

    El NXT: Caractersticas tcnicas

    Microcontrolador 32-bit ARM7

    256 Kbytes FLASH, 64 Kbytes RAM

    Microcontrolador 8-bit AVR

    4 Kbytes FLASH, 512 Bytes RAM

    Comunicacin inalmbrica Bluetooth (Bluetooth Clase IIV2.0)

    4 puertos de entrada, cable de 6 hilos

    3 puertos de salida, cable de 6 hilos

    Pantalla grfica LCD de 100 x 64 pixeles

    Bocina - 8 kHz calidad de sonido

    Fuente de poder: 6 bateras AA

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    10/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com10

    Sensor de contacto

    El Sensor de Contacto le da al robot el

    sentido del tacto. Detecta cuando estsiendo presionado por algo y cuando es

    liberado.

    Se puede usar el sensor de contacto parahacer que el robot sujete cosas: un brazo

    robtico equipado con un

    Sensor de Contacto permiteal robot saber si tiene o no

    algo en su brazo para sujetar.

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    11/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com11

    Sensor de sonido

    El Sensor de Sonido puede detectardecibeles (dB) y decibeles ajustados (dBA).Un decibel es una medida de presin delsonido.

    dBA: en la deteccin de decibelesajustados, la sensibilidad del sensor esadaptada a la sensibilidad del odo humano.

    dB: en la deteccin de decibeles estndar(sin ajustar), todos los sonidos sonmedidos con igual sensibilidad.

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    12/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com12

    Sensor de luz

    El Sensor de Luz es uno de los dos

    sensores que le dan visin al robot. ElSensor de Luz permite al robot distinguir

    entre luz y obscuridad. Puede leer la

    intensidad de luz en una habitacin y

    medir la intensidad de luz de superficies

    coloreadas.Lo que ven nuestros ojos

    Lo que ve el sensor de luz

    P i d R b t L NXT J M I A J li C S d i R

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    13/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com13

    Sensor ultrasnico

    El Sensor Ultrasnico es uno de los dos

    sensores que le dan visin al robot. El SensorUltrasnico permite al robot ver y detectar

    objetos. Tambin se puede usar para hacer que

    el robot evada obstculos, sense y midadistancia y detecte movimiento.

    El Sensor Ultrasnico mide distancia en

    centmetros y en pulgadas. Es capazde medir distancias de 0 a 255 cm con

    una precisin de +/- 3 cm.

    P i d R b t L NXT J M I A J li C S d i R

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    14/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com14

    Sensor ultrasnico

    El Sensor Ultrasnico usa el mismo principioque los murcilagos: mide distanciamediante el clculo del tiempo que le toma auna onda de sonido golpear un objeto yregresar (as como el eco).

    Los objetos grandes con superficie duraregresan las mejores lecturas. Los objetoshechos de material suave o que son curvos(como una pelota) o son muy delgados opequeos pueden ser difciles de detectarpor el sensor.

    P i d R b t L NXT J M I A J li C S d i R

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    15/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com15

    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 paraprogramar los motores, losdos motores se sincronizarnautomticamente, de modo que el robotse mover en lnea recta.

    Programacin de Robots Lego NXT con Ja a M I A J lio Csar Sandria Re noso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    16/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com16

    Servo motor: sensor de rotacin

    Cada servo motor tiene incorporado un

    Sensor de Rotacin. Esto permitecontrolar los movimientos del robot con

    mucha precisin. El Sensor de Rotacin

    mide rotaciones del motor en grados o

    rotaciones completas (con

    exactitud de +/- 1).

    Programacin de Robots Lego NXT con Java M I A Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    17/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com17

    Servo motor: sensor de rotacin

    Una rotacin es igual a 360, de modo que

    si se indica a un motor girar 180, susalida producir medio giro.

    El Sensor de Rotacin incorporado encada motor tambin permite establecer

    diferentes velocidades para los motores

    (estableciendo diferentes parmetros depoder en el software).

    Programacin de Robots Lego NXT con Java M I A Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    18/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com18

    Software Mindstorms NXT

    El software LEGO MINDSTORMS NXT

    permite programar el NXT desde unacomputadora y cargarle programas via USB o

    Bluetooth. El software intuitivo de arrastrar y

    soltar para Mac y PC, co-desarrollado porNational Instruments LabVIEW, viene con

    instrucciones de armado y guas de

    programacin para empezar fcilmente aconstruir y programar robots con el

    MINDSTORMS NXT.

    Programacin de Robots Lego NXT con Java M I A Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    19/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com19

    Software Mindstorms NXT

    Es fcil empezar a armar y programar

    robots con el LEGO MINDSTORMS NXTya que el Software viene con instrucciones

    para armar y programar 4 interesantes

    modelos que se pueden armar y

    programar para que hagan lo uno desea.

    Programacin de Robots Lego NXT con Java M I A Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    20/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com20

    Software Mindstorms NXT

    Se empieza seleccionando un modelo de

    robot para armar y programar. LEGOrecomienda empezar con el TriBot ya que

    es una continuacin del modelo incluido

    en la gua de inicio rpido (Quick Start)

    incluida en la caja del LEGO

    MINDSTORMS NXT.

    Programacin de Robots Lego NXT con Java M I A Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    21/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com21

    Software Mindstorms NXT

    Requierimientos para Windows:

    Procesador Intel Pentium o compatible, mnimo a 800MHz

    Windows XP Professional o Home Edition con ServicePack 2

    256MB de RAM mnimo Hasta 300MB de espacio disponible en disco duro

    Pantalla XGA (1024x768)

    1 puerto USB disponible Lector CD-ROM

    Adaptador Bluetooth compatible (opcional)

    Programacin de Robots Lego NXT con Java M I A Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    22/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com22

    Software Mindstorms NXT

    Requerimientos para Macintosh:

    Procesador PowerPC G3, G4, G5, mnimo a 600 MHz

    Apple MacOS X v. 10.3.9 10.4

    256MB de RAM mnimo

    Hasta 300MB de espacio disponible en disco duro

    Pantalla XGA (1024x768)

    1 puerto USB disponible

    Lector CD-ROM

    Adaptador Bluetooth compatible (opcional)*

    Programacin de Robots Lego NXT con Java M I A Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    23/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com23

    Software Mindstorms NXT

    El Software LEGO MINDSTORMS NXT es

    desarrollado por NI LabVIEW, un software deprogramacin grfica intuitivo usado por

    cientficos e ingenieros de todo el mundo para

    disear, controlar y probar productos deconsumo y sistemas tales como reproductores

    MP3 y DVD, telfonos celulares y sistemas de

    seguridad de bolsas de aire en vehculos.Pathfinder de la NASA en Marte.

    Xbox de Microsoft.

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    24/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com24

    2. Software Java y NXT

    Java Development Kit

    Driver del NXT

    Driver USB

    leJOS NXJ La Interfaz de Programacin de

    Aplicaciones (API) leJOS NXJ

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    25/57

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    www.RobotSA.com25

    Java Development Kit

    Obtener e instalar Java Development Kit 6

    Update 16 o superior (java.sun.com)

    http://java.sun.com

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    26/57

    g g y

    www.RobotSA.com26

    Ejecutar Javac y Java

    Asegurarse de poder ejecutarjavac.exe y

    java.exe desde la lnea de comandos. Para compilar un programa:

    C: \ J ava>j avac pr ogr ama. j ava Para ejecutar un programa

    C: \ J ava>j ava pr ogr ama

    Ejemplo:

    Hol a. j ava

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    27/57

    g g y

    www.RobotSA.com27

    Ejemplo Hola.java

    Escriba, compile y ejecute el programa:

    public class Hola {

    public static void main (String[] args) {

    System.out.println("Hola mundo");

    }

    }

    Ejercicio:1. Copiar programa en bloc

    de notas

    2. Guardarlo con nombre

    Hola.java

    3. Compilarlo4. Ejecutarlo

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    28/57

    g g y

    www.RobotSA.com28

    No se ejecuta javac.exe?

    Agregar el trayecto donde se encuentra

    javac.exe a la variable de ambientePATH. Para compilar Hola.java:

    C: \ J ava>j avac Hol a. j ava Windows NO

    encuentra javac.exe

    Agregamos carpeta de

    binarios a la variable

    PATH

    Windows SI encuentra

    javac.exe y lo ejecuta,

    compilando as el

    programa Hola.java

    Ejecutamos Hola.class

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    29/57

    www.RobotSA.com29

    Driver del NXT

    Obtener e instalar el MINDSTORMS NXT

    Driver v1.02 o superior.

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    30/57

    www.RobotSA.com30

    leJOS NXJ

    leJOS NXJ es un ambiente de

    programacin Java para el LegoMindstorms NXT.

    leJOS NXJPermite programar

    robots Lego NXT

    con Java

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    31/57

    www.RobotSA.com31

    Instalacin de leJOS NXJ

    Obtener e instalar leJOS NXJ

    http://lejos.sourceforge.net

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    32/57

    www.RobotSA.com32

    Cargar firmware al NXT

    leJOS NXJ requiere reemplazar el

    firmware del NXT El firmware se puede instalar con:

    El programa nxjflash en la lnea decomandos, o

    El programa grfico nxjflashg

    NOTA: Es necesario instalar el firmware leJOS

    NXJ en el NXT para correr programas Java

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    33/57

    www.RobotSA.com33

    Compilar y cargar programas

    Desde una venta de smbolo de sistema

    se compilan y cargan programas al NXT Para compilar un programa:

    C: \ J ava>nxj c pr ogr ama. j ava Para cargar un programa al NXT

    C: \ J ava>nxj pr ogr ama

    Ejemplos:

    Hol aNXT. j ava y Pr uebaMot or . j ava

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    34/57

    www.RobotSA.com34

    Ejemplo: HolaNXT.java

    import lejos.nxt.*;

    public class HolaNXT {

    public static void main (String[] args) {

    System.out.println("Hola NXT");Button.waitForPress();

    }

    }

    Ejercicio:

    1. Copiar programa en bloc de

    notas2. Guardarlo con nombre

    HolaNXT.java

    3. Compilarlo (nxjc)

    4. Cargarlo al NXT (nxj)

    5. Ejecutarlo en el NXT

    Prueba usando nxj r HolaNXT

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    35/57

    www.RobotSA.com35

    Ejemplo: PruebaMotor.javaimport lejos.nxt.*;

    /**

    * Programacin de Robots Lego NXT con Java (Noviembre-2009)

    * @author Julio C. Sandria Reynoso

    */

    public class PruebaMotor {

    public static void main(String[] args) {

    LCD.drawString("PruebaMotor", 0, 0); // Escribir cadena en posicin x, y

    Motor.A.forward(); // Avanzar motor A

    LCD.drawString("Forward", 1, 1); // Escribir cadenaButton.waitForPress(); // Esperar hasta oprimir un botn

    Motor.A.backward();

    LCD.drawString("Backward", 1, 2);

    Button.waitForPress();

    Motor.A.reverseDirection();

    LCD.drawString("Forward", 1, 3);

    Button.waitForPress();

    Motor.A.stop();

    LCD.drawString("Stop", 1, 4);

    Button.waitForPress();

    }}

    Ejercicio:

    1. Conectar un motor al

    puerto A del NXT2. Copiar programa en bloc

    de notas

    3. Guardarlo con nombre

    PruebaMotor.java

    4. Compilarlo (nxjc)5. Cargarlo al NXT (nxj)

    6. Ejecutarlo en el NXT

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    36/57

    www.RobotSA.com36

    La API leJOS NXJ

    Un robot se mueve dentro de una casa evitando objetos

    con el sensor de distancia. Si el sensor no detecta un

    objeto, el robot puede an detectar si las ruedas estnatoradas monitoreando un decremento en la velocidad

    de rotacin. Si el robot se voltea puede usar un sensor

    de inclinacin para identificar el problema. Puede usarsu bocina para emitir voces que digan me ca. Puede

    tratar de levantarse l mismo. Tal robot puede estar solo

    durante horas, y cuando uno regresa podra an estarexplorando la casa.

    Esto es posible con leJOS NXJ. Solo necesitamos saber

    dnde encontrar los mtodos en la API.

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    37/57

    www.RobotSA.com37

    La API leJOS NXJ

    lejos.nxt

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    38/57

    www.RobotSA.com38

    Paquete lejos.nxt

    Las clases y mtodos del paquete lejos.nxt

    acceden directamente a las funciones del NXT

    Battery

    Button

    ColorSensor

    CompassSensor

    I2CSensor

    LCDLightSensor

    Motor

    MotorPort

    RCXLightSensor

    RCXLink

    RCXMotor

    RCXMotorMultiplexer

    SensorPort

    SoundSoundSensor

    TiltSensor

    TouchSensorUltrasonicSensor

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    39/57

    www.RobotSA.com39

    3. Piezas LEGO

    La mayor parte de las piezas del paquete

    Lego Mindstorms NXT son partes LegoTechnic.

    La lnea de productos Lego Technic esten el mercado desde 1977.

    Estas piezas difieren de las piezas

    estndar Lego en que se

    pueden usar para complejas

    mquinas con movimiento.

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    40/57

    www.RobotSA.com40

    Piezas del NXT

    Todas las piezas del paquete NXT son de

    alta calidad. El proceso de moldeo no dejadefectos y vestigios de plstico.

    El paquete NXT contiene 577 piezas, delas cuales 81 son nicas, mientras

    que el RIS, traa 141 partes

    nicas.

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    41/57

    www.RobotSA.com41

    Piezas del NXT

    Beams

    Liftarms Pins

    Axles

    Axle accesories

    Tires and wheels

    Gears

    Cables

    otras partes

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    42/57

    www.RobotSA.com42

    4. Estrategias de construccin

    (En curso extendido) Patrones de diseo

    Las piezas se ensamblan para producir unafuncin especfica.

    No hay necesidad de reinventar la rueda.

    Muchos patrones de diseo comunes dan

    una idea para empezar proyectos propios.

    Leyes LEGO Metas ingenieriles

    Metas de diseo comunes

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

    5 C t i d b t

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    43/57

    www.RobotSA.com43

    5. Construccin de un robot

    mvil Ver manual para armar el robot TaskBot

    Algunas piezas son de otro color Reemplazar pgina 16

    por diapositivasiguiente

    TaskBot

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    44/57

    www.RobotSA.com44

    Rueda loca

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    45/57

    www.RobotSA.com45

    TaskBot con sensor de luz

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    46/57

    www.RobotSA.com46

    6. Programacin del robot mvil

    Programas en el NXT

    Robot seguidor de lneaRobot peleador de sumo

    Programas en la PC (usando Bluetooth encurso extendido)

    Robot peleador de sumo a control remoto

    Robot futbolista a control remoto

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    47/57

    www.RobotSA.com47

    Programas en el NXT

    HolaNXT.java

    PruebaMotor.java PruebaMotores.java

    SensorLuz.java SensorContacto.java

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    48/57

    www.RobotSA.com48

    POO en el NXT

    POO = Programacin Orientada a Objetos

    nxbot.java nxbotDemo.java

    nxbotContacto.java nxbotContLuz.java

    nxbotSigueLinea.java

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    49/57

    www.RobotSA.com49

    Clase nxbotimport lejos.nxt.*;

    /**

    * Programacin de Robots Lego NXT con Java (Noviembre-2009)

    * @author Julio C. Sandria Reynoso

    */

    public class nxbot {

    public static void avanza(int ms) throws InterruptedException {

    Motor.A.forward();

    Motor.C.forward();

    Thread.sleep(ms); /* espera ms milisegundos */

    }

    public static void retrocede(int ms) throws InterruptedException {

    Motor.A.backward();

    Motor.C.backward();

    Thread.sleep(ms);

    }

    public static void alto() {

    Motor.A.stop();

    Motor.C.stop();

    }

    }

    Ejercicio:

    1. Compilar esta clase.NOTA: no tiene mtodo

    main()

    2. Agregar mtodos

    izquierda yderecha

    3. Compilar al terminar deagregar ambos mtodos

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    50/57

    www.RobotSA.com50

    Clase nxbotDemo

    import lejos.nxt.*;

    /**

    * Programacin de Robots Lego NXT con Java (Noviembre-2009)

    * @author Julio C. Sandria Reynoso

    */

    public class nxbotDemo extends nxbot {

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

    LCD.drawString("nxbot", 0, 0);

    avanza(1000);

    retrocede(1000);

    izquierda(1000);

    avanza(1000);derecha(1000);

    avanza(1000);

    alto();

    }

    }

    Ejercicio:

    1. Compilar esta clase.2. Transferir al NXT y

    ejecutar.

    3. Modificar el programa para

    que el NXT trace un 8

    (ocho) en el suelo.

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    51/57

    www.RobotSA.com51

    7. Miniconcursos de robtica

    Robot seguidor de lnea

    Robot peleador de sumo (En curso

    extendido)

    Robot futbolista (En curso extendido)

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    52/57

    www.RobotSA.com52

    Robot seguidor de lnea

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    53/57

    www.RobotSA.com53

    Robot seguidor de lnea

    Hacer programa nxbotSigueLinea

    Ejercicio:1. Hacer el programa para

    que el robot siga una lnea

    negra.

    2. Comparar con otros

    equipos y mejorar suvelocidad.

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    54/57

    www.RobotSA.com54

    Seguidor de lnea bsico

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    55/57

    www.RobotSA.com55

    8. Otros cursos y talleres

    Cursos y talleres de 3, 10, 20 ms horas

    Introduccin al Lego Mindstorms NXT Programacin de Lego Mindstorms NXT con Java

    Programacin avanzada de Lego Mindstorms NXT

    con Java Diseo y construccin de robots usando

    microcontroladores PIC de Microchip

    Programacin de PICs con PICBasic, Ensamblador

    o Niple

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    56/57

    www.RobotSA.com56

    Niple

    Programacin de Robots Lego NXT con Java M.I.A. Julio Csar Sandria Reynoso

  • 7/22/2019 Sandria2009 Pr Nxt j 05e

    57/57

    Gracias por su atencin!

    M.I.A. Julio Csar Sandria [email protected]

    Ing. Mauricio Vargas Drame

    RobotSA Robtica, Sistemas y Automatizacin

    http://www.RobotSA.com