El IOIO (pronunciado "yo-yo") es una placa específicamente diseñada para trabajar con dispositivos Android (versión del OS superior a v1.5).

Se puede ver como una extension hardware perfecta de dichos dispositivos, realizando la conexión por cable USB o bluetooth.

La logica de las aplicaciónes a desarrollar corre en el android y se desarrollan como apks convencionales, utilizando diversas librerias de conectividad y manipulacion de dispositivos/protocolos hardware en el IOIO, que son tratados con alto nivel de abstracion y de forma sencilla.

En la imagen hay un ejemplo de desarrollo de un apk; un boton que activa el led de la placa. En el recuadro, el bucle principal (les sonara, por ejemplo, a los que hayan utilizado un arduino)

Las apks ofrecen la posiblidad de realizar logica sw de alto nivel, aprovechar el interfaz gráfico tactil, conectividad a iternet, bluetooh, wifi, vibrador, acelerometros, gps y las funcionalidades propias de una tablet o movil.

El IOIO continene un pequeño microcontrolador que actúa por un lado como USB Host e interpreta las peticiones de la aplicación Android. El microcontrolador se encarga de interactuar por otro lado con dispositivos físicos conectados al mismo tales como sensores, actuadores etc utilizando las señales y protocolos convencionales tales como entradas y salidas digitales, PWM, entradas analógicas, I2C, SPI y UART, y periféricos externos.

Tambien es posible reprogramar y grabar el firmware de un IOIO para que el mismo host contenga una aplicacion.

Firmware, software, documentacion y ejemplos se pueden encontrar en la wiki principal:

https://github.com/ytai/ioio/wiki

En resumen, el IOIO permite aprovecharse de la gran potencia de los dispositivos móviles con Android, Internet/Bluetooth, conectividad Wifi, touchscreen y extenderla para poder conectar y actuar de forma sencilla con sistemas físicos externos.