Tutorial de programación lego mindstorms nxt

70
Grupo de Tecnología Educativa (GTE) UNIVERSIDAD ANDRES BELLO Proyecto Explora ED12/011 “Interescolar de Robótica Educativa para todos los Chilenos” Tutorial de Programación LEGO MINDSTORMS NXT

Transcript of Tutorial de programación lego mindstorms nxt

Page 1: Tutorial de programación lego mindstorms nxt

Grupo de Tecnología Educativa (GTE)

UNIVERSIDAD ANDRES  BELLO

Proyecto Explora ED12/011

“Interescolar de Robótica Educativa para todos los Chilenos”

Tutorial de Programación 

LEGO MINDSTORMS NXT 

Page 2: Tutorial de programación lego mindstorms nxt

Introducción

El Grupo de Tecnología Educativa, dependientes de la Facultad de Ingeniería de la Universidad Andrés Bello, en conjunto con el programa Explora Conicyt enmarcados en el Proyecto de Valoración y Divulgación adjudicado el año 2008, que lleva por nombre “Interescolar de Robótica Educativa para todos los Chilenos” código ED12/011, presenta una nueva herramienta educativa para las comunidades tecnológicas formadas por el proyecto durante el transcurso del presente año.

Esta herramienta permite a las comunidades tecnológicas que poseen kit de robótica Lego NXT, conocer las distintas funciones que posee el software “Lego Mindstorms NXT education” para realizar su programación y también permite conocer las distintas piezas que presenta el Kit en base a los distintos sensores, y la forma de aplicar conocimientos educativos en base a esta herramienta.

Page 3: Tutorial de programación lego mindstorms nxt

• Conocer el Kit lego NXT, en base a las piezas y funciones que éste posee.

• Entregar conocimientos básicos de programación, referente al software “Lego Mindstorms NXT Education”

• Entregar una herramienta para los profesores y alumnos de las comunidades tecnológicas, para realizar sus clases de robótica, relacionadas al Kit Lego NXT.

Objetivos

Page 4: Tutorial de programación lego mindstorms nxt

Primero que todo, debemos entender:

¿Que diferencia un robot de una máquina?

Page 5: Tutorial de programación lego mindstorms nxt

Sentidos Planificación Acción

Page 6: Tutorial de programación lego mindstorms nxt

Los sensores del Kit LEGO NXT

Sensor de Tacto Sensor de Luz Sensor de Sonido

Sensor  Ultrasónico

Page 7: Tutorial de programación lego mindstorms nxt

Los sensores del Kit LEGO NXT

Sensor de Rotación incorporado con el motor

Page 8: Tutorial de programación lego mindstorms nxt

Otros Sensores

Sensor Brújula

Sensor de Color

Sensor de Inclinación y Aceleración

Page 9: Tutorial de programación lego mindstorms nxt

Controlador NXT

Page 10: Tutorial de programación lego mindstorms nxt

Controlador NXT

Page 11: Tutorial de programación lego mindstorms nxt
Page 12: Tutorial de programación lego mindstorms nxt

Menú NXT

El robot NXT consta de una pantalla con varias opciones que nos permiten tener mas opciones para programar de forma mas optima nuestro robot, agregar sonidos, imágenes y hasta realizar pruebas sin necesidad de tener el programa NXT-G para realizar pruebas de motores y/o sensores.

Page 13: Tutorial de programación lego mindstorms nxt

Menú NXT

Page 14: Tutorial de programación lego mindstorms nxt
Page 15: Tutorial de programación lego mindstorms nxt

Programación del Robot NXT

Page 16: Tutorial de programación lego mindstorms nxt

El Programa

2

1

Page 17: Tutorial de programación lego mindstorms nxt

El Programa

Page 18: Tutorial de programación lego mindstorms nxt

Paletas de FuncionesBásica Completa Personalizada

Page 19: Tutorial de programación lego mindstorms nxt

Programación Básica

Page 20: Tutorial de programación lego mindstorms nxt

Paleta BásicaLa paleta básica nos permite desarrollar un programa con todas sus características, pero si deseamos ahondar y ejecutar acciones mas especificas es recomendable utilizar la paleta Completa.

Movimiento

Mostrar por Pantalla

Sonido

Grabar / Reproducir

Esperar por

Recursiones

Condicional

Page 21: Tutorial de programación lego mindstorms nxt

Ejercicio 1:

Realizar la siguiente acción con el robot:Que avance por 4 segundos con los motores

conectados en los puertos B y C y luego se detenga.

Para realizar esta acción debemos arrastrar el icono de movimiento y ubicarlo en la línea del programa.

Así, podremos ver las opciones de cada icono en la parte inferior del programa.

Page 22: Tutorial de programación lego mindstorms nxt

Ejercicio 1: SoluciónNuestro primer programa queda así:

Estableciendo las siguientes opciones:

Motores B y CAvanzar 4 Segundos Detenerse (Freno)

Solo nos falta descargar el programa al NXT!

Page 23: Tutorial de programación lego mindstorms nxt

Transferir un programa al NXTPara esto necesitamos conectar un extremo del cable USB al NXT, y el otro extremo al Computador.

Page 24: Tutorial de programación lego mindstorms nxt

Transferir un programa al NXT

Ahora solo nos queda transferir el programa a nuestro robot.

Hacemos clic en la opción “Download and Run” y el programa buscara un NXT conectado, si lo encuentra comenzara a bajar el programa a nuestro robot y cuando lo descargue se comenzara a ejecutar automáticamente.

Page 25: Tutorial de programación lego mindstorms nxt

Seleccionamos “NXT Windows”

Click en la Pestaña Memory

Debido a los tipos de datos que podemos almacenar en el NXT, ya sea, sonidos , imágenes, o los mismos programas debemos tener siempre presente la cantidad de memoria que tenemos. Así evitaremos posibles problemas de memoria al cargar nuestros programas al NXT.

Administración de Memoria

Page 26: Tutorial de programación lego mindstorms nxt

1 Barra nivel de uso de memoria2 Memoria no usada(Área Gris)3 Lista Programas/Imagen/Sonido4 Borrar Selección5 Descargar selección al NXT6 Cargar selección al PC.7 Borrar todo8 Información del NXT :‐Nombre del NXT‐Nivel de batería‐Tipo de Conexión (USB)‐Espacio libre de almacenamiento ‐Versión del Firmware

1 Barra nivel de uso de memoria2 Memoria no usada(Área Gris)3 Lista Programas/Imagen/Sonido4 Borrar Selección5 Descargar selección al NXT6 Cargar selección al PC.7 Borrar todo8 Información del NXT :‐Nombre del NXT‐Nivel de batería‐Tipo de Conexión (USB)‐Espacio libre de almacenamiento ‐Versión del Firmware

Administración de Memoria

Page 27: Tutorial de programación lego mindstorms nxt

Ejercicio 2:Realizar la siguiente acción con el robot:

Que avance por 4 segundos con los motores conectados en los puertos B y C, que reproduzca el sonido “Good bye” y se devuelva.

Archivo de Sonido Reproducir

Seleccionar el Archivo de Sonido

Esperar que se reproduzca completamente

Page 28: Tutorial de programación lego mindstorms nxt

El robot debe avanzar por 3 segundos, girar a la derecha por 3 segundos y tocar una nota musical por 1,5 segundos.

Actividad 1:

Page 29: Tutorial de programación lego mindstorms nxt

El robot debe avanzar por 3 segundos, girar a la derecha por 3 segundos y tocar una nota musical por 1,5 segundos.

Actividad 1:

Page 30: Tutorial de programación lego mindstorms nxt

Sensores

Page 31: Tutorial de programación lego mindstorms nxt

Sensor de Rotación

A diferencia del su antecesor (RCX), el NXT viene con un sensor de rotación incorporado en cada motor, mas preciso ya que nos permite ingresar en la programación si deseamos movernos por rotaciones o por grados (Angulo).

Page 32: Tutorial de programación lego mindstorms nxt

Hacer que el robot avance 5 vueltas y luego se detenga.

Actividad 2:

Page 33: Tutorial de programación lego mindstorms nxt

Hacer que el robot avance 5 vueltas y luego se detenga.

Actividad 2:

5 Rotaciones o Vueltas del Motor

Con esta opción hacemos que luego de cumplir su condición el motor Frene

Page 34: Tutorial de programación lego mindstorms nxt

Sensor de Tacto

Page 35: Tutorial de programación lego mindstorms nxt

Cuando el sensor de contacto no se presione, los motores conectados en B y C deben retroceder y al presionar el sensor de tacto se deben apagar.

Actividad 3:

Page 36: Tutorial de programación lego mindstorms nxt

Cuando el sensor de contacto no se presione, los motores conectados en B y C deben retroceder y al presionar el sensor de tacto se deben apagar.

Actividad 3:

Page 37: Tutorial de programación lego mindstorms nxt

Sensor de Luz

Page 38: Tutorial de programación lego mindstorms nxt

Que el robot avance hasta una línea negra, se detenga 2 segundos y luego que gire 3 segundos.

Actividad 4:

Page 39: Tutorial de programación lego mindstorms nxt

Que el robot avance hasta una línea negra, se detenga 2 segundos y luego que gire 3 segundos.

Actividad 4:

Page 40: Tutorial de programación lego mindstorms nxt

Sensor de Sonido

Page 41: Tutorial de programación lego mindstorms nxt

Cuando no exista un sonido fuerte, el robot debe avanzar hasta que escuche un sonido sobre un porcentaje de 50.

Actividad 5:

Page 42: Tutorial de programación lego mindstorms nxt

Cuando no exista un sonido fuerte, el robot debe avanzar hasta que escuche un sonido sobre un porcentaje de 50.

Actividad 5:

Page 43: Tutorial de programación lego mindstorms nxt

Sensor Ultrasónico

Page 44: Tutorial de programación lego mindstorms nxt

Sensor UltrasónicoEl sensor ultrasónico tiene la capacidad de detectar objetos principalmente rectos ya que funciona por medio de un emisor de señales de ultrasonido y un receptor que recibe estas señales cuando rebotan en un objeto frente al sensor.

Page 45: Tutorial de programación lego mindstorms nxt

El robot debe avanzar hasta que encuentre un objeto a una distancia menor que 10 centímetros.

Actividad 6:

Page 46: Tutorial de programación lego mindstorms nxt

El robot debe avanzar hasta que encuentre un objeto a una distancia menor que 10 centímetros.

Actividad 6:

Mas cerca que

Distancia

Unidad de Medida

Page 47: Tutorial de programación lego mindstorms nxt

Recursiones / Loops

Page 48: Tutorial de programación lego mindstorms nxt

Recursiones

Las Recursiones o “Loops”son estructuras de programación que nos permiten hacer que una tarea se repita tantas veces como nuestro programa lo requiera. Las opciones de repetición pueden ser las siguientes:

• Recursión Infinita• Condiciones de sensor• Recursión por tiempo• Recursión por Contador• Por lógica (1/0 – V/F)

Page 49: Tutorial de programación lego mindstorms nxt

Actividad 7:Explicar el funcionamiento del siguiente programa:

Page 50: Tutorial de programación lego mindstorms nxt

Actividad 7:Explicar el funcionamiento del siguiente programa:

Mientras el sensor de tacto este suelto, avanzar hasta que el sensor de sonido detecte un sonido mas fuerte que el establecido, detenerse. Reproducir un sonido de un Archivo y esperar 2 segundos.

Page 51: Tutorial de programación lego mindstorms nxt

Bifurcaciones / Condicionales

Page 52: Tutorial de programación lego mindstorms nxt

Condicionales

Las bifurcaciones como su nombre lo dicen toman 2 caminos, pero en este caso depende de la variable que tomemos como condición.

Estas pueden tomar la condición por sensores o por valores lógicos (Verdadero/ Falso)

Page 53: Tutorial de programación lego mindstorms nxt

EjemploEl siguiente programa realizado con condicional enciende

una lámpara cuando se presiona el sensor de tacto y la apaga cuando este se suelta.

Condición Verdadera

Condición Falsa

Page 54: Tutorial de programación lego mindstorms nxt

Tareas Simultaneas

Page 55: Tutorial de programación lego mindstorms nxt

Tareas Simultaneas

En NXT-G no es necesario el utilizar un icono para realizar tareas simultaneas, sino que solo arrastrando una línea de programa hacia nuestra nueva tarea podemos lograr mas de una tarea ejecutada al mismo tiempo

Page 56: Tutorial de programación lego mindstorms nxt

EjemploEn el siguiente programa podemos apreciar el uso de las

tareas simultaneas. Que hace el programa?

Page 57: Tutorial de programación lego mindstorms nxt

Variables

En las variables podemos guardar valores numéricos, lógicos y de texto que podemos usar en sensores o para mostrar por la pantalla del NXT

1

2

3

Page 58: Tutorial de programación lego mindstorms nxt

EjemploEl siguiente programa toma el valor del sensor de luz y luego

lo muestra por pantalla.

Sensor de Luz 

Guarda Valor en una Variable

Convierte de Numero a Texto

Muestra Texto por Pantalla

Page 59: Tutorial de programación lego mindstorms nxt

Bloques Personalizados

Page 60: Tutorial de programación lego mindstorms nxt

Bloques PersonalizadosCuando utilizamos la misma rutina varias veces seguidas, siempre es bueno tener un bloque de este tipo para ahorrar tiempo a la hora de programar, además ahorras espacio en tu diagrama.

Seleccionar la rutina que haremos un bloque.

Ingresar nombre y descripción

Page 61: Tutorial de programación lego mindstorms nxt

EjemploCrear un bloque de la siguiente rutina.

Nombre y Descripción

Crear un icono

Page 62: Tutorial de programación lego mindstorms nxt

Crear un bloque de la siguiente rutina.

Ejemplo

Y el icono de la rutina quedara asi.

Page 63: Tutorial de programación lego mindstorms nxt

Aplicando Conocimientos

Page 64: Tutorial de programación lego mindstorms nxt

Ejercicio Propuesto 1El robot debe avanzar hasta chocar, luego girar en 180º y

volver a realizar la misma acción.

Nota: No necesariamente debemos utilizar el sensor de rotación para el giro, esto depende de cómo este construido nuestro robot. Para este caso utilizaremos tiempo, el que dependerá del roce del la superficie.

Page 65: Tutorial de programación lego mindstorms nxt

Ejercicio Propuesto 2El robot debe seguir el borde de una línea negra.

Page 66: Tutorial de programación lego mindstorms nxt

Ejercicio Propuesto 3El robot debe cumplir la función de despertador, cuando

salga el sol debe tocar un sonido (Alarma).

Page 67: Tutorial de programación lego mindstorms nxt

Ejercicio Propuesto 4El robot debe esquivar cualquier objeto que este a una

distancia de menos de 20 centímetros frente a él.

Page 68: Tutorial de programación lego mindstorms nxt

Ejercicio Propuesto 5El robot debe avanzar en cualquier dirección por 2 segundos

cuando escuche un sonido, y cuando no lo escuche debe detenerse.

Page 69: Tutorial de programación lego mindstorms nxt

Fin

Page 70: Tutorial de programación lego mindstorms nxt

Tutorial de Programación 

LEGO MINDSTORMS NXT