Hace algún tiempo se nos ocurrió la brillante idea de unir un mundo que nos apasiona, Arduino, con otro al que también dedicamos parte de nuestra vida laboral, WordPress. Ya saben lo que nos encanta cacharrear, tener ideas felices y, a veces, por qué no reconocerlo, meternos en fregados. Tras poner la idea sobre la mesa quisimos hacer una búsqueda para ver cuál el panorama, si era algo habitual, si había mucha gente trabajando en ello, etc. Y la verdad que en un primer momento nos sentimos un poco las locas del pueblo. Por los resultados que encontrábamos no parecía que mucha gente hubiera explorado este camino.
Pero eso no nos frenó, que no se hubiera hecho, o no demasiado, no quería decir que no se pudiera. Analizado técnicamente era totalmente viable. Arduino, ya sea haciendo uso de módulos adicionales o con placas que lo integran tiene la posibilidad de conectarse a Internet. WordPress, por su lado, cuenta con la REST API que permite gestionar el contenido del sitio desde fuera. Si nosotras nos encargamos de construir el puente que interconecte ambos mundos, ¿qué puede fallar?
Visto el interés que ha generado este tipo de proyectos nos gustaría ir poco a poco desgranándoles qué hace falta para montarlos. Aunque antes de llegar ahí vamos a frenar un poco, no vayamos a empezar la casa por el tejado, primero es necesario conocer bien a lo que nos enfrentamos. Para abordar y entender un proyecto de tanta complejidad, antes debemos sentar bien las bases.
Así que hoy nos centraremos en conocer Arduino en profundidad y todos los aspectos que engloba. Y como siempre es más fácil asimilar conceptos usando ejemplos prácticos, iremos viendo cómo montar nuestro primer proyecto. Sin complicarnos la vida, hemos elegido uno de los más básicos que consiste en el parpadeo de un led.
Empecemos por el principio, cuando hablamos de Arduino, exactamente de qué estamos hablando. Arduino es una plataforma de código abierto donde entra en juego una parte hardware, la placa que cuenta con un microcontrolador, y una parte software, donde desarrollamos el código que lleva a cabo la funcionalidad deseada. Fue concebida para facilitar el acceso a la electrónica llevando a cabo proyectos de todo tipo.
Conociendo la placa
Realmente lo correcto sería haber puesto Conociendo las placas, porque una de las características de Arduino es la gran variedad de placas de las que dispone. Ofreciendo así una gran versatilidad y flexibilidad para crear proyectos de diferente índole. Se diferencian unas de otras por las especificaciones del microcontrolador, el número de puertos de entrada y salida, las funcionalidades adicionales que traen de serie, etc.
En este caso nos vamos a centrar en destripar el Arduino UNO que suele ser la más usada cuando nos estamos iniciando. Veamos las principales partes que la componen:
- Botón de reset: reinicia la placa y, por tanto, el código que se esté ejecutando.
- Entrada USB: permite conectar la placa al ordenador para programarla y/o alimentarla.
- Regulador de voltaje: controla el voltaje y la corriente de alimentación para evitar posibles daños a la placa.
- Fuente de alimentación: utilizada para alimentar la placa cuando no está conectada por el puerto USB.
- Microcontrolador: ATmega328, es el cerebro de la placa, encargado de ejecutar las órdenes que programemos.
- Pines analógicos: son únicamente de entrada. Leen los valores de sensores analógicos y los convierten internamente en valores digitales, dispone de 6.
- Pines de alimentación y tierra: sirven para alimentar los circuitos externos que conectemos a la placa.
- Pines digitales: cuenta con 14 pines digitales, pueden configurarse como entrada o salida. Además, algunos tienen funciones especiales como la posibilidad de usarse para comunicación serie (pines 0 y 1) o comunicación SPI (pines 10 a 13).
- Leds TX y RX: indicadores visuales cuando hay transmisión de datos entre el ordenador y la placa. Sirven de ayuda cuando tenemos que depurar el sistema.
- Pines ICSP: método alternativo para programar la placa en caso de no hacer uso del USB por la razón que sea.
Montando el circuito
Hemos dicho que a modo de ejemplo el objetivo es crear un proyecto que se encargue de encender y apagar un led. Si traducimos eso a componentes electrónicos necesitamos la placa, nuestro Arduino UNO, y un led. Además, para poder llevar a cabo el cableado hacemos uso de una protoboard, una plaquita que sirve para montar circuitos electrónicos interconectando sus componentes, sin requerir que estos sean soldados.
Si nos fijamos bien en la foto aparece un tercer componente que hasta ahora no hemos nombrado. No es más que una resistencia, necesaria para controlar la corriente que fluye por el led y evitar dañarlo. Una medida de protección eléctrica.
Preparando el entorno de desarrollo
Como hemos comentado, todo proyecto de Arduino tiene su parte hardware y su parte software. Ahora que tenemos el circuito montado podemos ponernos manos a la obra con la programación. Para ello, lo primerísimo es tener preparado nuestro entorno de desarrollo. Aunque existe un editor en línea, lo más habitual es que instalemos el IDE de Arduino, disponible para los diferentes sistemas operativos. El lenguaje de programación está basado en C/C++, así que si ya lo conoces no te costará adaptarte.
Debemos saber que en el mundillo un programa de Arduino se conoce como sketch y suele constar de 3 partes:
- Zona de declaraciones: donde se definen las variables globales, librerías que utilicemos, etc. Es opcional y, a diferencia de las dos restantes, puede no estar presente.
- Función setup(): solo se ejecuta una vez, al inicio, es donde se inicializan los pines y las variables, entre otras cosas.
- Función loop(): como su nombre indica, se ejecuta de forma continua en bucle. Define el comportamiento del proyecto que estemos implementando.
Este sería el código necesario para nuestro ejemplo, un led que parpadea de forma continua.
Analizando el código veamos qué funciones hemos utilizado:
- pinMode: define si un pin es de entrada o salida, como en este caso el Arduino va a proporcionar la señal necesaria para encender el led es de salida.
- digitalWrite: permite escribir el valor lógico en un pin de salida. Lo pondremos a HIGH para encender el led y a LOW para apagarlo.
- delay: establece un tiempo de espera antes de que se ejecute la siguiente instrucción. En este proyecto si no establecemos un cierto retraso entre encendido y apagado, el led en la práctica estaría parpadeando, pero lo haría a una velocidad tan rápida que seríamos incapaces de detectarlo.
Cuando tenemos nuestro sketch preparado, igual que en cualquier entorno de programación debemos compilar el código. Que no es más que comprobar que la sintaxis es correcta y que no hemos cometido ningún error. Una vez pasada esta verificación ya podemos unir los dos mundos, software y hardware, tenemos que subir el código que hemos programado a la placa. Antes debemos asegurarnos en el IDE que en Herramientas > Placa tenemos seleccionado el modelo que estamos usando, Arduino UNO, y el puerto al que hemos conectado la placa en el ordenador es el correcto. Resumidamente, el volcado del código lo que hace es enviarlo a la memoria flash del microcontrolador. A partir de ese momento se ejecutará cada vez que este se inicie.
Y voilá, ya podemos gritar a los 4 vientos que hemos hecho nuestro primer proyecto en Arduino, ¡el led parpadea! Aquí hemos entrado en mucho detalle porque hemos ido explicando las diferentes partes del proceso para sentar las bases de Arduino. Pero si pruebas a hacerlo tú, verás que es la mar de sencillo. Y no solo eso, cuando sientes la emoción de ver que efectivamente el led se está encendiendo y apagando al ritmo que le hemos pautado te invaden unas ganas infinitas de seguir cacharreando y seguir haciendo otros proyectos.
Por si ese es tu caso y te encuentras en ese punto de querer montar algo, pero no sabes qué, te dejamos este listado de ideas para principiantes a modo de inspiración.