Este artículo fue publicado por derechoaleer en la Revista Users Nº 241 del mes de mayo de 2011 - La lista completa de artículos en UsersFinales


Arduino, electrónica libre

Emergiendo desde la "cuna filosófica" del software libre, Arduino es una plaqueta electrónica fácil de programar, multiplataforma, y que atrae la atención tanto de especialistas, como de novatos y estudiantes. Ya sea para encender un LED o para construir robots, estas humildes y económicas plaquetas están revolucionando a su manera el mundo del hardware.

Hace más de un siglo, en 1901 Frank Hornby inventó en Inglaterra un sistema de construcción consistente en perfiles metálicos estandarizados —placas, perfiles, ángulos— que junto con ejes, engranajes y tornillos permitía armar de forma muy sencilla mecanismos complejos y modelos de todo tipo. El sistema era un juguete y se patentó con el nombre "Mecánica Hecha Fácil". Muchos —que vivieron su infancia hace ya algún tiempo y seguramente eran los geeks de su momento— recordarán su fascinación ante aquel mundo de maravillas que se encontraba al abrir una caja de "Meccano". La característica sobresaliente del sistema era hacer fácil y accesible la construcción de mecanismos de todo tipo a cualquier aficionado, casi sin conocimiento previo, pero con mucho entusiasmo por la experimentación. Esta idea de diseñar kits con piezas prefabricadas que ahorrasen tiempo a los "hobbystas", pero que sean lo suficientemente maleables para no limitar la creatividad, se repitió bastante durante el siglo pasado. Y en especial, en el campo de la electrónica.

Ya contamos en otras notas de esta sección, como la primer PC (Computadora Personal), la "Altair 8800", era en realidad un "kit para armar" que llegaba en una revista para aficionados. Treinta años después, otro modelo para armar emerge como un fenómeno entre entusiastas de la electrónica, estudiantes y hasta artistas. Pero con la cuna filosófica del software libre detrás, llega para desafiar la forma en como se diseña y produce el hardware: Arduino.

¿Y qué es Arduino?

Arduino es una pequeña placa o circuito impreso que cabe en la palma de la mano, con un modesto microcontrolador (el "cerebro" de la placa), y conexiones de entrada y salida, que puede conectarse al puerto serie o USB de nuestra PC, y en minutos comenzar a interactuar con toda clase de dispositivos: LEDs, displays luminosos, motores eléctricos, servos, sensores infrarrojos, conexiones de red, flashes de cámaras fotográficas, potenciómetros, botones y lo que se nos ocurra. ¿Y para que sirve? desde prender y apagar un LED, hasta controlar robots que responden a órdenes en lenguaje natural, o impresoras 3D. Arduino es un "enlace" entre el mundo físico y el mundo virtual: un sensor puede capturar información del mundo analógico y transformarla en bits, un programa puede procesar e interpretar esa información digital, y otros dispositivos pueden producir una respuesta analógica (sonido, luz o movimiento) en "el mundo exterior". Si bien cualquier computadora es una interfaz que une esos tres elementos (dispositivos de entrada, programas y dispositivos de salida) la idea detrás de Arduino es expandir esas posibilidades de interacción lo máximo posible.

El mayor atractivo de Arduino, sin embargo (además de su precio), es que ofrece un entorno de programación amigable para su microcontrolador, que se puede ejecutar en una PC con cualquier sistema operativo, y que permite rápidamente comenzar a correr programas en la placa de manera sencilla (tarea que por lo general, demandaba conocimientos más avanzados en este tipo de dispositivos). Puede tratarse de un programador experto o un especialista en electrónica, o sólo de un usuario con conocimientos mínimos: la plataforma de software incluye gran cantidad de programas, bibliotecas y esquemas de circuitos para guiar a los novatos. Al igual que "mecánica hecha fácil", Arduino es "electrónica hecha fácil". Hay que tener en cuenta que la intención de sus diseñadores fue crear una placa que permitiera entusiasmar a estudiantes de escuelas medias en el aprendizaje de la electrónica. Nada más con saber algo de la Ley de Ohm, resistencias y condensadores, los alumnos podían comenzar rápidamente a construir prototipos de circuitos sencillos, cargar un programa en el microcontrolador y verlos funcionando en el momento. Alcanza con colocar Arduino en una placa de prototipado y empezar a conectar las cosas. La curva de aprendizaje amigable, ha ayudado a difundir la plataforma también entre artistas multimedia, músicos y personas dedicadas a actividades poco relacionadas con este campo, pero que desean aprender o experimentar con la electrónica.

"Il Mio Piccolo Arduino"

La historia de Arduino comienza en Italia, en un instituto dedicado a la enseñanza de diseño interactivo en la ciudad de Ivrea, donde Massimo Banzi, uno de sus docentes, se propuso allá por 2003 diseñar su propia placa de hardware para trabajar con sus estudiantes —las disponibles en el mercado estaban a precios prohibitivos. Parece que estudiantes y profesores entusiastas, combinados con el desafío de saltarse las barreras económicas que dificultan el acceso, son una fórmula ideal para propiciar cambios: quince años antes, Linus Torvals, en Finlandia, comenzó a diseñar su propio kernel, basado en el código compartido por uno de sus profesores (Minix) solo porque las licencias UNIX estaban fuera del alcance de un estudiante común... Pero volvamos a Arduino. Al igual que Torvals, los fundadores del proyecto, Massimo Banzi y David Cuartielles, junto con otros colaboradores, decidieron no llevar adelante su proyecto en soledad y publicaron los avances del mismo en la red, liberándolo como software libre y "hardware libre" (Los diseños del hardware se liberan con una licencia libre "Creative Commons / Atribución / Compartir Igual", de todas formas la definicion de "Free Hardware u "Open Hardware" aun son terreno de controversia, las leyes sobre propiedad intelectual en el mundo del hardware, no actuan de la misma forma que en el software u obras inmateriales). También se inclinaron por los microcontroladores de Atmel, que si bien son el elemento de hardware no-libre dentro de la placa, el fabricante publica sus librerías de compilación libres, de tal forma que resulta fácil para la comunidad portarlas a diferentes sistemas operativos.

Gracias a la colaboración de más interesados a través de la red, los prototipos evolucionaron hacia modelos más accesibles. En 2005 se comenzaron a fabricar las primeras placas y las bautizaron con el mismo nombre que uno de los hijos pródigos de la ciudad, "Arduino I, Marqués de Ivrea". El marqués llegó a rey de Italia en 1002. Y hoy hay fabricadas más de 120.000 placas Arduino por todo el mundo. Y el fenómeno sigue en aumento.

Quiénes usan Arduino

Las placas Arduino se usan principalmente en la enseñanza, y en proyectos artísticos o de entretenimiento interactivos. Sin embargo al igual que el "Meccano" de principios de siglo —que pensado como un juguete llegó a ser utilizado en universidades para el armado rápido de prototipos—, Arduino se utiliza en todo tipo de aplicaciones donde la facilidad y economía de recursos sea determinante: sistemas automatizados de encendido y apagado de luces o calefacción en hogares, dispositivos especiales para discapacitados, o sofisticados proyectos de investigadores y especialistas en universidades. En el campo del arte, probablemente sea con frecuencia Arduino la plataforma que actúa entre bambalinas, cada vez que nos encontramos con esas obras o instalaciones donde la interacción es la característica principal: sonidos, colores y movimientos que responden a los estímulos del público y generan una experiencia singular.

Como resulta esperable, otros proyectos de "hardware libre" tan disruptivos como Arduino, terminan confluyendo. Es el caso de las comunidades que diseñan impresoras 3D (fabbing), que adoptan (y adaptan) las placas Arduino a sus proyectos, como en "makerbot.com" o el propio proyecto RepRap (la famosa impresora 3D replicante que las implementó oficialmente para sus próximas versiones). O los aficionados al aeromodelismo, que siguiendo la filosofía de compartir el conocimiento, actualmente han construido comunidades colaborativas donde se diseñan sorprendentes artefactos voladores, y adoptan Arduino para controlar telecomandos, sensores o GPS. Al tratarse de hardware libre, cualquiera con conocimientos suficientes para fabricar una placa, puede adaptar el diseño de Arduino a sus necesidades, y ensamblar su propia placa modificada.

¿Cómo se fabrica y consigue Arduino?

El éxito de las plataformas abiertas en el mundo de la electrónica no es una novedad. A principios de los 80, la arquitectura abierta elegida por IBM para el diseño de su PC, permitió que otros fabricantes produjeran hardware compatible. Si bien los otros fabricantes también eran competencia para IBM, a la larga terminaron fortaleciendo la plataforma, bajando los precios y agrandando el negocio: IBM destronó a Apple (y a su plataforma cerrada) del mercado de las computadoras personales en muy poco tiempo. Si se lleva esta visión al extremo, se llega al concepto de "Free Hardware" u "Open Hardware, donde no sólo se comparte la compatibilidad y las especificaciones, sino los diseños y la documentación técnica. Pero como dice la famosa frase de Richard Stallman "libre no es gratis". Los fabricantes de las tarjetas pueden comercializarlas (el hardware) sin inconveniente, siempre que respeten los términos de la licencia, aunque aún no esta claro de que forma actúan las licencias libres en este campo. De esta forma, en el mundo hay decenas de empresas que se han interesado en comercializarlas: "Japanino" en Japón, "ZArdino" en sudáfrica, "Seeeduino" o "Freeduino" en Estados Unidos, para nombrar algunos ejemplos.

Algunos fabricantes comercializan la placa armada y lista para usar, y otros sólo "kits" semi-ensamblados. Pero hay otra forma de proveerse de una Arduino: fabricarla uno mismo desde cero. En el sitio de Arduino (arduino.cc) está disponible la documentación de cada placa, los diseños de los circuitos, las especificaciones de los componentes y todos los archivos necesarios. En los foros puede encontrarse el apoyo técnico y la experiencia y consejo de aquellos usuarios que ya armaron sus propias tarjetas.

Revolución Silenciosa

Poco a poco, como una revolución silenciosa, frente al modelo vertical de fabricación empleado por las grandes empresas de hardware, proyectos como Arduino, que surgen con el apoyo de comunidades colaborativas y horizontales, donde la circulación libre del conocimiento es la clave para generar ideas innovadoras, tanto técnicas, como en el modelo de producción, financiamiento o relación social, llevan del mundo virtual del software al mundo físico del hardware, nuevas alternativas para organizar la producción de objetos materiales. ¿Cuál es "el techo" de estos emprendimientos?

Hace unos meses circula por la red un popular documental sobre Arduino, donde David Cuartielles, uno de los fundadores del proyecto, especula sobre el futuro "para que esto siga así dentro de 10 años, lo que hace falta es que nosotros podamos seguir creando nuevo hardware, que la comunidad nos siga realimentando, y que nosotros podamos incluir sus cambios y sus propuestas dentro de las mejoras necesarias, y lo que yo veo dentro de 10 años, es que espero que haya por lo menos, un ordenador Arduino..."

Lo estaremos esperando.


Algunas características técnicas

img

Hay diferentes modelos de placas Arduino, el ultimo se llama Diecimila, utiliza:

  • Un microcontrolador ATmega168 de Atmel Corporation, de 8 bits AVR, con arquitectura RISC (Todas las placas utilizan esta serie de microcontroladores). Tiene 16KB de memoria para el almacenamiento de sketches (de los cuales 2KB están reservados para el gestor de arranque).

  • 14 E/S digitales, 6 de las cuales son PWM (modulación por anchura de pulso, para controlar voltaje variable). Cada uno de los 14 pines digitales de la Diecimila puede ser configurado tanto como entrada o como salida. Operan a 5V.

  • 6 entradas analógicas (resolución de 10 bits, 1024 valores)

  • Cristal de 16MHz

  • Una conexión para puerto USB

  • Botón de reseteo

  • Alimentación opcional (por si no está conectada por USB)


Processing, el lenguaje de programación de los artistas

Proccesing es un lenguaje de programación desarrollado por Ben Fry y Casey Reas, ambos graduados del MIT Media Lab (del Massachusetts Institute of Technology). El proyecto también se continuó en el Instituto de Interacción de Ivrea, donde Casey Reas dió clases. Según la intención de sus diseñadores es un lenguaje para que los "no-programadores" se inicien en programación. Alrededor de proccesing se fromó una activa comunidad de artistas-programadores orientados hacia el arte electrónico, la gráfica generativa, producción multimedia etc. El lenguaje de programación Arduino, está basado en "Wiring", (a su vez un derivado de Processing) desarrollado por Hernando Barragan, uno de los estudiantes del Instituto de Ivrea. El entorno de programación (IDE, o las aplicaciones que necesitas para programar) de Arduino está basado en el de Processing, y como aquel, está escrito en Java. Casey Reas, uno de los creadores de Processing, se conectó con el proyecto Arduino en Ivrea y de allí la idea de Banzi de hacer un "Processing para hardware". También hay bibliotecas para una gran variedad de lenguajes, que permiten hacer programas para Arduino.

img Estas imágenes son producto de la interacción de música con algoritmos matemáticos programados en processing, que generan automáticamente las formas gráficas.


Aplicaciones de Arduino

img

img Radio Reloj "open source" fabricado con Arduino.

img

img
Robot Hexapodo "Samsa II", proyecto de Pablo Gindel que utiliza una placa Arduino- (más imágenes http://www.flickr.com/photos/pablogindel/tags/arduino/)

img Modelo simple Arduino sobre placa de prototipado. Encender un LED con un boton...


img Logo Arduino

img Logo de Arduino en la placa

img Placa Arduino

img Placa arduino, modelo con puerto serie

img Placa Arduino, último modelo con puerto USB

img Licencia CC en el transfer de Arduino - imagen completa en http://arduino.cc/es/uploads/Main/Arduino_S3v3_R2_A4_4x2.png

img Massimo Banzi, fundador del proyecto

img David Cuartielles, fundador del proyecto

Links

Sobre Arduino

Aplicaciones de Arduino

Miscelaneas