En la entrada anterior comenté la razón de ser de este dispositivo, y por qué puede resultar muy interesante. Aquí me ocuparé de explicar cómo funciona. Se puede comprar en tiendas de electrónica, o directamente desde la página Web de Arduino. Hay varios modelos; el básico es el Arduino UNO, que consiste en una placa (un circuito impreso) con diversos conectores y componentes. He marcado algunos con rectángulos de colores:

 Arduino UNO con marcas

A la izquierda, sobresale un conector USB (azul claro) que sirve para comunicacarse con el ordenador y a la vez para tomar corriente eléctrica. El "corazón" del Arduino es un microprocesador (rojo). Y hay dos ristras de conectores, con entradas y salidas digitales (amarillo) y analógicas (verde).

El dispositivo funciona cargando en ese microprocesador un programa con los comandos que deseemos implementar. Serán instrucciones elementales: leer una entrada analógica, poner a cero a a uno una salida digital, y cosas por el estilo. Más abajo aportaré un ejemplo. El programa se debe escribir en el ordenador y luego descargarlo al Arduino. Por tanto, es necesario instalar en el ordenador un software (técnicamente, una interfaz, una IDE) donde se escriben los comandos, y desde allí se envían al Arduino (por la conexión USB).

El Arduino es libre, tanto el hardware como el sofware, de modo que el programa se puede descargar gratuitamente de la página Web (hay versiones para Windows, Mac OS y Linux). Es un proyecto abierto, con una licencia de uso muy amplia. El esquema del circuito y sus elementos están a disposición pública. Incluso hay quienes fabrican y venden (legalmente, por supuesto) placas estrictamente idénticas al Arduino UNO -salvo la marca- a un precio todavía menor (basta buscar en Internet, en portales de electrónica). ¡Eso significa libre! Libre como partícula libre, verso libre, libre albedrío, estilo libre. Libre como el sol cuando amanece.

Descargado ese programa, la instalación es muy sencilla (hay instrucciones paso a paso). Al ejecutarlo, aparece la interfaz (véase la captura de pantalla aquí debajo). A continuación, se conecta el Arduino con un cable USB. En tres o cuatro ordenadores que he probado (tanto en Linux como en Windows) el dispositivo se configura automáticamente (si no lo hace, basta otro paso muy sencillo). Y ya se pueden escribir comandos:

Interfaz Arduino

Los programas tienen dos funciones básicas: setup y loop. La primera configura las entradas y salidas. La segunda ejecuta un bucle infinito de comandos. Pero mejor que seguir explicando... Es que esto es como andar en bicicleta; es más sencillo el ejercicio en sí que intentar racionalizar matemáticamente el equilibrio sobre dos ruedas. De modo que pongamos un ejemplo. He conectado un LED a la salida digital número 13 y vamos a hacer que parpadee. En el setup hay que definir que se usará el conector 13 de salida, y en el loop hay que indicar que se encienda el conector 13 (es decir, ponerlo a 1, ‘HIGH’), esperar un segundo, que se apage (poniéndolo a 0, ‘LOW’), y esperar medio segundo, por poner algo. Así:

void setup() {

      pinMode(13, OUTPUT);

}

void loop() {

      digitalWrite(13, HIGH); 

      delay(1000);     

      digitalWrite(13, LOW); 

      delay(500);  

}

El lector avispado reconocerá una sintaxis muy parecida al lenguaje C -por eso las funciones setup y loop se escriben con el tipo void, llevan () detrás, y el contenido va entre llaves. La instrucción pinMode define que el conector 13 es una salida, digitalWrite pone el conector especificado a cero o a uno, y delay espera el número de milisegundos indicado. Eso es todo. Otra cosa: el programa no lo elaboré yo. Este ejemplo, y muchos otros, vienen ya con el software.

Una vez escrito se le da al botón botón descargar (descargar al Arduino) y voilà:

(El vídeo es de mala calidad, lo grabé con mi móvil solo para que sirva de demostración; para aprender hay otros mejores). Nótese que el Arduino se puede desenchufar del ordenador; en cuanto se le da corriente de nuevo, de cualquier fuente, vuelve a poner en marcha el programa que tiene cargado.

Para implementar otro ejemplo, conecté además una resistencia variable a las entradas analógicas. El programa lee el valor de la resistencia y en función de ese valor regula la luz que produce el LED:

 

(todo eso se consigue con un par más de instrucciones). Puede que a primera vista no resulte muy impactante, pero el método es la base de muchos procedimientos de adquisición de datos y control. Por ejemplo, en vez de una resistencia podríamos tener un sensor de temperatura, y en vez de un LED una resistencia calefactora. Según sea la temperatura, se regula la intensidad de la resistencia calefactora: eso serviría para mantener un cuerpo a una temperatura constante. Es lo que indicaba en un comentario de la entrada anterior respecto a la posibilidad de emplear el Arduino como "autómata" para gobernar mecanismos.


De nuevo esta entrada se está haciendo demasiado larga. Dejo para otra ocasión hablar de montajes un poco más elaborados. He pedido un artículo llamado "Starter Kit" (la caja del principiante) que contiene diverso material. También pasaré revista a la vibrante comunidad del Arduino (esa gente ha dejado en Internet muchas cosas ya hechas, no hace falta inventar la pólvora), así como a los recursos disponibles. Y si puedo explicaré un proyecto que tengo en mente...

Lee también en SciLogs

Ángel Garcimartín Montero
Ángel Garcimartín Montero

Catedrático de física (especialidad: materia condensada) en la Universidad de Navarra.

Ha llevado a cabo investigaciones (de carácter marcadamente experimental) sobre dinámica no lineal, inestabilidades, caos y sistemas físicos fuera del equilibrio; la fractura de los materiales frágiles; la transición vítrea, y los medios granulares. Actualmente se interesa en los atascos de materia activa (por ejemplo, los seres vivos).

Página web personal

Sobre este blog
La materia blanda es la que se deforma fácilmente cuando se somete a esfuerzos o fluctuaciones térmicas: líquidos, coloides, materiales granulares, polímeros, espumas, algunos materiales biológicos. Pero en sentido figurado ¿no es también materia blanda la ciencia, la universidad, o incluso la sociedad?
Ver todos los artículos (75)