viernes, 18 de mayo de 2012

Arduino, una extraordinaria plataforma de hardware libre

Aunque salíó al mercado hace algún tiempo, creo que merece la pena hablar de Arduino. Esta plataforma de hardware libre, basada en una placa con un microcontrolador y une entorno de desarrollo, no sólo está revolucionando la enseñanza de la electrónica, sino que ha permitido la entrada de infinidad de usuarios cuyo conocimiento hasta ahora de este campo era básico o nulo.


El hecho de que sea hardware libre, tiene algunas implicaciones importantes ya que, al ser un diseño libre, podemos fabricarnos nuestras propias placas en lugar de comprarlas. Esto ha dado lugar a la aparición de algunas variantes como las placas Freeduino compatibles con la Arduino, pero de precio algo inferior.


La versión más empleada actualmente es la Arduino Uno, que emplea un microcontrolador ATMEL 328P, posee 32 KB de memoria (que el la práctica se reducen ligeramente hasta los 28 KB debido al cargador necesario para cargar los programas desde el entorno de desarollo) y dispone de 14 E/S digitales y 6 entradas digitales. La placa funciona a 5V, y puede alimentarse tanto por USB como mediante un transformador externo. Sin embargo existen otras versiones, algo más potentes como la Mega, con 54 E/S digitales y 256 KB, o de menor tamaño como la LilyPad ideal para las prendas de vestir o wearables.


La programación de las placas se lleva a cabo en el llamado Lenguaje de programación Arduino o "Arduino Programming Language" basado en Wiring, un marco de programación para microcontroladores, mientras que el entorno de programación está basado en Processing.


Entre otras razones, las ventajas que han hecho Arduino tan popular son:

  • Precio reducido de la placa y los componentes: la placa puede adquirirse por unos 20€ /30$. Además existen numerosos kits para principiantes (starters kits) que incluyen algunos componentes para montar diseños básicos a precios asequibles.
  • Enorme número de placas de accesorios complementarios disponibles o shields (ethernet, gps, wireless, buletooth, RFID, GPS, GSM, relés, etc,) así como de sensores (temperatura, caudal, presión, nivel, detección, células fotoeléctricas, acelerómetros etc.)
  • Entorno de programación gratuito y sencillo, que además incluye ejemplos, lo que permite empezar a aprender nada más conectar la placa. 
  • Disponibilidad del entorno de programación para diferentes sistemas operativos: GNU/Linux, Windows y MacOS.
  • Adopción de conexión USB en lugar de la inicial RS232.
Puede encontrarse más información en la página oficial del proyecto, y en este fantástico documental.