Tutorial de programación lego mindstorms nxt

Preview:

Citation preview

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 

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.

• 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

Primero que todo, debemos entender:

¿Que diferencia un robot de una máquina?

Sentidos Planificación Acción

Los sensores del Kit LEGO NXT

Sensor de Tacto Sensor de Luz Sensor de Sonido

Sensor  Ultrasónico

Los sensores del Kit LEGO NXT

Sensor de Rotación incorporado con el motor

Otros Sensores

Sensor Brújula

Sensor de Color

Sensor de Inclinación y Aceleración

Controlador NXT

Controlador 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.

Menú NXT

Programación del Robot NXT

El Programa

2

1

El Programa

Paletas de FuncionesBásica Completa Personalizada

Programación Básica

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

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.

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!

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

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.

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

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

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

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:

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:

Sensores

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).

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

Actividad 2:

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

Sensor de Tacto

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:

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:

Sensor de Luz

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

Actividad 4:

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

Actividad 4:

Sensor de Sonido

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

Actividad 5:

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

Actividad 5:

Sensor Ultrasónico

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.

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

Actividad 6:

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

Recursiones / Loops

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)

Actividad 7:Explicar el funcionamiento del siguiente programa:

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.

Bifurcaciones / Condicionales

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)

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

Tareas Simultaneas

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

EjemploEn el siguiente programa podemos apreciar el uso de las

tareas simultaneas. Que hace el programa?

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

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

Bloques Personalizados

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

EjemploCrear un bloque de la siguiente rutina.

Nombre y Descripción

Crear un icono

Crear un bloque de la siguiente rutina.

Ejemplo

Y el icono de la rutina quedara asi.

Aplicando Conocimientos

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.

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

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

salga el sol debe tocar un sonido (Alarma).

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

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

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

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

Fin

Tutorial de Programación 

LEGO MINDSTORMS NXT