Siempre creciendo, siempre aprendiendo. Cultura maker.

¡Hola, holita, amiguitos!.

 

Con este artículo empezamos una serie de tutoriales de iniciación a Arduino que pueden servir tanto para el aficionado autodidacta que quiera iniciarse en este mundillo, como para utilizar en formato práctica en clases de Tecnología, de Tecnologías de la Información y de la Comunicación o de Tecnología Robótica para ESO y BACHILLERATO. ¡Vamos allá!.

 

En primer lugar tenemos que dejar claro qué es una tarjeta Arduino (o uno de sus múltiples clones): es una tarjeta programable con fines educativos que cuenta con varios pines que pueden utilizarse como entradas o salidas digitales (de acuerdo al programa que establezcamos). Existen varios modelos, aunque el UNO suele ser el más popular:

 

arduinoUno

(Nota aclaratoria: por un desacuerdo entre los desarrolladores originales que ha derivado en distintas acciones comerciales, en Europa se está utilizando el término GENUINO en lugar de ARDUINO por una mera cuestión de derechos. Así que no os dejéis confundir si os encontráis con este segundo término).

 

Cada modelo tiene sus particularidades, pero todos ellos incorporan las siguientes características:

 

  • Su unidad central de control es un microcontrolador ATMEL, un microchip con estructura de microprocesador donde volcaremos nuestro programa y que interactuará con el resto de elementos que le hayamos conectado a través de sus distintos pins.
  • El programa debe ser COMPILADO y VOLCADO en la memoria de Arduino por la IDE. Es decir, nosotros crearemos un programa en un lenguaje informático, pero ese texto debe traducirse a lenguaje máquina (lenguaje binario, 1 y 0).
  • Hay múltiples pines que trabajan en binario (los valores son 0 V y 5 V), que pueden funcionar como salidas (activando o desactivando a nivel 5 V elementos como LEDS, servomotores o piezoeléctricos) o como entradas (leyendo el nivel 0 V/5V de un pulsador, por ejemplo).
  • Incorpora un convertidor analógico/digital aplicable a varios pines (normalmente 6), que pueden leer un valor analógico entre 0 y 5 V, devolviendo un valor digital entre 0 y 1024.
  • El sistema se puede alimentar directamente desde el cable USB del ordenador. No necesitamos alimentación de tipo pilas.
  • De todos modos, si queremos un sistema automático independiente del ordenador, se admite la conexión de portapilas hasta unos 15 V, AUNQUE RECOMIENDO NO PASAR DE LOS 9 V. Podemos desenchufar el circuito del ordenador y aún así seguiría funcionando.
  • LO MÁS IMPORTANTE: ARDUINO/GENUINO ES SORPRENDENTEMENTE SÓLIDO. AGUANTA CARROS Y CARRETAS, INCLUÍDOS ESTUDIANTES DE EDUCACIÓN SECUNDARIA.

 

¿Qué necesitaremos para realizar nuestras prácticas?. En el apartado Hardware:

 

  • Una tarjeta Genuino/Arduino (los modelos UNO y MEGA están muy extendidos, pero hay muchísimos más). Una clónica también puede servir, pero no te enfades si te encuentras problemas de compatibilidad con los drivers.
  • Una protoboard
  • Elementos pasivos varios: resistencias, LEDs, potenciómetros, condensadores... ya tu'h sabe'h

 

En el apartado software, sólo necesitaremos la IDE (Integrated Development Environment, Entorno de Desarrollo Integrado) de Arduino. Viene a ser el programa que utilizaremos para introducir las instrucciones en la tarjeta, en un lenguaje derivado del Java, pero muy sencillo y con una curva de aprendizaje muy amistosa. En el momento de redactar este artículo, ya van por la versión 1.8.1, y puedes descargártela de modo completamente libre en https://www.arduino.cc/en/main/software

 

tutoarduino1a

 

Descárgate e instala la versión que corresponda a tu sistema operativo. Desde Windows 7, los drivers que posibilitarán la comunicación de la tarjeta con el ordenador se instalan automáticamente, así que no perderemos más tiempo con eso.

 

Conectando la Arduino a nuestro ordenador

 

Una vez te hayas descargado la IDE de Arduino, darás estos pasos, por este orden:

 

  1. Conecta tu Arduino a un puerto USB de tu ordenador. Como ya te he dicho, los drivers deberían instalarse automáticamente, al menos en Windows. Espera a que finalice el proceso.
  2. Arranca la IDE de Arduino.

La pantalla que te encontrarás se parecerá a ésta:

 

tutoarduino1b

 

Los botones señalados son COMPILAR (comprueba que el código no tenga errores y lo transforma en el bloque de unos y ceros) y VOLCAR (además de compilar, vuelca ya el resultado compilado en la memoria de Arduino).

 

Dependiendo del modelo de Arduino que tengas, antes de volcar tu primer programa, debes asegurarte de dos cosas:

 

  • En el menú Herramientas->Placa, selecciona el modelo de tarjeta que has conectado (yo, por ejemplo, estoy trabajando con la UNO en este momento).
  • La Arduino se comunica con la IDE mediante un puerto COM. En Herramientas->Puerto, selecciona el último que aparezca (el COM 4 en mi ejemplo), dado que acabas de conectar la tarjeta.
tutoarduino1c tutoarduino1d

 

 

Volcando mi primer código: ¡Hola, mundo!

 

El primer ejemplo que vamos a utilizar es encender un LED. Puedes utilizar directamente el menú Archivo->Ejemplos->Basic->Blink, o hacer un copia pega de este código, con mis propios comentarios:

 

//La función setup sólo se ejecuta al arrancar (encender) la Arduino
void setup() {
 //Preparamos el pin 13 como salida
  pinMode(13, OUTPUT);
}

//La función loop es un bucle: al llegar al final del conjunto,
//volverá al principio, ejecutándose varias veces por segundo.
void loop() {
  digitalWrite(13, HIGH);   //Ponemos 5 V en el pin 13
  delay(1000);              //Esperamos 1 segundo (1000 ms)
  digitalWrite(13, LOW);    // Ponemos 0 V en el pin 13
  delay(1000);              // Esperamos 1 segundo
}



Utiliza el botón VOLCAR de tu IDE para que este código se vierta en tu tarjeta. Pasados escasos segundos, un mensaje debe indicarte que todo ha ido bien. Observa ahora tu tarjeta de cerca,  en una zona serigrafiada "D13" ó "L":

 

tutoarduino1e

 

Observarás que ese LED parpadea de acuerdo a tu programa con una frecuencia de 1 segundo (1000 ms). Si por ejemplo quieres que parpadea más deprisa, cambia los valores de delay() de 1000 a 100:

 

//La función setup sólo se ejecuta al arrancar (encender) la Arduino
void setup() {
 //Preparamos el pin 13 como salida
  pinMode(13, OUTPUT);
}

//La función loop es un bucle: al llegar al final del conjunto,
//volverá al principio, ejecutándose varias veces por segundo.
void loop() {
  digitalWrite(13, HIGH);   //Ponemos 5 V en el pin 13
  delay(100);              //Esperamos 0'1 segundo (100 ms)
  digitalWrite(13, LOW);    // Ponemos 0 V en el pin 13
  delay(100);              // Esperamos 0'1 segundo
}

¿Notas el cambio de velocidad?. ¿Qué tal si lo complicamos un poco?. ¿Cómo modificarías el código para que simulara el latido de un corazón?.

 

//La función setup sólo se ejecuta al arrancar (encender) la Arduino
void setup() {
 //Preparamos el pin 13 como salida
  pinMode(13, OUTPUT);
}

//La función loop es un bucle: al llegar al final del conjunto,
//volverá al principio, ejecutándose varias veces por segundo.
void loop() {
//Primer latido digitalWrite(13, HIGH); delay(100); digitalWrite(13, LOW); delay(100);
//Segundo latido digitalWrite(13, HIGH); delay(100); digitalWrite(13, LOW);
//Esperamos 1 sg delay(1000);
}

 

¡Haz la prueba!

 

Primeros comentarios sobre el lenguaje de programación de Arduino.

 

Arduino utiliza un IDE que es primo hermano de Processing, que es una especie de Java simplificado. Sólo algunas notas al respecto:

 

  • TODAS las instrucciones deben acabar en punto y coma
  • setup() y loop() son dos funciones principales. Siempre deben aparecer. El conjunto de instrucciones que llevarán a cabo deben estar encerrados entre llaves {}
  • setup() es una función de configuración, que sólo se ejecuta al arrancar Arduino. Ahí definiremos como entrada (input) o salida (output) cada uno de los pines que vayamos a utilizar.

 

Circuito electrónico: conectamos un LED

 

Por supuesto, estamos utilizando esta tarjeta como un sistema de control, y como tal quiero que pueda leer señales del exterior y activar actuadores, lo que conlleva conexiones electrónicas. Como esto sólo es una introducción, sólo te voy a proponer el siguiente montaje:

 

tutoarduino1f tutoarduino1g

 

 

 El circuito es muy sencillo: De la patilla 13 (la que alimentará la bombillita) a una resistencia de unos 100-220 ohmios, de ahí al ánodo del LED, y de ahí a tierra (GND en Arduino). Prueba a volcar los tres códigos que has ejecutado durante esta práctica, y verás que se encienden y apagan al unísono tanto el LED que has conectado como el testigo "L" (o "D13") de tu Arduino.

 

Y, como siempre, me he extendido mucho más de lo que esperaba para ofrecerte este artículo de iniciación a Arduino. En el próximo de esta serie, profundizaremos más en el uso de los pines de Arduino como salidas digitales. Eso es todo por hoy, me temo. ¡Hasta la próxima!. ¡Siempre creando, siempre aprendiendo! ¡Sed felices!