PROGRAMACIÓN DE ROBOTS LEGO MINDSTORMS

Pablo Iván Romero De La Rosa
Leodegario G. Aguilera Hernández
Orlando Meza Zaleta

¡PARE CON EL SENSOR DE CONTACTO!


En esta unidad, aprenderá a tomar la entrada de los sensores del robot, en particular, el sensor de contacto.
La función de lectura del sensor es utilizada para comunicarse con un sensor conectado al controlador NXT. La función lee el sensor en el robot y devuelve un valor.
Puede acceder a la función de leer sensor haciendo clic derecho sobre el diagrama de bloques, seleccionando I / O NXT, y luego haciendo clic en Leer sensor.

Cuando coloca el bloque de Leer sensor en el diagrama de bloques, se dará cuenta de que también tiene un selector polimórfico, lo que nos permite seleccionar el tipo de sensor que quiere leer. En este selector polimórfico se tienen todos los diferentes sensores compatibles con el controlador NXT.
En este caso, ya que quiere comunicarse con el sensor de contacto. Selecciona Leer sensor de contacto. A partir de ahí, tiene tres opciones diferentes.
Las tres opciones son: presionado, liberado, y chocado. Cuando se selecciona el modo presionado, el sensor da una salida solamente cuando el sensor está presionado. En el modo liberado, el sensor da una salida cuando el sensor se libera, por lo que en otras palabras, el programa sigue funcionando hasta que el sensor se libera. En el modo chocado, el sensor produce una salida solo cuando al sensor se le dio unos golpecitos.
Al abrir la ayuda contextual, verá lo que dice al respecto de leer un sensor.
La ayuda de contexto muestra que hay dos terminales importantes. Una de ellas es la entrada del puerto, y la otra es la salida booleana.
El color de estos cables indica el tipo de dato que pasa a través de ellos. El cable del puerto es de color azul, lo que significa que está llevando a un valor entero, y la salida es el cable verde que significa que es un valor booleano.
La forma en que funciona la opción Leer sensor de contacto (Presionado) es que se lee el sensor de contacto conectado al puerto de entrada especificado y devolver un Sí o un cierto si el sensor de contacto está presionado, o un No o un falso en caso contrario.
Para seleccionar el puerto en que se conecta el sensor se utiliza un método similar al que se utiliza para especificar el puerto de un motor. Hacer clic derecho en la terminal de entrada y crear una constante.
Esto crea un selector, que se llama Puerto 1 por defecto. Puede hacer clic en la flecha para abrir el menú desplegable y seleccionar el puerto al que está conectado el sensor de contacto en el NXT.
El generador de números aleatorios tiene un propósito claro: crear números aleatorios cada vez que se invoca la función. De manera predeterminada, se crea un número aleatorio entre 0 y 100.
Para seleccionar el generador de números aleatorios, haga clic derecho sobre el diagrama de bloques, se posiciona sobre las funciones numéricas y verá el generador de números aleatorios.

Una vez que haya hecho clic en él y lo colocó en el diagrama de bloques, verá un icono similar al que se muestra en la Figura 70.
Si se posiciona sobre el generador de números aleatorios, verá  la ayuda contextual como se muestra en la Figura 71.

La ayuda de contexto muestra que hay dos terminales importantes en esta función, el valor máximo y el número aleatorio.
La terminal del valor máximo convenientemente le permitirá cambiar el rango de los números aleatorios que se seleccionan por defecto de 0 – 100 o de 0 – a un número que elija. Para cambiar el valor máximo, simplemente haga clic derecho en la terminal de valor máximo y agregue una constante para el valor máximo.
Para utilizar la función de números aleatorios, es necesario conectar la salida, que es la terminal de números aleatorios y utilizarla en el código.
El generador de números aleatorios tiene el inconveniente de que genera los números cada 10 mseg. Por consiguiente el controlador NXT no es capaz de leer esos cambios, por tal motivo es necesario agregar una espera para que el generador demore ese tiempo en enviar el siguiente dato al controlador NXT. Hay una función de LabVIEW que se llama esperar. Espera una cantidad especificada de tiempo antes de dejar que el programa comience o continúe. Para agregar esa función de espera es necesario hacer clic derecho en el diagrama de bloques, entrar al menú I / O NXT y seleccionar Wait.

Cuando coloca la función esperar dentro del ciclo While, verá que es una función polimórfica.

Por default selecciona  esperar un tiempo, y espera un número determinado de segundos. Si necesita ser más preciso, puede seleccionar el modo de milisegundos. Hay también una variedad de funciones de espera de otros sensores como por ejemplo el ultrasónico, el de sonido, el de colores, etc.

Si se ejecuta este código, se dará cuenta de que el robot mueve los motores a una velocidad determinada aleatoriamente durante 1 segundo, posteriormente  se ejecuta una velocidad distinta. Repite esto hasta que el sensor de contacto es presionado.

Taller: Hacer que el robot LEGO MONDSTORMS se mueva hacia atrás a velocidades aleatorias con un tiempo de espera de 25 mseg, hasta que el sensor de contacto este soltado y conectado al puerto 2.

Volver al índice

Enciclopedia Virtual
Tienda
Libros Recomendados


1647 - Investigaciones socioambientales, educativas y humanísticas para el medio rural
Por: Miguel Ángel Sámano Rentería y Ramón Rivera Espinosa. (Coordinadores)

Este libro es producto del trabajo desarrollado por un grupo interdisciplinario de investigadores integrantes del Instituto de Investigaciones Socioambientales, Educativas y Humanísticas para el Medio Rural (IISEHMER).
Libro gratis
Congresos

15 al 28 de febrero
III Congreso Virtual Internacional sobre

Desafíos de las empresas del siglo XXI

15 al 29 de marzo
III Congreso Virtual Internacional sobre

La Educación en el siglo XXI

Enlaces Rápidos

Fundación Inca Garcilaso
Enciclopedia y Biblioteca virtual sobre economía
Universidad de Málaga