Está en la página 1de 19

TPP II

Área de Educación Tecnológica


Tecnología de los Procesos Productivos II
3° Año

Cuadernillo Nº3

Programación de sistemas.
LEGO MINDSTORMS NXT 

Alumno:

Curso:

Año: 2011

TPP II Cuadernillo Nº 3 Pág. 1/19


TPP II

PAUTAS PARA LA PRESENTACION DEL TP N°3

 Para la presentación del TP debes generar un archivo en Word que contenga


todas las respuestas a los ejercicios y desafíos
 El nombre del archivo Word deberá ser Trabajo Práctico N°2
 El archivo deberá estar guardado en el disco correspondiente a la sesión del grupo
 La primera página incluirá una carátula con toda la información necesaria:
- Asignatura
- Título: “Trabajo Práctico N°2 - Programación de sistemas - LEGO NXT”
- Nombre de los docentes
- Nombre de los integrantes del grupo
- Número de Grupo
- Curso
 La segunda página debe incluir un índice que indique en que página se encuentra
cada ejercicio.
 Cada página debe tener como pié de página el código del grupo, el número de
página y los apellidos de los integrantes.
 Para cada ejercicio deberás incluir una imagen del Mindstorms y el diagrama de
flujo correspondiente.

No dejes los diagramas de flujo para el final, ya que los ejercicios no se


considerarán completos si no los incluyen.

TPP II Cuadernillo Nº 3 Pág. 2/19


TPP II

El robot NXT

El controlador.
El ladrillo inteligente LEGO NXT, es el cerebro de nuestro robot. Es un
microprocesador, con puertos de entrada, de salida y memoria para almacenar
nuestros programas, que se comunica con la PC a través de un puerto USB o
Bluetooth.
1. Puerto USB. Mediante la conexión a
este puerto, se pueden descargar los
programas desde la PC o actualizar los
datos desde el robot a la PC.
2. Puertos de Salida. El NXT tiene tres
puertos de salida, etiquetados como A, B y
C para usarlos con lámparas o motores.
3. Icono de Bluetooth. Muestra el estado
actual de este tipo de conexión
inalámbrica.
4. Icono del USB. Aparece en el caso de
que el NXT esté conectado a la PC con un
cable USB.
5. Conexión al adaptador de corriente.
En el caso de que sea necesario recargar
la batería, y no se esté utilizando pilas tipo
AA, se puede conectar el robot a un
adaptador de corriente.

TPP II Cuadernillo Nº 3 Pág. 3/19


TPP II

1. Funcionamiento. Cuando el NXT está


encendido, este icono se activa

2. Nivel de batería. Este icono muestra el


nivel de carga de la batería; cuando éste es
bajo (por debajo del 10 % de su capacidad), el
icono parpadea.

3. Parlante. Cuando se incluyen sonidos en un


programa, se pueden escuchar a través del
altavoz.

4. Botones de control

- Naranja: Encender/Enter.

- Grises: Navegación, izquierda y derecha.

- Gris oscuro: borrar/atrás.

5. Puertos de entrada. El NXT tiene cuatro


puertos de entrada para el uso de los
sensores. Se etiquetan como 1, 2, 3 y 4.
El menú del controlador
Software Files Programas bajados desde la PC
My Files NXT Flies Programas creados directamente en el NXT
Sound Files Archivos de sonido
NXT
En este sub-menú se puede programar directamente el NXT
Programs
Programas precargados para probar motores y sensores. Deben
Try Me
usarse los puertos predeterminados
Permite visualizar el estado de los motores y sensores en tiempo
View
real
Puede ajustar el volumen del sonido del NXT, ajustar el modo
Setting "sleep" para apagar automáticamente el NXT y también borrar
programas
Permite ajustar los distintos parámetros de la comunicación
Bluetooth
inalámbrica

TPP II Cuadernillo Nº 3 Pág. 4/19


TPP II

Los motores del robot


podemos montar el motor en un eje y utilizarlo como sensor de rotación.
Sensor embutido de rotación.
Los servomotores interactivos tienen un
sensor de rotación embutido en cada uno de
ellos. La retroalimentación rotacional
permite al NXT controlar movimientos de
forma muy precisa. El sensor embutido de
rotación mide los giros del motor en grados
(precisión de +/- un grado) o en vueltas
completas. Un giro completo equivale a 360
grados, así que si se establece que el motor
gire 180 grados, el vehículo realizará media
vuelta.

A programar!
Para programar el NXT, utilizaremos el programa NXT-G, lenguaje gráfico basado en
LabView de National Instruments.

Pantalla de inicio

TPP II Cuadernillo Nº 3 Pág. 5/19


TPP II

Área de trabajo y control de descarga de programas

TPP II Cuadernillo Nº 3 Pág. 6/19


TPP II

Paleta básica:

Transferir un programa al NXT


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

TPP II Cuadernillo Nº 3 Pág. 7/19


TPP II

Bloque VISUALIZAR
Este bloque se utiliza para visualizar una imagen, escribir texto o dibujar
una forma en la pantalla de visualización del NXT. Si colocamos diversos
bloques Display en fila se pueden crear dibujos más complejos,
añadiendo imágenes, texto y formas adicionales con cada nuevo bloque
Display. Si se desea borrar el contenido de la pantalla antes de empezar,
debe activarse la casilla de verificación "Borrar".
La pantalla mide 100 píxeles de ancho por 64 píxeles de alto.

Bloque ESPERAR
Se configura el tiempo que el programa hace una pausa antes de continuar
con el bloque siguiente.
Se deben elegir cuántos segundos desea esperar antes de que el programa
continúe.

Ejemplo – Utilización del bloque VISUALIZAR (pantalla del NXT)


El siguiente programa muestra una imagen por 3 minutos, luego agrega un texto por
otros 3 minutos y finaliza.
Copia el siguiente ejemplo y comprueba su funcionamiento.

El borrado debe estar desactivado para


que el texto se agregue al dibujo

Estas son las coordenadas de ubicación del texto

TPP II Cuadernillo Nº 3 Pág. 8/19


TPP II

Bloque de MOVER
Este bloque se utiliza para configurar el robot para que avance y retroceda en línea
recta o gire siguiendo una curva.
Ejemplo – Utilización del bloque MOVER

El siguiente es un programa para que el vehículo avance durante 4 segundos y se


detenga. Codifica el programa y comprueba su funcionamiento.

Parámetros del bloque:

Puertos de salida donde tenemos conectados


los dos motores: en el B y el C.
Sentido de avance: hacia delante.

Posición del volante (dirección): derecho

Potencia: 75%

Duración: debemos elegir 4 segundos

Siguiente acción: freno

TPP II Cuadernillo Nº 3 Pág. 9/19


TPP II

Comencemos con los Desafíos

Desafío 1:
Comencemos respondiendo las siguientes pregunta
que en los próximos desafíos lo utilizaremos.

1A –

A:- Carguemos el siguiente icono y con los


parámetros dados

B:- Si el robot no gira 90 grados variar la duración de rotación para que gire 90
grados.
C:- El resultado fue……………….duración de rotación giro 90 grados

1B –

A:- Carguemos el siguiente icono y con los


parámetros dados

B:- Si el robot no gira 90 grados variar los grados para que gire 90 grados.

C:- El resultado fue……………….grados de rotación equivale a un giro de


90 grados del robot

TPP II Cuadernillo Nº 3 Pág. 10/19


TPP II

1C –

A:- Carguemos el siguiente icono y con los


parámetros dados

B:- Si el robot no gira 90 grados variar los segundos para que gire 90 grados.
C:- El resultado fue……………….segundos giro 90 grados

1D –

A:- Carguemos el siguiente icono y con los parámetros dados

B:- verificar si el robot avanzo 10 CM en caso de que no, modificar el tiempo


hasta que se desplace 10 CM.
C:- El resultado fue……………….segundos se desplazo 10 cm

Desafío 2:
El robot debe avanzar durante 4 segundos y luego retroceder 4 segundos.

Desafío 3:
El robot debe avanzar 4 segundos, girar y regresar al punto de partida.

TPP II Cuadernillo Nº 3 Pág. 11/19


TPP II

Desafío 4:
El robot debe avanzar 10 segundos, girar 90° y retroceder 20 cm. Al retroceder
debe emitir un sonido. Al detenerse debe emitir otro sonido prolongado de
aviso.

Desafío 5:
El robot debe realizar una trayectoria con forma de cuadrado.

Bloque de BUCLE
Este bloque se utiliza para repetir secuencias de código. Se puede
configurar la condición que hará finalizar el bucle: el tiempo
transcurrido, el número de repeticiones, una señal lógica o un sensor.
También puede configurar un bucle infinito.
Ejemplo - bloque de BUCLE
En la resolución de los ejercicios 5, vemos que la misma secuencia se
repite varias veces, por lo que podríamos utilizar un nuevo bloque llamado
“bucle” de repetición, que nos permitirá ejecutar varias veces (en este caso
cuatro) la misma secuencia.

Para comenzar a utilizar este bloque realizaremos el siguiente ejemplo. En este


caso el robot repite 5 veces emitir un sonido y luego avanzar durante 1
segundo.

Los parámetros del bucle de repetición son los siguientes:

Programa el robot con este ejemplo y verifica el funcionamiento

TPP II Cuadernillo Nº 3 Pág. 12/19


TPP II

Desafío 6:
Repite el ejercicio 5 para realizar 9 cuadrados.

Desafío 7:
Repite el ejercicio 3 utilizando el bloque de BUCLE para que lo repita 15 veces
y luego mostrar una carita feliz
Desafío 8:
Realizar el programa para que el robot realice un 4 triángulo isósceles
seguidos.

TRABAJO CON SENSORES - Puertos predeterminados

Conociendo los distintos sensores de nuestro robot:


Sensor de choque
Le proporciona al robot el sentido del tacto, tanto cuando
se presiona como cuando se suelta.

Para ver la respuesta del sensor en la pantalla del NXT


hay que seleccionar la opción “View”. Conectar el sensor
táctil al puerto 1 (Port 1) del NXT.
1. Seleccionar “View” en la pantalla del NXT.
2. Seleccionar el icono del sensor ("Touch")
3. Seleccionar el puerto 1 (Port 1)
4. Mantener pulsado el botón del sensor táctil
mientras se observa la pantalla del NXT.
5. Ahora soltar el botón.
Completar:
Un _________ significa que el sensor no está pulsado.
Un __________ significa que si lo está.

Desafío 9:
El robot debe AVANZAR hasta que choca, emitir un sonido y luego retroceder 4
cm.

TPP II Cuadernillo Nº 3 Pág. 13/19


TPP II

Desafío A1 (avanzado):
El robot debe recorrer el circuito de la figura, los lados del rectángulo son
desconocidos, el rectángulo exterior es una pared sólida UTILIZAR UNAS DE
LAS MESAS DEL LABORATORIO.

Sensor de Luz
Le proporciona al robot el sentido de la visión.
Le permite al robot distinguir entre luz y oscuridad.
El sensor es monocromático, es decir puede distinguir
entre el blanco y el negro pasando por una gama de
grises, la lectura la entrega en porcentaje.
Seleccionar “View” en la pantalla del NXT.
1. Seleccionar el icono “Reflected light” (luz reflejada).
Seleccionar el puerto en el cual se tiene conectado el
sensor.
2. Mantener el Sensor de Luz cerca de diferentes colores
y ver las diferentes lecturas.
3. Seleccionar el icono “ambient Light” (luz ambiente).
Seleccionar el puerto al que se tiene conectado el
sensor.
4. Testear la luz ambiente con indicación en porcentajes.

Completar:
El color rojo mide _________.
El color negro mide __________.
El color blanco mide __________.

Ejemplo – Utilización del sensor de LUZ


Al igual que en el caso del sensor de tacto, queremos que el
robot avance hasta encontrar una línea negra, y se detenga.

TPP II Cuadernillo Nº 3 Pág. 14/19


TPP II

En realidad es exactamente el mismo programa, sólo debemos cambiar los


parámetros del panel de configuración del bloque de espera.

Para calibrar el sensor debemos medir la luz, en la superficie clara y tambien


en la línea negra, para ello utilizaremos la función “View” directamente en el
NXT, seleccionando la opción de “luz ambiente”.

Desafío 10:
Realizar un programa para que el vehículo avance sobre una superficie hasta
llegar una línea negra cuando la detecte retroceda hasta encontrar otra línea
negra. Cada vez que detecta una línea negra, debe emitir un sonido.

Desafío 11:
El robot debe avanzar hasta el borde de la mesa sin caerse.

Ejercicio A2 avanzado
“Siga la línea”

Ayudas:
1. Para seguir una línea negra, se utiliza un algoritmo que nos
permite desplazarnos por el borde de la línea. La idea es que
cuando el robot está sobre la superficie clara, gire a la
izquierda y cuando esté sobre la línea negra gire a la derecha.
Mediante este movimiento de zig-zag, se logra el objetivo.
2. Ya sabemos como programar los giros y la espera por color
negro, para la espera por color blanco sólo tenemos que
cambiar el signo menor “<” por mayor “>”, en el panel de
configuración del bloque de espera.

TPP II Cuadernillo Nº 3 Pág. 15/19


TPP II

CONDICIONALES
El problema del bloque “ESPERA”, es que si la condición de espera no se
cumple nunca, el programa no pasa al siguiente bloque. Para evitar esta
situación utilizaremos la instrucción “IF” o “SI”, que en el caso del
lenguaje de programación NXT-G se llama “Bifurcación”.
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).

Ejemplo de uso de CONDICIONES


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

Realiza el programa y comprueba su funcionamiento

TPP II Cuadernillo Nº 3 Pág. 16/19


TPP II

Sensor de Ultrasonido
Sensor Ultrasónico
El sensor de ultrasonido permite al robot
“ver” y reconocer objetos, eludir
obstáculos, medir distancias, y detectar
movimientos.
El sensor emite un sonido y mide el
tiempo que la señal tarda en regresar,
para luego calcular la distancia, a la cual
se encuentra el objeto u obstáculo.
Es el mismo principio utilizado por los
murciélagos y el sonar de las naves, tiene
una rango de 0 a 255 cm con una
precisión de +/- 3 cm.
“View”
1. Conectar el sensor al NXT. Seleccionar
“View” en la pantalla del NXT.
2. Seleccionar el icono del sensor de
ultrasonidos. Intentar medir la distancia a
un objeto. Mover el objeto acercándolo y
observar las diferentes lecturas.

Ejemplo – Utilización del bloque de BIFURCACION para


CONDICIONES
Vamos a realizar el programa del ejercicio 13 de la siguiente forma:
preguntamos por la condición del sensor de ultrasonido. Si es menor que 20
cm, nos detenemos de lo contrario seguimos avanzando.

TPP II Cuadernillo Nº 3 Pág. 17/19


TPP II

Fijate que si tomamos el robot y lo alejamos, seguirá avanzando hasta que la


distancia sea menos a 20 cm. Esta acción se repite en forma indefinida.

Realiza el programa y comprueba su funcionamiento.

Desafío 12:
Realiza el diagrama de bloques del robot.

Desafío 13:
Realizar un programa para que el robot muestre una cara sonriente si el sensor
de choque está pulsado, y si éste está sin pulsar, que muestre una cara triste.
No olvides utilizar el bloque de bifurcación.

Desafío 14:
En el ejercicio siguiente el robot debe responder al sensor de sonido. Si el
sensor de sonido detecta algún ruido este debe retroceder con 1/4 de giro. Si
no detecta ningún ruido debe detenerse.

Ejemplo con DOS CONDICIONES


Para ejemplificar el uso de dos condiciones, realizaremos el siguiente ejercicio:
el robot debe avanzar hasta 20 cm de la pared o hasta encontrar una línea
negra.
Lo que haremos es primero evaluar la condición de distancia y luego la
condición de luz. Cualquiera de las dos que sea verdadera detendrá el robot.

Es importante notar que podemos anidar bloques de “bifurcación”, es decir


poner uno dentro de otro. También podemos anidar “repeticiones”.

Este programa no es posible realizarlo con los bloques de “espera” ya que


quedamos a la espera de una condición eternamente.

TPP II Cuadernillo Nº 3 Pág. 18/19


TPP II

Bifurcación
anidada

Desafío 15:
Decisión de camino: el robot debe avanzar hasta que encuentre una línea
negra deberá girar 90 grados y emitir un sonido intermitentemente 5 veces por
10 segundos en cambio si encuentra una línea blanca se detendrá , retorcerá
10 centímetro.

Desafío 16:
Programar el robot para que se mueva según el nivel de ruido que hay en el
ambiente. Si hay silencio (nivel de sonido menor a 10) debe avanzar. Si el nivel
de ruido se encuentra entre 10 y 90, debe retroceder. Si el nivel de ruido es
superior a 90, se detiene y emite un sonido durante 10 segundos. Esto debe
repetirse durante constantemente.

TPP II Cuadernillo Nº 3 Pág. 19/19