Hoy queremos mostraros un sensor que puede ampliar hasta límites insospechados las posibilidades de nuestro LEGO Mindstorms. Se trata del sensor de enlace IR (MS 1046). Este sensor nos permitirá controlar cualquier elemento Power Functions de forma remota (mediante infrarrojos).
La combinación NXT+ Power Functions multiplica las posibilidades de ambos mundos, tradicionalmente independientes. La comunicación por infrarrojos permite dos nuevas interesantes combinaciones:
-
- Podemos ampliar las opciones del NXT porque gracias a este nuevo enlace podemos añadir nuevas funciones que el NXT podrá controlar, no sólo motores, sino también luces. Baste imaginar un vehículo con orugas como un tanque: Con los 3 posibles servomotores del NXT no tendremos la posibilidad de controlar todas las funciones que podría requerir: 2 motores para la tracción de las orugas, el giro de la torreta, la elevación y posible disparo del cañón o luces. Existen por otra parte una serie de funciones que no requieren de las posibilidades que nos brindan los tacómetros de los servomotores, por lo que su aportación se infrautiliza. Sería éste el caso de los motores encargados de dar tracción a las orugas del tanque. El control de la navegación de un vehículo que se desplaza basado en la adherencia de las orugas, deslizante sobre muchas superficies, hace que el uso de los tacómetros sea inútil o muy difícil en este tipo de aplicaciones. En esta aplicación en concreto sería más útil el uso del servomotor para mantener la posición de la torreta en un ángulo determinado, basado en la lectura de un sensor magnético, mientras que la tracción de las orugas podría provenir de la potencia de los motores Power Functions, controlados desde el NXT mediante un sensor de enlace por infrarrojos.
El tanque anterior es, a fecha de hoy, la última e impresionante construcción de Sariel. En él se emplean 4 motores XL PF para proporcionarle tracción, así como 3 x PF XL, 2 x PF Medium, 1 x Micromotor para funciones adicionales. Esta fantástica creación es puramente Power Functions, por lo que carece de sistemas automáticos que podría proporcionar un NXT, como la comentada anteriormente de mantener la torreta en un ángulo determinado, independiente del ángulo de la base. Esta posibilidad la podría proporcionar la combinación Power Functions + NXT.
- Una segunda e interesante opción es la de controlar el NXT mediante un Control Remoto IR Power Functions. Esta segunda posibilidad se analizará en próximos artículos.
Si bien en este artículo vamos a mostrar cómo hacer uso del sensor IR Link mediante el lenguaje gráfico NXT-G, la programación de este dispositivo no está limitada a este entorno, sino que también puede emplearse con otros lenguajes.
Programación del sensor de enlace IR mediante NXT-G
Para poder utilizar este nuevo sensor en NXT-G tendremos que descargarnos en primer lugar los bloques necesarios, de forma que podamos añadirlos a nuestra paleta de herramientas de NXT-G. Para añadir los bloques podéis seguir los pasos del tutorial de importación de bloques para el nuevo sensor de color 9694. Si aún tenéis alguna duda, podéis consultar este hilo del foro.
- Bloque PF IR Link (Descarga)
Este icono nos permitirá controlar los motores PF de la misma manera que el mando tradicional (8885): podemos girar en un sentido, en el contrario, o detener el motor. Tendremos, como si del mando se tratara, 4 canales. Además podremos controlar de forma independiente las 2 salidas de nuestro receptor IR.
- Bloque PFE IR Link (Descarga)
Este bloque hace que nuestro Mindstorms se asemeje más al nuevo mando (8879) pudiendo no sólo elegir el canal y la salida en el receptor, sino que también permite controlar completamente nuestros motores: dirección, velocidad y la posibilidad de frenar los motores o realizar flotación (encadenando movimientos, tal y como pasa con los servos de NXT).
Como comentábamos más arriba, este sensor se comporta como un control remoto con cualquier dispositivo que integre recepción por infrarrojos, como un vehículo, o un tren, por ejemplo.
Vamos a ver un ejemplo de su uso para controlar un motor PF.
Este sería el programa:
En este caso usamos los botones de Derecha e Izquierda del ladrillo para hacer girar el motor en un sentido o en otro. Si no pulsamos ningún botón, paramos el motor.
Esta última condición debería poder obviarse, pero si no la incluimos, el sensor conserva la última información que hemos mandado, por lo que al volver a apuntar al receptor (o al iniciar el programa) el motor no se mantiene en espera, si no que empieza a girar, sin que tengamos control sobre él.
Os dejamos un vídeo del funcionamiento de este experimento.
Un segundo experimento, más complejo, nos permitirá controlar un tren de forma progresiva haciendo uso del bloque PFE. De esta manera, podemos imitar el comportamiento del mando 8879. Con la salvedad de que el movimiento no se mantiene si interrumpimos la señal.
El programa es el siguiente
Utilizamos los botones Derecho e Izquierdo no para indicar la dirección si no para fijar la velocidad a la que giraremos (de -7 a 7). Además usamos el botón central o Intro para realizar una parada inmediata.
Nótese que hemos querido preservar el carácter cíclico de la velocidad, de tal manera que si estamos en 7 y tratamos de subir una velocidad más, nos llevará a 0. Igual pasa si estamos en -7.Vídeo del funcionamiento
Comentar que hay un tercer bloque para NXT-G, diseñado expresamente para los trenes y denominado
- Train IR Link (Descarga)Que nos permitirá controlar hasta 3 trenes de manera simultánea, manteniendo además los estados de movimiento.
Material necesario
Lo que necesitamos para expandir nuestro NXT mediante el método explicado anteriormente dependerá en gran medida de las funciones adicionales que queramos añadir. Si nos atenemos al clásico diagrama del sistema Power Funtions, veremos que la parte que estamos modificando es la de control:Según el artículo actual, estamos reemplazando lo que serían los controles remotos de la izquierda (bien el 8885 o bien el 8879) por la combinación del NXT + sensor de enlace IR (MS-1046), puesto que va a ser ahora el NXT el que envíe las órdenes al receptor de IR a través del sensor. El resto es el del sistema Power Functions habitual que queramos controlar, salvo que ahora el control puede provenir de un programa en el NXT. Por tanto, el sistema mínimo para ampliar nuestro NXT será el de:
- Sensor de enlace IR (MS 1046).
- Receptor IR 8884. Uno o varios.
- Sistema de alimentación del sistema controlado por IR, que puede ser proporcionado por una caja de baterías 8881 o una batería recargable Power Functions 8878. Las necesidades de alimentación dependerán obviamente de la carga que tengamos.
- Lo que queramos controlar a través del o de los receptores: motores M, XL, o luces.
Esperamos que os haya gustado el artículo. Para cualquier duda podéis recurrir al foro.