Está en la página 1de 70
Grupo de Tecnología Educativa (GTE) UNIVERSIDAD ANDRES BELLO Proyecto Explora ED12/011 “Interescolar de

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

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

Objetivos

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

Primero que todo, debemos entender:

Primero que todo, debemos entender: ¿Que diferencia un robot de una máquina?

¿Que diferencia un robot de una máquina?

Sentidos Planificación
Sentidos
Planificación

Acción

Los sensores del Kit LEGO NXT

Sensor de Tacto

Los sensores del Kit LEGO NXT Sensor de Tacto Sensor de Luz Sensor de Sonido Sensor

Sensor de Luz

Los sensores del Kit LEGO NXT Sensor de Tacto Sensor de Luz Sensor de Sonido Sensor

Sensor de

Sonido

Sensor

Ultrasónico

Los sensores del Kit LEGO NXT Sensor de Tacto Sensor de Luz Sensor de Sonido Sensor
Los sensores del Kit LEGO NXT Sensor de Tacto Sensor de Luz Sensor de Sonido Sensor
Los sensores del Kit LEGO NXT Sensor de Tacto Sensor de Luz Sensor de Sonido Sensor

Los sensores del Kit LEGO NXT

Sensor de Rotación incorpor ado con el motor

Los sensores del Kit LEGO NXT Sensor de Rotación incorpor ado con el motor
Los sensores del Kit LEGO NXT Sensor de Rotación incorpor ado con el motor

Otros Sensores

Sensor

Brújula

Otros Sensores Sensor Brújula Sensor de Color Sensor de Inclinación y Aceleración
Otros Sensores Sensor Brújula Sensor de Color Sensor de Inclinación y Aceleración

Sensor de

Color

Otros Sensores Sensor Brújula Sensor de Color Sensor de Inclinación y Aceleración
Otros Sensores Sensor Brújula Sensor de Color Sensor de Inclinación y Aceleración

Sensor de Inclinación y Aceleración

Otros Sensores Sensor Brújula Sensor de Color Sensor de Inclinación y Aceleración
Otros Sensores Sensor Brújula Sensor de Color Sensor de Inclinación y Aceleración

Controlador NXT

Controlador NXT

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

Menú NXT

Programación del Robot NXT

El Programa

1
1
2
2

El Programa

El Programa

Paletas de Funciones

Básica

Paletas de Funciones Básica Completa Personalizada

Completa

Personalizada

Paletas de Funciones Básica Completa Personalizada
Paletas de Funciones Básica Completa Personalizada

Programación Básica

Paleta Básica

La 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 Grabar / Reproducir So nido Mostrar por Pantalla Recursiones Condicional
Movimiento
Grabar /
Reproducir
So nido
Mostrar por
Pantalla
Recursiones
Condicional

Es pera r por

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.

icono de movimiento y ubicarlo en la línea del programa. Así, podremos ver las opciones de

Así, podremos ver las opciones

de cada icono en la parte inferior

del programa.

y ubicarlo en la línea del programa. Así, podremos ver las opciones de cada icono en

Ejercicio 1: Solución

Nuestro primer programa queda así:

Ejercicio 1: Solución Nuestro primer programa queda así: Estableciendo las siguientes opciones: Avanzar Motores B y

Estableciendo las siguientes opciones:

Avanzar

Motores B y C

4 Segundos

Detenerse (Freno)

las siguientes opciones: Avanzar Motores B y C 4 Segundos Detenerse (Freno) Solo nos falta descargar
las siguientes opciones: Avanzar Motores B y C 4 Segundos Detenerse (Freno) Solo nos falta descargar
las siguientes opciones: Avanzar Motores B y C 4 Segundos Detenerse (Freno) Solo nos falta descargar
las siguientes opciones: Avanzar Motores B y C 4 Segundos Detenerse (Freno) Solo nos falta descargar
las siguientes opciones: Avanzar Motores B y C 4 Segundos Detenerse (Freno) Solo nos falta descargar

Solo nos falta descargar el programa al NXT!

Transferir un programa al NXT

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

un programa al NXT Para esto necesitamos conectar un extremo del cable USB al NXT, y
un programa al NXT Para esto necesitamos conectar un extremo del cable USB al NXT, y
un programa al NXT Para esto necesitamos conectar un extremo del cable USB al NXT, y

Transferir un programa al NXT

Ahora solo nos queda transferir el programa a nuestro robot.

Ahora solo nos queda transferir el programa a nuestro robot. Hacemos clic en la opción “Download

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.

encuentra comenzara a bajar el programa a nuestro robot y cuando lo descargue se comenzara a

Administración de Memoria

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.

Seleccionamos “NXT Windows”

problemas de memoria al cargar nuestros programas al NXT. Seleccionamos “NXT Windows” Click en la Pestaña
problemas de memoria al cargar nuestros programas al NXT. Seleccionamos “NXT Windows” Click en la Pestaña

Click en la Pestaña Memory

problemas de memoria al cargar nuestros programas al NXT. Seleccionamos “NXT Windows” Click en la Pestaña
problemas de memoria al cargar nuestros programas al NXT. Seleccionamos “NXT Windows” Click en la Pestaña

Administración de Memoria

1 1 Barra Barra nivel nivel de de uso uso de de memoria memoria 2
1
1
Barra Barra nivel nivel de de uso uso de de memoria memoria
2
2
Memoria Memoria no no usada(Área usada(Área Gris) Gris)
3
3
Lista Lista Programas/Imagen Programas/Imagen/Sonido / Sonido
4
4
Borrar Borrar Selección Selección
5
5
Desc Descargar arga r selección selección al al NXT NXT
6
6
Cargar Cargar selección selección al al PC. PC.
7
7
Borrar Borrar todo tod o
8
8
Información Información del del NXT NXT : :
‐ ‐ Nombre Nombre del del NXT NXT
‐ ‐ Nivel Nivel de de batería batería
‐ ‐ Tipo Tipo de de Conexión Conexión (USB) (USB)
‐ ‐ Espacio Espacio libre libre de de
almacenamiento almacenamiento
‐ ‐ Versión Versión del del Firmware Firmware
‐ Espacio Espacio libre libre de de almacenamiento almacenamiento ‐ ‐ Versión Versión del del Firmware

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.

C, que reproduzca el sonido “Good bye” y se devuelva. Reproducir Seleccionar el Archivo de Sonido

Reproducir

Seleccionar el Archivo de Sonido

y se devuelva. Reproducir Seleccionar el Archivo de Sonido Archivo de Sonido Esperar que se reproduzca

Archivo de Sonido

y se devuelva. Reproducir Seleccionar el Archivo de Sonido Archivo de Sonido Esperar que se reproduzca
y se devuelva. Reproducir Seleccionar el Archivo de Sonido Archivo de Sonido Esperar que se reproduzca
y se devuelva. Reproducir Seleccionar el Archivo de Sonido Archivo de Sonido Esperar que se reproduzca
y se devuelva. Reproducir Seleccionar el Archivo de Sonido Archivo de Sonido Esperar que se reproduzca

Esperar que se reproduzca completamente

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:

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

1: El robot debe avanzar por 3 segundos, girar a la derecha por 3 segundos y

Sensores

Sensor de Rotación

Sensor de Rotación A diferencia del su antecesor (RCX), el NXT viene con un sensor de

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

mas preciso ya que nos permite ingresar en la programación si deseamos movernos por rotaciones o

Actividad 2:

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

Actividad 2:

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

2: Hacer que el robot avance 5 vueltas y luego se detenga. Con esta opción hacemos

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

5 Rotaciones o Vueltas del Motor

se detenga. Con esta opción hacemos que luego de cumplir su condición el motor Frene 5
se detenga. Con esta opción hacemos que luego de cumplir su condición el motor Frene 5
se detenga. Con esta opción hacemos que luego de cumplir su condición el motor Frene 5

Sensor de Tacto

Sensor de Tacto
Sensor de Tacto
Sensor de Tacto

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:

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.

no se presione, los motores conectados en B y C deben retroceder y al presionar el

Sensor de Luz

Sensor de Luz
Sensor de Luz
Sensor de Luz

Actividad 4:

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: Que el robot avance hasta una línea negra, se detenga 2 segundos y luego

Sensor de Sonido

Sensor de Sonido
Sensor de Sonido
Sensor de Sonido

Actividad 5:

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.

5: Cuando no exista un sonido fuerte, el robot debe avanzar hasta que escuche un sonido

Sensor Ultrasónico

Sensor Ultrasónico
Sensor Ultrasónico
Sensor Ultrasónico

Sensor Ultrasónico

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

emisor de señales de ultrasonido y un receptor que recibe estas señales cuando rebotan en un
emisor de señales de ultrasonido y un receptor que recibe estas señales cuando rebotan en un

Actividad 6:

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.

hasta qu e encuentre un objeto a una distancia menor que 10 centímetros. Unidad de Medida

Unidad de

Medida

Mas cerca

Distanci

hasta qu e encuentre un objeto a una distancia menor que 10 centímetros. Unidad de Medida
a
a

que

hasta qu e encuentre un objeto a una distancia menor que 10 centímetros. Unidad de Medida
hasta qu e encuentre un objeto a una distancia menor que 10 centímetros. 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)

Infinita • Condiciones de sensor • Recursión por tiempo • Recursión por Contador • Por lógica
Infinita • Condiciones de sensor • Recursión por tiempo • Recursión por Contador • Por lógica

Actividad 7:

Explicar el funcionamiento del siguiente programa:

Actividad 7: Explicar el funcionamiento del siguiente programa:

Actividad 7:

Explicar el funcionamiento del siguiente programa:

7: Explicar el funcionamiento del siguiente programa: Mientras el sensor de tacto este suelto, avanzar hasta

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.

pueden tomar la

condición por sensores o por

valores lógicos (Verdadero/ Falso)

Estas

que tomemos como condición. pueden tomar la condición por sensores o por valores lógicos (Verdadero/ Falso)
que tomemos como condición. pueden tomar la condición por sensores o por valores lógicos (Verdadero/ Falso)

Ejemplo

El siguiente programa realizado con condicional enciende una lámpara cuando se presiona el sensor de tacto y la apaga cuando este se suelta.

lámpara cuando se presio na 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

arrastrando una línea de programa hacia nuestra nueva tarea podemos lograr mas de una tarea ejecutada

Ejemplo

En el siguiente programa podemos apreciar el uso de las tareas simultaneas. Que hace el programa?

Ejemplo En el siguiente programa podemos apreciar el uso de las tareas simultaneas. Que hace el

Variables

1
1

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

2
2
3
3

Ejemplo

El siguiente programa toma el valor del sensor de luz y luego lo muestra por pantalla.

el valor del sensor de luz y luego lo muestra por pantalla. Convierte de Numero a
el valor del sensor de luz y luego lo muestra por pantalla. Convierte de Numero a
el valor del sensor de luz y luego lo muestra por pantalla. Convierte de Numero a
el valor del sensor de luz y luego lo muestra por pantalla. Convierte de Numero a

Convierte de Numero a Texto

lo muestra por pantalla. Convierte de Numero a Texto Muestra Texto por Pantalla Sensor de Luz

Muestra Texto por Pantalla

por pantalla. Convierte de Numero a Texto Muestra Texto por Pantalla Sensor de Luz Guarda Valor

Sensor de

Luz

Guarda Valor en una Variable

por pantalla. Convierte de Numero a Texto Muestra Texto por Pantalla Sensor de Luz Guarda Valor

Bloques Personalizados

Bloques Personalizados

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

hora de programar, además ahorras espacio en tu diagrama. Seleccionar la rutina que haremos un bloque.

Seleccionar la rutina que haremos un bloque.

además ahorras espacio en tu diagrama. Seleccionar la rutina que haremos un bloque. Ingresar nombre y

Ingresar nombre y descripción

Ejemplo

Ejemplo Crear un bloque de la siguiente rutina. Nombre y Descripción Crear un icono

Crear un bloque de la siguiente rutina.

Nombre y Descripción
Nombre y
Descripción
Ejemplo Crear un bloque de la siguiente rutina. Nombre y Descripción Crear un icono
Ejemplo Crear un bloque de la siguiente rutina. Nombre y Descripción Crear un icono

Crear un

icono

Ejemplo

Crear un bloque de la siguiente rutina.

Ejemplo Crear un bloque de la siguiente rutina. Y el icono de la rutina quedara asi.
Ejemplo Crear un bloque de la siguiente rutina. Y el icono de la rutina quedara asi.

Y el icono de la rutina quedara asi.

Aplicando Conocimientos

Ejercicio Propuesto 1

El robot debe avanzar hasta chocar, luego girar en 180º volver a realizar la misma acción.

y

luego girar en 180º volver a realizar la misma acción. y Nota: No necesariamente debemos utilizar

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

Ejercicio Propuesto 2

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

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

Ejercicio Propuesto 3

El robot debe cumplir la función de despertador, cuando salga el sol debe tocar un sonido (Alarma).

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

Ejercicio Propuesto 4

El robot debe esquivar cualquier objeto que este a una distancia de menos de 20 centímetros frente a él.

Propuesto 4 El robot debe esquivar cualquier objeto que este a una distancia de menos de

Ejercicio Propuesto 5

El robot debe avanzar en cualquier dirección por 2 segundos cuando escuche un sonido, y cuando no lo escuche debe detenerse.

debe avanzar en cual quier dirección por 2 segundos cuando escuche un sonido, y cuando no

Fin

Tutorial de Programación LEGO MINDSTORMS NXT

Tutorial de Programación LEGO MINDSTORMS NXT

Tutorial de Programación LEGO MINDSTORMS NXT