¿Qué es Arduino?
Con este artículo comienzo una nueva sección sobre Arduino, en semanas pasadas ya hablamos sobre ¿Qué es Raspberry Pi?, en esta entrega hablaremos sobre otra opción muy popular de desarrollo y propotipado para aplicaciones muy variadas, desde el Internet de las cosas, el control y aplicaciones tipo «Hágalo usted mismo» (DIY).
Un poco de Historia sobre Arduino
Arduino es una placa de desarrollo de código abierto, que fue concebida como una solución económica para los estudiantes de electrónica, por entre otros, Massimo Banzi, profesor del Instituto IVREA, por aquel entonces, los estudiantes tenían que utilizar para probar y desarrollar microcontroladores BASIC Stamp, que eran muy costosas, suponiendo un problema para los estudiantes.
¿Qué es Arduino?
Básicamente Arduino es un microcontrolador, el cual es capaz de ejecutar un programa que tiene que ser previamente compilado y almacenado en su memoria. Este programa puede interactuar con el «mundo» mediante puertos de entrada y salida digitales y analogicos, permitiendo expandir la forma de interactuar con el mediante lectura de sensores y usando las salidas para controlar dispositivos electrónicos, como motores, servos, leds, pantallas digitales, relés, etc.
Tenemos a nuestra disposición una serie de herramientas de desarrollo para crear y compilar este programa de control, el que proporciona Arduino, se llama IDE Arduino y puede ser descargado desde su página, también existen plugins y programas completos que pueden facilitar el desarrollo mediante bloques gráficos tipo Scratch:
Todo esto nos puede sonar muy conocido del artículo sobre Raspberry Pi, nos podríamos preguntar, ¿pero si esto mismo puede hacer el Raspberry Pi?, bueno, sí y no, la diferencia en pocas palabras es que el Raspberry Pi es un micro ordenador, y el Arduino Uno es un micro controlador.
En un próximo artículo analizaremos con más profundidad la diferencia que existen entre Raspberry Pi y Arduino.
Tipos de placa Arduino
Como es de esperarse en un desarrollo abierto, y sobre todo en una tarjeta pensada en proyectos de diferentes tipos, existen una gran variedad:
- 101
- Gemma
- LilyPad
- LilyPad SimpleSnap
- LilyPad USB
- Mega 2560
- Micro
- MKR1000
- Pro
- Pro Mini
- Uno
- Zero
- Due
- Esplora
- Ethernet
- Leonardo
- Mega ADK
- Mini
- Nano
- Yùn
- Arduino Robot
- MKRZero
Pero tampoco es para agobiarse, no hace falta conocerlos todos, ni usarlos todos, entonces, ¿cuál es la diferencia entre ellos?
Básicamente la diferencia entre ellos es el tamaño en dimensiones físicas, la cantidad de memoria interna (para almacenar el programa) y el número de entradas y salidas disponibles, así como algunos puertos especiales integrados como pueden ser de Red, Wifi y bluetooth.
Si tenemos en mente un proyecto específico será muy importante elegir la tarjeta que mejor se adapte a nuestras necesidades. Pero como principiantes, la tarjeta por «excelencia» y más recomendada es la Arduino Uno.
Shields
Un Shield es una tarjeta que se acopla en los puertos de comunicación de la tarjeta arduino y sirve para expandir sus funciones.
Tenemos entonces por ejemplo una tarjeta de expansión ó Shield para sensores como la de la imagen anterior, pero también tenemos una que agrega un puerto de Red, o que permite conectar una tarjeta GSM para conexión a la red Móvil, otra que nos da unos botones y una pantalla, por ejemplo.
¿Pero como me sirve este shield?, veamos a continuación el esquemático de conexión de un Arduino Uno.
Podemos apreciar en el esquema anterior que la tarjeta Arduino tiene una entrada de poder por el que puede ser alimentado, un puerto usb por el que se puede descargar el programa a la tarjeta, alimentarla de energía y recibir por puerto serie información que genere el Arduino, está equipado para conectarse con el mundo exterior con pines de entrada y salida digital y analogica.
Nota: No me centraré ahora en explicar el uso de las entradas y salidas del Arduino Uno, en un artículo posterior abordaremos su uso con una serie de tutoriales con ejemplos.
Ahora, si miramos el esquemático del shield de sensores en su v5 (la comercial ahora mismo):
El shield nos presenta una disposición mas clara de las salidas y su uso, por ejemplo tenemos marcadas las salidas para el Bluetooth (si quisiéramos conectar uno), las salidas y entradas paralelas y seriales incluyen 2 líneas, los datos y la alimentación, están distribuidos de una forma mas «lógica», en realidad este shield, solo reorganiza las salidas del arduino uno, haciendo más claro y fácil su uso.
Ahora veamos un ejemplo de shield que sí que amplía las funciones del arduino uno, el shield para red Ethernet.
Este shield nos presenta el puerto RJ45 para conectar a red y un lector de tarjetas microSD, dos funciones que quedarían automáticamente disponibles en el Arduino uno, simplemente insertando esta shield sobre la placa base del Arduino Uno. podemos observar que el shield en este caso respeta la serie de pines analogicos y digitales y los deja disponibles para conectar otras cosas, esta es otra ventaja de los shields, si bien añaden funciones y se conectan sobre el arduino, no lo bloquean por completo los puertos de entrada y salida (pueden reservar algunas entradas y salidas para las funciones expandidas).
[wp_ad_camp_2]
¿Qué ventajas tiene Arduino?
Al ser un diseño abierto tiene muchas ventajas en el desarrollo y flexibilidad.
- Es Barata. Las tarjetas Arduino son muy económicas en comparación con otras plataformas de microcontroladores. Existen versiones de «armelo usted mismo» e incluso las tarjetas armadas se pueden conseguir por unos pocos euros.
- Multiplataforma. La interfaz de desarrollo gráfico (IDE) de arduino, está disponible para ser descargada gratuitamente y se puede instalar en Windows, Mac OSX, y Linux .
- Sencillo, es un ambiente de programación muy fácil. La IDE de Arduino es muy sencilla de utilizar, requiere pocos conocimientos previos de programación, incluso existen módulos adicionales que pueden ayudar a realizar una programación visual por bloques, tipo Scratch.
- Código abierto y capacidad de aumentar funciones mediante módulos adicionales. LA IDE de Arduino permite la expansión de sus funciones y soportar nuevas funciones de hardware mediante plugins o módulos que se pueden agregar al sistema.
¿Cómo usar Arduino?
Muy similar a como vimos en el artículo sobre ¿Qué es Raspberry Pi?, el Arduino tiene puertos de entrada y salida a los que podremos conectar infinidad de dispositivos electrónicos, desde pulsadores y leds, relays, etc.
Un ejemplo muy básico es el del Led, en este caso el Arduino Uno incluye en su propio diseño un led en el Pin 13 que se puede hacer parpadear como si fuera el primer programa que nos proponen al iniciarse en la programación, el muy conocido «Hola mundo»:
Y el código necesario para hacer parpadear, extraído de los ejemplos de la página de Arduino es:
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Como podemos observar la construcción del programa es muy básica y consta de 2 secciones principales, la setup() y la loop()
En la sección setup() configuramos el modo de operación del pin, en este caso el LED_BUILTIN como salida.
Y en la sección loop(), que se ejecuta de forma repetitiva mientras el dispositivo tenga energía, el poner el nivel en alto, esperar 1 segundo (1000 milisegundos), cambiar el nivel a bajo (apagado), y esperar otro segundo, cuando se alcanza la línea final, el programa se ejecutara de nuevo desde el principio.
En próximas entregas analizaremos con ejemplos y paso a paso cómo conectar y programar el arduino para realizar diferentes proyectos básicos.
Referencias
Arduino Sitio Oficial: https://www.arduino.cc/
Wikipedia, Arduino: https://es.wikipedia.org/wiki/Arduino
[sc name=»firma_general»]