Al hilo del podcast de nuestro compañero Jorge Rubira, vamos a profundizar un poquito más en la plataforma Arduino pero ahora enfocada a Android.
Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo. Este proyecto Open Source nació en 2005, en la ciudad italiana de Ivrea, concretamente en el Instituto de Diseño Interactivo Ivrea. El núcleo del equipo de desarrollo de Arduino está actualmente formado por: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis y Nicholas Zambetti. La idea inicial fue la de fabricar una herramienta más moderna y barata que la utilizada por los estudiantes hasta ese momento, BASIC Stamp.
El hardware consiste en una placa con un microcontrolador Atmet AVR y puertos de entrada y salida. El software consiste en un entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring y el cargador de arranque que corre en la placa. El lenguaje de programación utilizado es Processing, sin embargo, es posible utilizar otros lenguajes de programación como Java, Ruby, C, C++, etc, etc. Esto es posible ya que la comunicación con Arduino se realiza mediante transmisión de datos en formato serie, que es algo que soportan la mayoría de los lenguajes anteriores. Para los que no soportan el formato serie, es posible utilizar un software intermedio para traducir los mensajes enviados por ambas partes. Para más información Wikipedia.
Foto Bricogeek.
Pero, ¿qué se puede hacer con una placa Arduino? Esta pequeña placa junto con una serie de sensores, luces LED, servos, acelerómetros, joystick, etc, etc, pueden ser programados para hacer multitud de cosas, desde una impresora a un helicóptero o coche controlado con un teléfono con Android, crear nuestros propios robots, etc, etc. A continuación algunos vídeos espectaculares.
ANDROID Y ARDUINO
¿Qué relación tiene Arduino con Android? A partir de Android 3.1 (Honeycomb), también portado a la versión 2.3.4 (Gingerbread), Google introduce Android Open Accessory, que permite a dispositivos hardware externos USB interactuar con dispositivos con Android en un modo especial llamado "accesorio". Este modo permite a los usuarios conectar hardware USB específicamente diseñado para dispositivos Android. Los accesorios deben cumplir con un protocolo indicado en la documentación Android Accessory Development Kit (ADK). Muchos dispositivos con Android anteriores sólo eran capaces de actuar como dispositivos USB y no podían iniciar conexiones con dispositivos externos USB. El soporte para Android Open Accessory supera esta limitación y permite crear accesorios que pueden interactuar con una gran variedad de dispositivos basados en Android, permitiendo al accesorio iniciar la conexión.
Por tanto, a partir de la versión 2.3.4 de Android, las placas Arduino que cumplen con el protocolo indicado anteriormente, pueden interactuar con dispositivos Android y ser programadas para ser manejadas por ellos.
¿Qué necesitamos?
Una placa Arduino que cumpla con el Android Open Accessory, en la web de desarrolladores de Android tenemos varios enlaces a una serie de placas que cumplen estas características. Una de las más utilizadas es la Arduino Mega ADK, basada en el microcontrolador ATmega2560.
Shields. Son placas que se colocan encima de la placa Arduino y amplían sus funciones para que ésta sea controlada desde Arduino, se utilizan para controlar diferentes aparatos, adquirir datos, etc, por ejemplo puertos de red, tarjetas bluetooth, tarjetas SD, reconocimiento de voz, etc. No son imprescindibles pero ayudan a realizar proyectos muy interesantes. Ejemplos de shields.
Paquete ADK (Android Accessory Development Kit). Este paquete incluye: el firmware para las tarjetas Arduino, especificaciones del hardware y un programa de ejemplo (un proyecto de Android y el sketch de Arduino), etc. En la web de desarrolladores de Android podemos ver cómo instalarlo. También en el blog de Bricogeek viene muy bien explicado.
Un terminal Android.
Para hacer programas se utiliza el lenguaje de programación Processing para lo que es específico de Arduino y lo que tenga que ver con el teléfono se programa en Java.
AMARINO
Por otro lado, si queremos programar más fácilmente Arduino y utilizar nuestro teléfono Android para controlar la placa, tenemos Amarino. Amarino es una aplicación Android y una librería Arduino, que permite comunicar una placa Arduino con el sistema operativo Android. Para enviar y recibir los datos de sensores o controlar los pines de la placa se utiliza un enlace bluetooth. La aplicación Android permite añadir eventos con su entorno visual, así que podemos realizar proyectos casi sin programar. Más info en el blog de Bricogeek.
¿Qué necesitamos?
Android. Esta herramienta está diseñada para trabajar con smartphones basados en Android. No es necesario ningún conocimiento de programación en Android para empezar. Se puede empezar sólo instalando la aplicación para Android en el teléfono, esta aplicación viene con muchos eventos preinstalados que se pueden seleccionar para enviarlos a la placa Arduino.
Arduino. Una placa Arduino.
Tú. Ahora que sabemos qué necesitamos, todo lo que tenemos que hacer es descargarnos la herramienta, instalarla y empezar nuestros proyectos conectando el teléfono al microcontrolador. Podemos controlar las luces con nuestro teléfono, mostrar mensajes de texto en un ticker en el salón de casa, hacer una camiseta que vibre cuando suene el teléfono, etc.
Algunos vídeos más de Android y Amarino:
Podéis buscar mas vídeos en Youtube, hay muchos ejemplos del uso de Arduino. Como véis las posibilidades que nos ofrece este hardware es increible y el único límite que tenemos es nuestra imaginación.
Article originally appeared on javaHispano (http://www.javahispano.org/).
See website for complete article licensing information.