La programación no se limita exclusivamente a crear programas de ordenador o páginas web. La programación de microcontroladores está también a la orden del día. Ya sea con microcontroladores como el ESP8266, con dispositivos como el Raspberry Pi, o como el mundialmente conocido Arduino, cualquiera en su cada puede crear sus propios proyectos electrónicos, ya sea por hobby, o para usarlos en su día a día y hacer que ciertas rutinas sean más sencillas. ¿Y necesito tener conocimientos avanzados de programación? Lo mejor de todo es que no.
Debemos tener muy presente que este tipo de dispositivos como la popular Raspberry Pi o las Arduino, no han parado de crecer en cuanto a penetración de mercado en los últimos años. Son varias las razones de todo ello, pero debemos destacar la amplia funcionalidad que nos ofrecen tanto para usuarios noveles como para los más avanzados. Precisamente para poder sacar el máximo provecho a estos pequeños dispositivos, es donde entra en juego la programación de estos de la que os hablamos antes.
Además, no es necesario que seamos usuarios avanzados o expertos para así dar un uso mucho mayor a estos productos hardware. Lo más importante aquí va a ser la paciencia y la experiencia que con el tiempo vayamos acumulando. De hecho, precisamente por esta razón a continuación os vamos a hablar acerca de la programación en Arduino. Aquí también es importante que nos pique la curiosidad y dejemos adentrarnos en un sector muy interesante y que incluso nos podrá abrir algunos puestos de trabajo en el futuro.
Pero antes de nada debemos tener muy claro a qué nos referimos exactamente cuando hablamos de Arduino y qué nos vamos a encontrar aquí referente al sector de la programación.
¿Qué es Arduino?
Por un lado, Arduino es una compañía especializada en el desarrollo de hardware y software libre que lleva su nombre. Pero, cuando hacemos referencia a él, comúnmente nos referimos a las placas que podemos comprar, formadas por un microcontrolador (generalmente un AVR Atmel de 8 bits), una memoria y un sistema de almacenamiento con el que poder llevar a cabo cualquier proyecto. Las placas, normalmente, tienen también una serie de pines o conectores con los que podremos conectarlas a otros circuitos electrónicos más complejos para controlarlos.
Las placas más comunes que podemos encontrar en el mercado, y que cualquiera puede comprar para empezar a programar con ellas, son:
- Galileo
- Arduino Uno
- Leonardo
- Due
- Yún
- Tre
- Arduino Zero
- Arduino Micro
- Esplora
- Mega ADK
- Ethernet
- Mega 2560
- Robot
- Arduino Mini
- Arduino Nano
- LilyPad Arduino Simple/ SimpleSnap
- LilyPad Arduino / Arduino USB
- Arduino Pro / Pro Mini
- Fio
- MKR1000
- Arduino MICRO
- Arduino 101
- Gemma
Además, existen distintos accesorios (shields) que podemos conectar a estas placas para dotarlas de más características y conexiones. Los más comunes son:
- GSM Shield
- Ethernet Shield
- WiFi Shield
- Wireless SD Shield
- USB Host Shield
- Motor Shield
- Wireless Proto Shield
- Proto Shield
También podemos encontrar varios kits que vienen con la placa microcontroladora y varios accesorios adicionales, comprar accesorios como una pantalla LCD o adaptadores USB, e incluso una impresora 3D controlada en su totalidad por este dispositivo.
Todo ello se traduce en que tenemos a nuestra disposición una enorme cantidad de dispositivos hardware que nos abrirán un amplio abanico de posibilidades a la hora de llevar aquí a cabo todo tipo de proyectos personales. Evidentemente en todo ello jugará un papel muy importante nuestra creatividad e imaginación además de las ganas que tengamos de aprender en este sector de la tecnología.
¿Cómo se programa en Arduino?
Estas placas están basadas en un microcontrolador del tipo ATMEL, es decir, un controlador en el que podemos grabar instrucciones para que las ejecute sin necesidad de estar introduciendo los comandos a mano una y otra vez. Para escribir estas instrucciones es necesario usar un software llamado Arduino IDE, el Entorno de Desarrollo Integrado oficial que cuenta con todo lo necesario para poder dar forma a los programas que creamos para este dispositivo.
Aunque Arduino utiliza un lenguaje de programación propio, este está basado en C++. Por lo tanto, comparte las principales ventajas de este lenguaje de programación. Además, en las versiones más recientes del IDE, es posible incluso enviarle las instrucciones directamente en C++ sin tener que traducirlas a su propio lenguaje para programar esta placa. Llegados a este punto no es difícil imaginar que tener ciertos conocimientos en este popular lenguaje de programación que nos lleva acompañando muchos años, en este caso nunca estará de más.
Además de usar C++, el Arduino IDE también soporta otros lenguajes de programación alternativos, como es el caso de C (sin las extensiones de C++), Wiring (una plataforma de prototipado electrónico formada por un lenguaje de programación, un entorno de desarrollo integrado (IDE) y un microcontrolador), así como en Processing (un lenguaje de programación basado en Java, pero enfocado a placas electrónicas).
¿Cuál es el mejor de todos? Al final dependerá del usuario en cuestión. Si ya dominamos uno de los lenguajes anteriores, lo más cómodo y rápido será usarlo para mandar instrucciones a nuestra placa. Si no dominamos ninguno, y queremos empezar de cero, lo mejor es aprender el propio lenguaje de Arduino IDE.
IDE 2.0 (Arduino Pro)
En 2019, Arduino lanzó un nuevo IDE de programación bajo el nombre de «Arduino Pro IDE», el cual fue renombrado en 2021 por «IDE 2.0«. Este nuevo entorno de desarrollo sigue usando el clásico Arduino CLI, pero incluye una gran cantidad de mejoras y novedades de todo tipo para facilitar el desarrollo profesional de todo tipo de proyectos. Este nuevo IDE está basado en Eclipse Theia, y cuenta con características como, por ejemplo:
- Es mucho más completo y moderno que otras opciones similares para estas tareas.
- Tres modos de funcionamiento: Modo dual, modo clásico (idéntico al IDE clásico de Arduino) y modo profesional (vista del sistema de archivos).
- Nuevo Board Manager.
- Nuevo Library Manager.
- Para placas ARM, auto-completado de Basic.
- Integración con GIT.
- Modo oscuro.
Es totalmente gratuito y de código abierto, lo que siempre será de agradecer. Este IDE se puede descargar igualmente desde la web de descargas de Arduino siguiendo los pasos que os mostramos a continuación.
Como descargarlo
La instalación Arduino IDE no tiene ningún misterio. Lo primero que debemos hacer es descargar la versión que queramos instalar, ya sea para el sistema operativo Windows o para una distribución Linux. Para instalar la versión para Windows, Linux y macOS, debemos visitar este enlace. A continuación, debemos seleccionar que versión queremos descargar dependiendo de nuestras preferencias y del sistema operativo donde vayamos a instalarlo.
Para Windows está disponible, únicamente en 64 bits, el instalador tradicional, en formato MSI y un archivo comprimido que contiene el instalador. Para Linux tenemos la versión en formato .zip y la versión AppImage, ambas de 64 bits. Para el sistema operativo macOS, Arduino Pro ID está disponible para procesadores ARM y procesadores Intel únicamente en versión de 64 bits.
Si nuestro equipo tiene un procesador de 32 bits, tendremos que conformarnos con la versión Legacy de Arduino IDE, una versión que llegó a la versión 1.8.19 y que se encuentra disponible en el mismo link de descargar.
Una vez descargado, debemos ejecutar el archivo y esperar a que se completa la instalación. La primera vez que le ejecutemos, solicitará permisos para descargar contenido adicional de su página web además de permiso para utilizar el Firewall de Windows para conectarse a Intenet.
Si queremos programar en Arduino en un Chromebook, gestionado por ChromeOS, podemos utilizar Arduino Web Editor, disponible desde aquí, o Arduino Cloud, ya que, de momento, no hay ninguna aplicación compatible con ChromeOS.
Otros programas para programar
Si el software oficial de Arduino no termina de convencernos, o queremos hacer uso de otros IDEs mucho más completos y especializados, también hay otras herramientas para programar en este sistema. Algunas de las más conocidas, y a las que debemos dar una oportunidad, son:
- PlatformIO. Una herramienta especializada en la programación de todo tipo de placas y controladoras. No solo soporta Arduino, sino que también es ideal para programar en Raspberry, ESP32, ESP8266 y muchas otras.
- Eclipse Arduino IDE. Un plugin para preparar a Eclipse para programar en este dispositivo. Perfecto si lo que queremos es programar en Java para él.
- Codebender. Una alternativa basada en la nube para poder programar desde cualquier lugar sin tener que instalar nada. Cuenta con muchas funciones para ayudarnos en la programación y depuración del código.
- ArduinoDroid. Porque siempre llevamos el móvil encima, si nos surge la necesidad de crear un programa para Arduino en cualquier lugar, este es el primer IDE, y el más completo, que podemos ejecutar en Android.
- Programino. Un programa para escribir código, compilar y depurar en todo tipo de placas. Está especializado en C/C++, aunque también soporta otros lenguajes, como HTML y JavaScript, entre otros.
En cuanto a si uno es mejor que otro, al final todos son muy parecidos. El oficial puede estar perfecto para programar usando su lenguaje base y sin necesidad de utilizar demasiadas librerías externas. Pero para proyectos más complejos, puede quedarse corto, y es entonces cuando un IDE avanzado, como estos que hemos visto, nos pueden ayudar a mejorar nuestros programas.
Primeros pasos en la programación
Programar para Arduino no es muy diferente a hacerlo para cualquier otro microcontrolador, e incluso para hacerlo en cualquier lenguaje de programación. Simplemente debemos tener en cuenta las características especiales del IDE y del lenguaje que vamos a utilizar.
A grandes rasgos, la sintaxis es muy similar, como ya hemos explicado, a la de C++. Si ya conocemos este lenguaje de programación, seguramente nos hagamos muy rápido a los cambios que encontraremos para dar forma a este sistema. Mientras programamos en el IDE podemos añadir comentarios que nos ayudarán a entender mejor el código y, además, ayudarán a otras personas a entenderlo en caso de que lo compartamos. Igual que en otros lenguajes, cada sentencia debe acabar en una coma (,) o en punto y coma (;), ya que, de lo contrario, el compilador tratará todo como una misma sentencia y el compilador dará error.
Dentro de la sintaxis nos encontraremos con otro elemento muy importante: las variables. Estas se utilizarán para guardar distinta información en la memoria, acceder a ella cuando lo necesitemos, y podremos modificarla en función de las necesidades del programa.
Y también debemos tener en cuenta las funciones, o métodos. Especialmente aquellas que están relacionadas con la comunicación con los pines. Por ejemplo, una de las más básicas es «digitalWrite()«, la cual nos permite, mediante parámetros, activar o desactivar la corriente en un pin concreto.
Otras funciones esenciales para la programación son setup(), la función que se ejecutará en primer lugar nada más cargar la placa y que nos permitirá preparar el dispositivo para el programa que vamos a ejecutar, y la función loop(), función que se ejecutará una y otra vez para actualizar, por ejemplo, la información que se muestra en pantalla. Es recomendable tener cuidado con esta última, ya que el dispositivo quedará encerrado dentro de ella y podemos dar lugar a bucles infinitos.
Cuando tengamos el programa creado, gracias al Arduino IDE podremos compilarlo, o lo que es lo mismo, traducirlo a lenguaje máquina (un lenguaje de muy bajo nivel) para que se pueda ejecutar en el microcontrolador.
Aprender a programar con Arduino
Dentro de la programación de micro-controladores, Arduino es una de las plataformas más accesibles y versátiles con la que empezar. Además, la red está repleta de una gran cantidad de cursos de gran calidad con los que, incluso si no tenemos muchos conocimientos dentro de la programación, vamos a poder empezar a crear nuestros propios proyectos de forma muy rápida y sencilla.
El primero de los cursos que recomendamos para empezar es «Curso Arduino desde cero«, que podemos encontrar en YouTube. A lo largo de sus 74 capítulos de entre 15 y 20 minutos de duración cada uno podremos aprender desde lo básico hasta lo más avanzado.
Otro curso, para los que tengan prisa, que debemos revisar es el de «10 primeros pasos para programar Arduino desde cero«, un curso rápido e intensivo con el que, en tan solo 1 hora, podremos aprender desde qué es Arduino hasta cómo funcionan las principales funciones, las variables, los bucles, y hasta usar librerías.
Por último, si no tenemos miedo al inglés, otro curso al que podemos recurrir para aprender a programar este dispositivo es Arduino 101 – Learn Arduino For Beginners. De forma parecida a los anteriores, empezaremos por lo básico hasta conocer a fondo cómo funciona este dispositivo y aprender a crear programas complejos con él.
Por supuesto, también tenemos una gran cantidad de información y de recursos dentro de la propia web de Arduino. Si eres de los que les gusta más investigar y leer documentaciones antes que ver vídeos en YouTube, esta es la mejor fuente que encontrarás para aprender a programar en él.
Proyectos de Arduino
Cuando empezamos a dar los primeros con este dispositivo, lo primero que haremos será crear lo típico para irnos haciendo con el IDE, los métodos y su compilador. Por ejemplo, podremos crear sencillos contadores, un semáforo usando LEDs, y, en el caso más avanzado, incluso un reloj binario.
Una vez dominada la parte básica de la placa, entonces podemos ir a proyectos ya un poco más serios usando otros componentes adicionales. Por ejemplo, si conectamos una pantalla LCD al Arduino podremos crear nuestro propio reloj digital.
Por último, cuando ya dominemos este dispositivo, podremos crear todo tipo de proyectos, desde los más básicos y sencillos hasta proyectos de lo más interesantes como máquinas expendedoras, y hasta un robot BB8 controlado desde nuestro móvil.
Las posibilidades son infinitas. Gracias a Arduino vamos a poder automatizar nuestro hogar de forma muy sencilla y barata, o llevar a cabo cualquier trabajo o proyecto que deba ser ejecutado por una máquina. El límite lo pone tu imaginación.
Tal y como sucede en la mayoría de los ámbitos profesionales relacionados con el desarrollo del software, todos tienen que empezar desde cero en algún momento. Por tanto, si estáis pensando en adentraros en este apasionante mundo de la programación en Arduino, quizá este vídeo os sea de mucha ayuda. Y es que gracias al mismo vais a tener acceso a más de una decena de proyectos relacionados con todo ello. Quizá lo más llamativo en este sentido sea que los mismos se centran en aquellos que están empezando en estas tareas de programación para esta placa.
Más adelante cuando ya vayamos cogiendo experiencia en este tipo de proyectos, podremos adentrarnos en otros más complejos.
Si los proyectos que hemos mostrado más arriba son muy sencillos, en el vídeo que os mostramos a continuación, vamos a encontrar 15 proyectos avanzados con los que podemos crear proyectos de todo tipo, mucho más completos y que nos pueden ser de utilidad en el día a día.
En el siguiente vídeo podemos ir un poco más allá y sacarle el máximo partido a Arduino para crear un robot carga objetos, un escáner 3D, un péndulo invertido, entre otros.