Este robot nunca tuvo nombre; durante mucho tiempo lo llamé “El Robotito”, pero ahora lo presento como “The Dancing Robot” en honor a lo que mejor sabe hacer: bailar y producir música con sus motores al tiempo que lo hace.
Sí, tiene “ladrillitos”. Cualquier semejanza con un robot LEGO es mera casualidad.
Sus dispositivos de salida son: los 2 motores DC de la base, los 3 servos que mueven la “cabeza”, racimos de leds en los “ojos” y un sistema de audio con el que reproduce tanto beeps generados internamente, como sonidos almacenados en un pequeño pendrive, utilizando para ello un reproductor de MP3 de automóvil.
Su “cerebro” es una tarjeta Arduino, la famosa plataforma de hardware libre.
Su único sensor es un dispositivo de desarrollo propio, al que llamé “el ojo electrónico”. Consiste en un emisor de IR y 4 receptores dispuestos en forma de cuadrado, manejados con un software desde la propia Arduino, que permite detectar no sólo la presencia de objetos, sino también su movimiento.
Ensayo también aquí diversos tipos de comunicación inalámbrica: IR y RF de 430MHz para comunicarse con La Máquina de los Dioses, y Bluetooth para comunicarse con el PC.
Tanto este robot como sus hermanos SAMSA y La Máquina de los Dioses, no son productos u obras acabadas que se centren en una única idea original y potente, sino que yo los tomo como “ejercicios” para mi propio aprendizaje, vale decir, excusas para practicar el “arte” de resolver problemas. A la hora de mostrar el resultado, elijo hacerlo con cierta “estética” casi siempre humorística.
VIDEOS
En este primer video, veremos justamente la especialidad de Robotito: el baile. ¿Cómo funciona esto? Bueno, hay bastantes cosas que explicar aquí:
-
La “música” sobre la que baila el robotito es producida por él mismo. Se trata del ruido de sus propios motores, que actúan rítmicamente sobre un pulso constante, un “bombo en negras” que suena más bien “tac, tac, tac” y sale por el sistema de audio del robot, cuyo altavoz se encuentra en la base del mismo, apuntando hacia el suelo. A su vez, los motores que intervienen podrían dividirse en dos grupos: los de la base, que tienden a acompañar a este pulso constante, mientras los de la cabeza juegan arriba, haciendo una especie de “repiqueteo” que por momentos me recuerda a un candombe.
-
Si bien el video está editado, el resultado es el mismo si dejamos el robot andando un largo rato en este modo, es decir, se produce una secuencia aleatoria de 4 bloques rítmicos que se alternan, cada uno de los cuales tiene a su vez sus propias variantes, que también son seleccionadas aleatoriamente, y cada bloque puede repetirse 1, 2 o 4 veces y ser reproducido a un tempo de referencia, o bien a la mitad o al doble de ese tempo. Algunos “pasos” presentan variantes meramente visuales, es decir que suenan siempre igual, mientras que otros son una auténtica fuente de improvisación musical, con sofisticadas reglas. En cierto sentido, esto es como la versión física del Zappator.
-
Los ojos acompañan discretamente a la base, pero se iluminan con más intensidad cuando el sensor detecta la proximidad de un objeto, en cuyo caso se producen también unos beeps que intentan estar al ritmo de la música, pero no siempre sucede así. Podríamos decir que la musicalidad de estos beeps depende, en cierta medida, de la habilidad del “ejecutante”, cuando es éste quien acerca su mano para producirlos.
-
Al final del video puede verse el “gesto” usado en todo el software del robot para volverlo al modo de espera.

En este segundo video, vemos varios otros aspectos de la personalidad de Robotito:
-
El sistema de detección de “gestos”, sensible a 4 direcciones de movimiento (arriba, abajo, izquierda y derecha)
-
Los mensajes hablados, intercalando al azar las voces masculina y femenina (las cuales provienen de un sintetizador de voz polaco que encontré en la web). El pestañeo de los ojos previo a los mensajes, es una forma de rellenar el tiempo que necesita el reproductor de mp3 para seleccionar la pista correspondiente.
-
Lo que llamamos el “frontend” es un programa que capta los datos que el robot le envía, via BlueTooth, y los utiliza para generar el gráfico que se ve en la pantalla. Es un programa visualizador de los datos que le entran, no envía ningún tipo de información hacia el robot. Observen lo que ocurre con el fondo cuando hay un objeto cerca del sensor.
-
Vemos un poco del “modo interactivo Nº 1″, luego una secuencia de baile, y finalmente otro tramo de “modo interactivo Nº 1″, hasta que el robot sufre un accidente.
-
Aclaración: la luz azul/violeta que se ve en el centro del sensor, no es visible en realidad, es una luz infrarroja a la que suelen ser sensibles las cámaras digitales. De todas maneras, esto nos va a resultar ilustrativo cuando veamos la comunicación entre los 2 robots a través del infrarrojo. Otra aclaración: el audio de la cámara era realmente malo, y el lugar donde fue filmado, realmente ruidoso.

Ahora vemos el modo “explorando el entorno”. En este modo el robot se desplaza libremente, y cuando detecta la presencia de un objeto, hace un movimiento rápido con la cabeza a efectos de seguirlo en caso de que éste se mueva. Entonces, se aproxima cautelosamente al objeto detectado, hasta llegar a un punto de máxima cercanía en el que se detiene. Observen, durante el paseo libre, los movimientos de cabeza que acompañan al desplazamiento.

En este otro video, vemos el “modo interactivo Nº 1″, que es bastante aleatorio, y el “modo interactivo Nº 2″, que es mucho más simple y claro que el Nº 1.

Finalmente, el video que veremos a continuación merece una explicación detallada, ya que, la mala calidad de la captura de audio y la falta de edición, no ayudan a apreciar la gran cantidad de elementos que contiene. Se trata de la interacción con La Máquina de los Dioses (LMDLD, un robot casero hecho con Arduino y diversos materiales reciclados, entre ellos un reproductor de cinta) en la que ambos robots intercambiarán una serie de mensajes y terminarán bailando juntos. La secuencia sería la siguiente:
-
se enciende LMDLD, quien emite su mensaje de bienvenida (“bienvenido a LMDLD”), realiza algunos tests de inicialización, y finalmente queda en stand-by, enviando permanentemente una señal a través del enlace RF de 430MHz;
-
se enciende el Robotito (en adelante lo llamaremos TDR), éste también comprueba los motores, las luces, etc., emite su mensaje de bienvenida (“welcome to the machine”) y queda ”esperando”;
-
TDR detecta la señal RF emitida por LMDLD e intenta comunicarse con éste (“intentando comunicación con MDLD”). Para esto, emite una señal infrarroja con su propio emisor IR, en el centro del “ojo electrónico”;
-
en LMDLD se enciende el display y sale una musiquita, notificando que se recibió correctamente la señal infrarroja de TDR; luego sale el mensaje “contactooo” y LMDLD lanza otro código a través del RF;
-
se repite el mismo protocolo, esta vez TDR anuncia que está ”detectando coordenadas” y lo confirma con un nuevo código IR. A partir de este momento, si observamos detenidamente, LMDLD comienza a mandar una señal pulsátil a través de sus propios emisores IR (a los costados y en el centro, saliendo de la pseudo-cámara web). Midiendo la intensidad de estos bursts, TDR tomará nota de la proximidad entre ambos robots;
-
comienza entonces una secuencia en la que TDR gobierna los movimientos de LMDLD, enviándole órdenes a través del IR (de hecho, lo que el robotito hace es emular un control remoto doméstico) y de esta manera hace que ambos robots se aproximen y queden enfrentados; vale decir que TDR maneja a LMDLD, y simplemente emplea el algoritmo de moverlo en la dirección en la que aumenta la intensidad medida de los bursts;
-
cuando los dos robots quedan enfrentados a una distancia muy próxima, TDR envía un último mensaje a LMDLD indicando que va a comenzar el baile; se escucha entonces cómo LMDLD sube al máximo el volumen de su buzzer, emite unos beeps, y finalmente dice “sacándole viruta al piso” con su voz de omnibusero; mientras tanto TDR produce también unos sonidos al tiempo que busca en su MP3 el mismo mensaje, “sacándole viruta al piso”, el que escuchamos ahora nuevamente pero proveniente de TDR, con su voz femenina de acento polaco;
-
lo que ocurre finalmente es esto: TDR inicia su tradicional rutina de baile, y en cada negra, en cada pulsación, emite una señal IR; en LMDLD cada señal IR recibida produce un
beep con una nota aleatoria, y un cambio de dirección también aleatorio en el movimiento; de esta manera, si observamos atentamente, ambos robots están bailando sobre el mismo ritmo, aunque LMDLD lo hace, naturalmente, de una forma mucho más tosca que TDR.

MAS VIDEOS, ENLACES, ETC.