Arduino es una plataforma de desarrollo abierta, concebida para la creación de prototipos y aplicaciones Hardware. Arduino fue creado inicialmente para estudiantes, ya que antes de esto las placas que existían eran caras y tenían una arquitectura cerrada, lo que no las hacía atractivas ni a la comunidad de estudiantes, ni a los aficionados a la electrónica en general.
Con la creación de Arduino como un sistema de desarrollo abierto (no necesita licencias) y la constitución de un lenguaje de programación propio, en el que prima la sencillez en la programación, dio como resultado un entorno de desarrollo muy cercano a la gente, que facilita el uso de la electrónica en proyectos de todo tipo, haciendo esta plataforma muy atractiva y constituyendo entorno a ella una de las comunidades más grandes de desarrollo que existen en internet actualmente.
El Hardware de Arduino, consiste en una placa con un microcontrolador Atmel AVR, en función del modelo de placa llevará un microcontrolador u otro, los más usados son el Atmega168, Atmega328, Atmega1280 y el ATmega8. En los últimos años también se han empezado a implementar microcontroladores ARM de 32bits. Una de las características que hacen que Arduino sea un sistema muy extendido y muy valorado, es su alta conectividad, y es que saca al exterior todas las salidas del microcontrolador mediante pines de conexionado rápido (tan solo tendremos que "pinchar" cables como lo hacemos con las protoboards). Además se ha creado un estándar en cuanto a la distancia y situación de estos pines, esto es así para la implementación de todo tipo de "shields" los cuales son otra gran baza a la hora de elegir Arduino frente a otras plataformas de desarrollo.
Modelos de Arduino
En la actualidad Arduino ha lanzado al mercado, placas, shields y sensores casi para cualquier cosa, las diferencias fundamentales entre una placa u otra suelen ser, el numero de pines que sacan al exterior y la tipología de estos (si son pines digitales, analógicos o de PWM...), la memoria de programa de la que disponemos y la frecuencia de reloj del microcontrolador, o lo que es lo mismo, la velocidad a la que podemos trabajar. En función de estos tres parámetros, deberemos escoger una placa u otra para nuestros proyectos (dependiendo de nuestras necesidades), ya que puede que tan solo necesitemos unas pocas entradas/salidas y que la velocidad en nuestra aplicación no sea importante o quizás tengamos que gestionar 20 o 30 procesos diferentes y hacerlo de manera casi instantánea, según lo que queramos hacer, podemos ajustarnos a una placa u otra, ya que como es lógico una placa con mayor número de entradas/salidas, mayor memoria de programa y mayor velocidad será más cara y puede que nuestros proyectos no necesiten estos recursos.
En la imagen superior, podemos ver varios de los Arduinos más comunes, aunque el catalogo es más extenso y dentro de los mismo modelos podemos encontrar variantes. Si quieres ver una lista completa de los productos de Arduino haz clic aquí
A continuación a modo de resumen y para conocer las características más importantes de cada Arduino, muestro una tabla donde se pueden ver el numero de entrada/salidas de cada tipo, la memoria y la frecuencia de reloj a la que trabaja el microcontrolador. esta tabla nos será muy útil para determinar que Arduino es el que mejor se puede adaptar a nuestro proyecto.
Este tutorial fue escrito hace bastante tiempo, aunque las placas Arduino UNO, MEGA y Mini siguen siendo bastante populares, algunas de ellas han sufrido mejoras, incorporando conectividad WiFi o cambiando algunos de sus elementos. En lo fundamental no han cambiado, mientras que estas placas sigan usando los mismo Chips, las características en cuanto al número de puertos, conectividad, compatibilidad y forma de programación no cambian en absoluto.
Shield's y sensores
Como mencioné anteriormente, una gran parte del éxito de la plataforma Arduino reside en la gran variedad de shields y sensores que podemos encontrar en el mercado, estos dan realmente la funcionalidad a Arduino y hacen mucho más sencilla la creación de cualquier proyecto electrónico, pero...¿ que es realmente un "shield"?. Para explicarlo de forma sencilla, podríamos decir que si Arduino es el cerebro del sistema, un shield puede llegar a ser desde el musculo hasta los sentidos del sistema. La placa Arduino tan solo puede trabajar con pequeñas señales, además esta placa no tiene demasiada conectividad aparte de la conexión USB que posee y algún puerto serie interno del propio microcontrolador, por ello y a modo de que cada cual adapte Arduino a sus necesidades, surgen los shields, hay desde shield para controlar motores o elementos de potencia, hasta shields que dan conectividad, wifi, GSM o incluso bluetooth, esto hace que Arduino sea un sistema modular el cual podemos adaptar según las necesidades del proyecto. Una particularidad de la mayoría de los shields es que tan solo hay que pincharlos en la placa Arduino y cargar la librería para que sean totalmente funcionales. Esto hace que sea muy rápido añadir módulos al sistema. En cuanto a los sensores, decir que también hay una gran variedad ya creada y adaptada para funcionar con Arduino, podemos encontrar desde sensores de presión, humedad, temperatura, acelerómetros, sensores de distancia.... En futuros tutoriales, según vaya utilizando tanto los shields como los sensores, iré poniendo sus características más destacadas y su forma de uso, de todas formas se pueden ver algunos aquí
Lenguaje de Programación
Arduino se programará mediante un editor de texto o "sketch" el cual usa un lenguaje propio creado expresamente para la plataforma Arduino, este lenguaje, está basado en "Processing", que es un lenguaje de alto nivel. El Sketch es un entorno de programación sencillo el cual no tiene más que las opciones básicas de programación, verificación del código y carga en la placa Arduino.
Comentarios potenciados por CComment