Robots repetidores Bluetooth

GrupoYa hemos hablado sobre las conexiones bluetooth entre dispositivos (tutorial bluetooth), ahora vamos a profundizar un poco más en las posibilidades de envío y recepción de información en NXT-G: Robots repetidores Bluetooth.

Primero algunos datos esenciales:

– Cuando hablamos de conexión bluetooth entre NXT debemos distinguir entre NXT Maestro – en adelante NXT-M – y NXT Esclavo – en adelante NXT-E1, NXT-E2… , donde el número denota la conexión que tienen ocupada- . El NXT-M es el que envía la señal, mientras que los NXT-E serán los que la reciban.

– Cada NXT puede conectarse simultáneamente con un máximo de 3 robots (tiene 3 conexiones), que aparecen numeradas del 1 al 3 cuando elegimos conectarnos a otro mindstorms, el número de conexión es su dirección.

– Existe una conexión denotada como “0”, en los NXT-E que es la que ocupa el NXT-M.
OJO Cuando un NXT1 solicita conectarse a un NXT2, no importa la conexión que ocupemos en NXT1, en NXT2 habremos ocupado la “0”! Aún nos quedarán las 3 conexiones (1, 2 y 3) de ese robot libres para conectarse con 3 esclavos.

Es decir, cada robot puede tener:
– 1 maestro (el primero que se conecta con él, ocupa la conexión “0”)
– 3 esclavos (ocupan las conexiones 1, 2 y 3, la conexión debe iniciarse desde el robot que será maestro).

Un error muy común es que NXT1 se conecta a NXT0 (conexión “0”) y NXT2 también intenta conectarse a NXT0 –> “Line is busy!” (“¡Linea ocupada!”).

Sin embargo, si NXT1 se conecta a NXT0 (conexión “0”), NXT0 puede conectarse a NXT2 (conexión “1”), NXT3 (conexión “2”) y NXT4 (conexión “3”) sin problemas, pues éstos últimos serán esclavos de NXT0.

– La conexión siempre debe iniciarse desde el NXT-M. Si lo hacemos al revés no funcionará.

– Aunque podemos estar conectados a varios NXT de forma simultánea, no podremos enviarles información a la vez, tiene que pasar al menos 1 segundo para cambiar de conexión.

– Cada conexión tiene 10 buzones para almacenar información, si las conexiones son las direcciones, los buzones son casilleros. Los buzones pueden almacenar un máximo de 5 mensajes que irán limpiando de más antiguo a más nuevo (sistema FIFO – First In First Out “el Primero en Entrar es el Primero en Salir”)

Ahora que sabemos esto vamos a detallar las condiciones de nuestro experimento.

Si las conexiones son limitadas, ¿cómo puedo trabajar con más de 3 NXT a la vez?

Y la respuesta no es otra que usando repetidores, es decir, si cada uno de los robots que están conectados a NXT-M no sólo ejecutan la acción que corresponde si no que además envían la señal a otros robots, podemos extender la cadena hasta el infinito.

Diagrama conexiones

Como se puede apreciar en el diagrama anterior, el NXT-M conecta con 3 NXT-E, cada uno de los cuales conecta con otros 3 (no olvidemos que NXT-E1, NXT-E2 y NXT-E3 tienen ocupada la conexión “0” por NXT-M, pero las conexiones 1 a 3 siguen libres para enlazar posibles NXT esclavos).

Así, la segunda línea de NXT-E tiene 9 dispositivos, denotados NXT-E XX, donde XX representa con el dígito de la izquierda qué conexión tiene ocupada el NXT que le envía la señal, y el dígito de la derecha, qué conexión se está ocupando en el propio dispositivo.

Bien, lo primero que vamos a hacer es conseguir que un NXT-M se conecte a un NXT-E1, este a su vez conectará con NXT-E12, que conectará con NXT-E121.

El siguiente vídeo muestra los NXT en acción:

Como se puede apreciar, el robot que da la espalda a la cámara es el NXT-M, los demás actúan de forma secuencial de izquierda a derecha desde la recepción de la primera orden.

Los programas que se han usado son simples, vamos a verlos. Mucha atención a los bloques de espera que aparecen en los programas, si bien no tienen porqué durar tanto tiempo, si es imprescindible que existan, tal y como vimos al principio.

Programa de NXT-M

ProgramaNXT-M

Primero se conecta con NXT-E1 en la conexión 1 (por eso NXT-E1)
Emite una señal lógica verdadero cuando pulsamos el botón derecho del ladrillo.

Programa de NXT-E1 y NXT-E12

ProgramaNXT-E1

Los dos esclavos intermedios tienen el mismo programa base, reciben la señal lógica, ejecutan una acción – en nuestro caso avanzar una rotación-, desconectan de la conexión previa (en esta primera versión) y se conectan automáticamente al siguiente E1 conecta con E12, y E12 conecta con E121.

Programa de NXT-E121

ProgramaNXT-E121

Este, al ser el último de la serie, simplemente espera la señal lógica y actúa.

En estos programas, los NXT enlazan automáticamente entre sí, también podríamos haberlos enlazado de forma manual antes de comenzar la ejecución.

Una cosa muy importante a tener en cuenta antes de empezar es que, para que la conexión automática se lleve a cabo, es necesario que se hayan enlazado previamente al menos una vez.

Además debemos asegurarnos que los NXT-E que enlazan con más de un NXT, realmente enlazan, para ello debemos hacer la comprobación manualmente en: Bluetooth –> Search –> “Nombre de dispositivo” -> Connect –> “conexión que nos interese”. Aceptamos la contraseña, si nos la pide. En ocasiones podemos recibir el aviso “BT store is full error” y la conexión no podrá realizarse, por eso debemos asegurarnos de que enlazan antes de la ejecución.

Como consejo, aunque no es imprescindible, apagad los NXT después de cada ejecución, ya que de no hacerlo se producen problemas de conexión y/o recepción de información.

Comments are closed.