En este artículo haremos una breve introducción al Arduino, que básicamente es una placa con un microcontrolador programable, barata y de fácil uso.
Lo primero que tenemos que tener claro es, que es un microcontrolador y en que se diferencia con el microprocesador. Todos alguna vez hemos entrado en contacto con ambos conceptos, es decir, todos en casa tenemos un ordenador, ya sea de sobremesa, portátil… Pues bien, el núcleo de nuestros ordenadores es un microprocesador, un chip encargado de realizar operaciones complejas a partir de unas instrucciones (que llamaremos programa) y unos datos de entrada obteniendo unos datos de salida. Para procesar y almacenar estos datos necesitamos conectar el microprocesador a la memoria RAM y demás dispositivos de E/S (Entrada/Salida), que se conectan a través de la placa base.
Definido de forma escueta el microprocesador, y teniendo en cuenta que habíamos dicho que el microprocesador necesita que se conecte a la memoria a través de la placa base, en el microcontrolador tenemos tanto la memoria donde almacenamos el programa, como la memoria donde se almacena los datos, en el mismo ensamblado (en el mismo chip).
Perdonad si me he tomado licencias para definirlo, se que hay varias diferencias más, como el caso de la ubicación de la memoria de datos y programa en referencia al microprocesador.
¿Donde nos encontramos un microcontrolador?
Nos lo encontramos en la mayoría de dispositivos electrónicos que usamos cotidianamente, como puedan ser, mandos a distancia, relojes, televisores, automóviles y un largo etcétera. La importancia de saber como funcionan y como se programan, nos abren muchísimas puertas.
Arduino
Hace unos años apareció un proyecto libre, llamado arduino, el cual facilitaba el acceso a esta clase de dispositivos a los estudiantes, dado que es una placa basada en openhardware (su diseño es libre y es posible reproducirlo por cualquier persona).
Inicialmente, la placa se conectaba a través de un puerto USB para programarlo (normalmente se hace en base a su IDE que lo podemos encontrar aquí). La programación de arduino no se realizaba a bajo nivel con ensamblador como muchos microcontroladores (a partir de ahora los llamaremos PICs), sino que se realiza con un lenguaje más comprensible por la mayoría de nosotros, C/C++ (la referencia básica al lenguaje la encontramos aquí y ejemplos en esta ruta).
Con estos elementos, un programador que no sabe de PICs, sería capaz de programar el arduino en poco tiempo.
La placa de la versión UNO se componía de 14 pines de E/S digitales, de los cuales, tenía 2 para conexión serie. Estos pines nos sirve para la mayoría de sensores básicos, o para reles, accionadores, etc… los cuales solo tienen 2 estados, encendido o apagado (o con las constantes de arduino HIGH y LOW). También tiene 6 pines analógicos, capaces de leer hasta 1024 niveles de tensión, llamados resolución del puerto analógico. Estos sirven para leer sensores que nos devuelven rangos de tensiones diferentes dependiendo de su estado, como pueda ser, una termoresistencia, una resistencia variable, etc…
Básicamente, con la estructura del arduino UNO, cualquier persona puede adentrarse en el mundo de la programación de PICs. Pero, para proyectos más grandes, se necesita mayor potencia, con lo que los chicos de arduino fueron creando placas y versiones mejoradas del arduino UNO. Expongo unas cuantas:
Arduino Leonardo
Es la primera evolución del arduino Mega, de hecho, tiene los mismos puertos pero el PIC es diferente, con mayor capacidad y mayor frecuencia de trabajo. Otra diferencia es el puerto USB, que a la vez de ser usado para subir el programa, el Leonardo es capaz de usar dicho USB como host, es decir, podemos usarlo de teclado, etc… Otra inclusión son los puertos SDA y SCL, utilizados para dispositivos que se comunican a través del protocolo I2C.
Pincha para ver las especificaciones.
Arduino Mega 2560
Para los que se les queda corto el Leonardo diseñaron el arduino Mega 2560, con muchísima más velocidad en el microcontrolador y muchos más puertos digitales (54 pines) y analógicos (16 pines). Tenemos los pines para I2C como el Leonardo (aunque cambian de posición).
De este diseño nace también el Arduino Mega ADK, que es una placa modificada del Mega 2560, pero se le añade un puerto USB host. Google ha diseñado varios proyectos con esta placa y su buque insignia, Android, un ejemplo lo tenéis en esta pagina.
Otra evolución, es el Arduino DUE, con el mismo diseño que el Mega 2560 pero con microprocesador de 32 bits. Es muchísimo más rápido que el Mega 2560.
Aquí podéis ver las especificaciones: 2560, ADK y DUE.
Arduino YUN
Básicamente, esta placa tiene las mismas características de pines y procesador que el Arduino Leonardo, pero se le ha incorporado un microordenador donde reside un pequeño Unix, el cual nos permite montar servidores web muy básicos. Esta placa, se usa mayoritariamente para proyectos en los que los sensores tienen que informar a través de una red Ethernet de una forma rápida y sencilla.
Existen más desarrollos que vendrán en un futuro, fusionando la potencia de las placas arduino con placas madres de ordenador. Ofreciéndonos la posibilidad de crear multitud de proyectos, con potencia y escalabilidad sin limites.
En próximas entradas intentaremos explicar el funcionamiento básico del arduino.