Hoy en día mucha gente sabe programar y tiene un conocimiento adecuado de los lenguajes más populares como por ejemplo C++, Java, C# y Visual Basic. Esto ha llevado a que lo que antes era dominio sólo de ingenieros y científicos, hoy se haya convertido en una herramienta de uso general. Arduino es una plataforma de desarrollo que pretende llevar los microcontroladores a un nivel de popularidad y uso similar.

Antes era difícil que una persona sin capacitación previa en electrónica decidiese usar un microcontrolador porque el montaje físico era cansón y además se tenía que programar obligatoriamente en bajo nivel, es decir que directamente se fijaban los valores de los registros del procesador y se indicaba a qué dirección se debía saltar al cambiar de instrucción. Eso es lo que muchos electrónicos conocemos como Assembler y escribir este tipo de código es algo que nadie quería hacer más de una vez (el proyecto obligatorio dentro de la universidad). Además, son programas extensos y en los cuales es fácil perderse si no están bien documentados. Afortunadamente para todos nosotros, existen compiladores que permiten programar a un más alto nivel, simplificando el proceso y acelerando el desarrollo. Es así que la mayoría de desarrolladores utilizan C/C++ (claro está que algunas compañías utilizan sus propias versiones, pero estas no dejan de ser adaptaciones que conservan buena parte de la sintaxis tradicional) como su lenguaje de trabajo y aunque la programación de un microcontrolador no es exactamente como la de una aplicación para un computador de escritorio, sí es lo suficientemente parecida para que haya una transición natural de un mundo a otro. Sin embargo, aunque las herramientas sean más sencillas de utilizar, se sigue necesitando llevar a cabo los mismos pasos de configuración que antes.

 

 

Hasta ahora los PIC (llamados así por sus siglas en inglés, que quieren decir microcontrolador de interfaz periférico) fabricados por Microchip probablemente han sido los preferidos de muchos porque su entorno de desarrollo es bastante amigable, además de realizar varias de las tareas de configuración de manera automática, de tal modo que el usuario se puede dedicar a trabajar en su diseño y no gastar tiempo excesivo en pasos generales. ¿Qué es Arduino? Es un conjunto  software y tarjeta de desarrollo que desea hacer las cosas todavía más simples y además es distribuido con una licencia open-source.

Como es un proyecto abierto, además de la posibilidad de comprar tarjetas listas para usar, los esquemáticos están disponibles en internet para quien desee montar su sistema o hacer modificaciones al diseño original. Por lo general todas las tarjetas incluyen varios pines de entrada/salida digital, PWM y pines de entrada análoga. No se requiere ningún hardware o software adicional para pasarle los programas al micro una vez se ha instalado el bootloader (las que se compran hechas lo traen preinstalado, sino se puede usar un programador para cargarlo y de ahí en adelante no se vuelve a necesitar). La conexión física al computador se hace por puerto serial o por USB dependiendo de la tarjeta que se tenga, pero en ambos casos el protocolo utilizado es RS232.

¿Qué se necesita para comenzar?

Para utilizar Arduino se debe tener el ambiente de desarrollo (o IDE), que se puede descargar de la página del proyecto y que está disponible para Windows, Mac OS X y Linux de manera gratuita. Además se debe adquirir o montar una tarjeta de desarrollo y el correspondiente cable serial o USB según el caso. La instalación tanto del software como de los drivers es muy sencilla y por eso no se darán detalles acá, cualquier duda que se presente se puede consultar en la página web oficial.

¿Cómo hacer un programa?

La sintaxis es la misma de C, así que no hay que preocuparse por aprender un nuevo lenguaje. Un programa se compone de mínimo 2 funciones. La primera de ellas es setup() que es donde se hacen todas las labores de configuración. Por ejemplo, allí se indica el uso de cada uno de los pines, es decir si son de entrada o salida. También se activan los pull-up resistors y se puede indicar explícitamente si se desea que alguna de las rutinas sea repetida cada determinado intervalo de tiempo (que se salte a cierta línea del programa periódicamente). En el momento de ejecución este paso sólo se lleva a cabo una vez.

La otra función es loop() y como su nombre lo indica (ciclo en inglés) es la tarea a la que el microcontrolador se dedicará indefinidamente una vez haya sido configurado. Sin necesidad de incluir un ciclo dentro de ella, las instrucciones se ejecutarán una a una y al llegar a la última linea automáticamente se vuelve a saltar a la primera.

blink_code

Programa que ilustra el uso de los métodos (o funciones) setup() y loop(). Sirve para prender y apagar un led.

¿Cómo compilar y pasar el código al arduino?

Lo primero que debería hacer es seleccionar el dispositivo que va a utilizar y el puerto en el cual está conectado:

select_mc

 Selección de la tarjeta a la que se va a cargar el programa.

 

select_port

Selección del puerto al que está conectado el arduino para programación..

Una vez tenga listo su código, en la parte superior izquierda está el botón para compilar.

compile

La IDE viene con varios el código de varios proyectos para ilustrar el uso de Arduino y estos se pueden acceder en la barra superior: File->Examples. En realidad es muy sencillo aprender a manejar esta plataforma por medio de los ejemplos. Los nombres explican por sí solos los propósitos de cada función. De acá en adelante el usuario se dedica a jugar con su nuevo kit y a descubrir las opciones que este le ofrece.

examples

 Los ejemplos que vienen con el IDE están clasificados de acuerdo a lo que hacen y son una excelente

manera de aprender sobre las posibilidades de desarrollo con Arduino.

Algunas páginas que pueden ser de interés para los entusiastas:

http://www.arduino.cc/es/Esta es la página web de Arduino en español.

http://arduino.cc/es/Secundaria/Referencia Link directo al API de Arduino. Para saber los nombres, argumentos y tareas desempeñadas por cada función. También se encuentran los tipos de datos que se pueden utilizar y las estructuras condicionales y de ciclos utilizadas dentro del lenguaje.

http://arduino.cc/en/Main/Software Direccíón para la descarga del IDE.

http://arduino.cc/es/Metodologia/GuiaRapida Una excelente guía para comenzar. Indica los elementos necesarios y se extiende hasta la compilación del primer programa.

Cualquier duda que se les presente y no puedan resolver, no duden en publicarla en el foro o como comentario a este artículo. Seguramente alguien dentro de la comunidad podrá ayudarles con la respuesta.