Introducción - Arduino + Nunchuk + Animatronic

El animatronic que pretendemos diseñar constará de la posibilidad de realizar movimientos a través del mando Nunchuk© de Nintendo. Básicamente los movimientos del animatronic serán:
  • Movimiento de la cabeza tanto en horizontal como vertical.
  • Movimiento de los ojos tanto en horizontal como vertical.
  • Movimiento vertical de cejas.
  • Movimiento vertical de párpados.
  • Movimiento vertical de boca.
Decidimos dar control al mando sobre el animatronic para convertirlo en un elemento más interactivo con los usuarios que por ejemplo a través de los comandos de un PC, aunque también es posible controlarlo de esta manera si lo deseamos.
Se realizará una captura de movimientos con un programa desarrollado aparte, lo que nos permitirá guardar patrones de movimiento al PC para poder reproducirlos después.
La cabeza dispondrá de sensores de sonido, lo que le indicará la zona hasta la que debe girarse. Su uso está pensado para que se gire automáticamente hasta la posición de la persona más próxima que se encuentre hablando.
Constará también, de la posibilidad de reproducir audio a través de un shield compatible con Arduino. Gracias a esto, se abre la posibilidad de que emita alguna frase o sonido característico.

Se nos brindó la oportunidad y los medios (algunos, que mi bolsillo aún grita de dolor) de poder realizar este animatronic basado en placas Arduino. Poco a poco iré añadiendo entradas sobre este tema, mientras tanto un adelanto del protipo finalizado:

Haciendo los idiotas por aburrimiento


Arduino - Demostración servomotores

Para el ejemplo de hoy utilizaremos 2 servomotores. En este caso son de la marca Futaba, el modelo S3003.



Processing - Demostración

A continuación teneis el video de la aplicación terminada. Es muy sencilla y básica, pero nos permite ver las posibilidades de este lenguaje.


Programación en Processing (Práctica)

Ya explicada la parte teórica, continuaremos con el desarrollo de una aplicación gráfica en Processing para ver visualmente los datos del Nunchuk.

Podemos visualizar el código con formato y número de líneas en:

Programación en Processing (Teoría)

Introducción

Vamos a utilizar Serial para comunicar la placa Arduino con la computadora. En Processing tenemos que importar la librería Serial que viene incluida en el IDE.

Antes de comenzar, modificaremos la función  void imprimir_Serial () en nuestro código de Arduino. Transmitimos en forma de Bytes, eliminamos la transmisión de Strings innecesarios y añadimos la impresión de '\n' al comienzo para evitar los datos erróneos que se transmiten al principio. Esto último lo explicaremos posteriormente. La función quedaría de la siguiente forma:

Processing - Materiales necesarios

En realidad, lo único que necesitaremos, además de todo lo relacionado con Arduino y el Nunchuk es el IDE de Processing. Pero antes de todo eso, ¿qué es Processing?



Según Wikipedia:

"Processing es un lenguaje de programación y entorno de desarrollo integrado de código abierto basado en Java, de fácil utilización, y que sirve como medio para la enseñanza y producción de proyectos multimedia e interactivos de diseño digital. Fue iniciado por Ben Fry y Casey Reas a partir de reflexiones en el Aesthetics and Computation Group del MIT Media Lab dirigido por John Maeda.


Processing es desarrollado por artistas y diseñadores como una herramienta alternativa al software propietario. Puede ser utilizado tanto para aplicaciones locales así como aplicaciones para la web (Applets).


Se distribuye bajo la licencia GNU GPL."

Processing - Introducción

Llegados a este punto, leer y interpretar los datos del Nunchuk ya no debe de suponer ningún reto. Los hemos recogido y transmitido a la computadora vía Serial. Pero claro, de nada sirve enviar datos sin que existiera una forma de poder jugar con ellos.

Por lo tanto en los siguientes posts trataremos de crear una aplicación en Processing que nos muestre de forma gráfica los datos de los sensores del Nunchuk. ¿Utilidad? Ninguna más que para satisfacer curiosidades, pero una vez sepamos hacer esto se nos abrirán muchas más puertas. Libre es cada uno de investigar y amoldar estos conocimientos a sus propios proyectos.