Cadernillo NXT
Cadernillo NXT
Cadernillo NXT
Cuadernillo Nº3
Programación de sistemas.
LEGO MINDSTORMS NXT
Alumno:
Curso:
Año: 2011
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.
4. Botones de control
- Naranja: Encender/Enter.
A programar!
Para programar el NXT, utilizaremos el programa NXT-G, lenguaje gráfico basado en
LabView de National Instruments.
Pantalla de inicio
Paleta básica:
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.
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
Potencia: 75%
Desafío 1:
Comencemos respondiendo las siguientes pregunta
que en los próximos desafíos lo utilizaremos.
1A –
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 –
B:- Si el robot no gira 90 grados variar los grados para que gire 90 grados.
1C –
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 –
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.
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.
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.
Desafío 9:
El robot debe AVANZAR hasta que choca, emitir un sonido y luego retroceder 4
cm.
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 __________.
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.
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).
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.
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.
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.