Arduino, esa plataforma de hardware libre
Arduino, esa plataforma de hardware libre
Qué es Arduino? Es una plataforma de hardware libre basada en los microcontroladores Atmega (168, 328, 8 y 1280). Estos chips son de bajo costo y permiten desarrollar rápidamente prototipos y aplicaciones específicas. Al ser openhardware, las especificaciones se encuentran disponibles abiertamente (ver planos acá) lo cual ha generado miles de clones y disenhos similares.Para su programación, lleva implementado un lenguaje del tipo Processing/Wiring muy similar a C. La compilación de los "sketches" (códigos) se realizan usando una interfaz gráfica en Java, y subido posteriormente al microcontrolador conectado a un puerto USB (que emula RS232).
El costo de un Arduino Duemilanove Atmega328 "hecho en China" ronda los 25 dólares, y si te decantás por otro disenho como ser el Metaboard de Metalab (Vienna) podés reducirlo a unos 15 dólares. En Argentina, se pueden conseguir en http://ditentec.com.ar/. El disenho de la placa del Arduino permite agregar "módulos" llamados "shields" concatenándolos, que expanden la conectividad y aplicaciones del sistema y/o reducen la carga computacional del micro (p.ej. para Audio DSP). Los módulos más comunes son de GPS, tarjeta SD, ethernet, Xbee (wireless), bluetooth, touchshield para 4D OLED e I/O expandidos, entre otras.
El microcontrolador por defecto no posee sistema operativo (lo cual es lógico). Tan solo existe un bootloader que carga el programa y lo inicializa. Pero... para tareas de scheduling, se han desarrollado varios sistemas operativos (DuinOS, FreeRTOS) que permiten programar varias "tareas" que correrán simultaneamente.
Características técnicas del Duemilanove ATmega328 (el más popular y flexible hoy en día)
Microcontroller ATmega328
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limits) 6-20V
Digital I/O Pins 14 (of which 6 provide PWM output)
Analog Input Pins 6
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 32 KB of which 2 KB used by bootloader
SRAM 2 KB
EEPROM 1 KB
Clock Speed 16 MHz
Ahora bien, para qué nos sirve un Arduino? Es muy útil tenerlos a mano cuando tenemos una idea y querés un prototipo lo antes posible, por ejemplo... querés medir valores de corriente, tensión, coseno fi, en el tablero principal de distribución eléctrica, y armar un webserver (ethernet shield) que te permita acceder a esos datos a través de internet (la API PowerMeter de Google). En realidad, the sky is the limit.
Querés leer más sobre el tema? acá van varios links:
- http://www.arduino.cc/es/ (sitio oficial en castellano)
- http://arduino.org/ (otro sitio en inglés)
Y la yapa, un tutorial en castellano:
Introducción
link: http://www.youtube.com/watch?v=_t2mSglFTvs
Hello World!
link: http://www.youtube.com/watch?v=FWnRjhGa6f0
Libro "Getting Started with Arduino"
Descargar en http://ifile.it/shy9a6j/0596155514.rar (clave: freetoall)