Hoy queremos presentar un pequeño experimento realizado por nuestros alumnos en uno de nuestros talleres de robótica. Se trata de un robot que utiliza dos ladrillos NXT que se comunican entre sí mediante bluetooth. Este experimento nos permitirá explorar aún más las posibilidades de interacción bluetooth entre ladrillos, es decir, un robot Multiproceso en NXT-G, fundamental para controles remotos (como ya hemos visto en varios artículos). Pero también para robots que tengan más de un NXT.
Para poder hacer esto tenemos que ser capaces de controlar cuándo y cómo actuamos con cada NXT. Para eso utilizamos un sistema de intercambio de flags entre ladrillos. Para que nos sea más fácil identificarlos, durante el artículos los llamaremos NXT-M (NXT- Master) y NXT-S (NXT-Slave).
Cada uno de los procesadores se encarga de unas tareas a realizar. El Master es el encargado de controlar la tracción del vehículo, mientras que al Slave se le conectan los motores de la pinza, por lo que debe controlar sus movimientos. Cada uno de ellos necesita su programa independiente.
El siguiente es el programa de NXT-M (controla la tracción del vehículo).
Este programa es muy fácil de seguir: nos movemos en línea recta hasta que detectamos un objeto, giramos para encararnos al objeto con las pinzas y enviamos a NXT-S el flag a True, indicándole que ya empieza su parte (1) seguimos avanzando hasta que recibimos el flag False desde NXT-S (2). Ahora nos mantendremos quietos hasta recibir flag True (3) y giraremos de nuevo para soltar el objeto, para lo cual mandaremos a NXT-S flag False (4).
Y este el del ladrillo esclavo (controla los movimientos de la pinza)
Este es aún más sencillo, ya que sólo controlaremos la pinza. Esperamos la señal de NXT-M – marcada como (1) en la explicación anterior- Enviamos flag False a NXT-M (2). Cerramos las pinzas y levantamos el objeto. Enviamos flag True (3) y esperamos la señal desde NXT-M (4). Finalmente liberamos el objeto.
Como se puede observar ambos ladrillos tienen esperas o realizan acciones hasta un cambio en el flag, dicho cambio es enviado por bluetooth desde el otro ladrillo.
Es muy importante tener en cuenta que, para que el ladrillo esclavo pueda comunicarse con el maestro, debe enviar los mensajes siempre a la conexión 0. Sin embargo, el ladrillo maestro deberá enviarlos a la conexión que tenga ocupada (1, 2 o 3).
Os ponemos un vídeo para que lo veáis en funcionamiento.