Es una plataforma de hardware libre, basada en una placa con un
microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares ó también es común decir que Arduino es una plataforma de hardware abierto que facilita la programación de un microcontrolador. Los microcontroladores nos rodean en nuestra vida diaria, usan los sensores para escuchar el mundo físico y los actuadores para interactuar con el mundo físico. Los microcontroladores leen sobre los sensores y escriben sobre los actuadores.
El hardware consiste en una placa con un microcontrolador Atmel
AVR y puertos de entrada / salida. Los microcontroladores más usados en las plataformas Arduino son el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez.
Los Arduino y en general los microcontroladores tienen puertos de
entrada y salida y puertos de comunicación. En Arduino podemos acceder a esos puertos a través de los pines.
Pines digitales: pueden configurarse como entrada (para leer,
sensores) o como salida (para escribir, actuadores).
Pines analógicos de entrada: usan un conversor analógico/digital
y sirven para leer sensores analógicos como sondas de temperatura.
Pines analógicos de salida (PWM): la mayoría de Arduino no
tienen conversor digital/analógico y para tener salidas analógicas se usa la técnica PWM. No todos los pines digitales soportan PWM.
Puertos de comunicación: USB, serie, I2C y SPI
Otro aspecto importante es la memoria, Arduino tiene tres tipos de memoria:
SRAM: donde Arduino crea y manipula las variables cuando se
ejecuta. Es un recurso limitado y debemos supervisar su uso para evitar agotarlo.
EEPROM: memoria no volátil para mantener datos después de un
reset o apagado. Las EEPROMs tienen un número limitado de lecturas/escrituras, tener en cuenta a la hora de usarla.
Flash: Memoria de programa. Usualmente desde 1 Kb a 4 Mb
(controladores de familias grandes). Donde se guarda el sketch. Software de Desarrollo Arduino
Arduino nos proporciona un software consistente en un entorno de
desarrollo que implementa el lenguaje de programación de arduino y el bootloader ejecutado en la placa.
Arduino no sólo son componentes eléctricos ni una placa de
circuitos, sino que, además también es una plataforma que combina esto con un lenguaje de programación que sirve para controlar los distintos sensores que se encuentran conectados a la placa, por medio de instrucciones y parámetros que nosotros establecemos al conectar la placa a un ordenador. Este lenguaje que opera dentro de Arduino se llama Wirirng, basado en la plataforma Processing y primordialmente en el lenguaje de prograación C/C++.
De este lenguaje derivan otros más que son muy utilizados en el
ámbito de Ingeniería y desarrollo, como C#, Java, BASIC, Php, Phytom, JavaScript, Perl, entre otros más; por lo tanto, Arduino soporta varios lenguajes de programación de alto nivel derivados de C, haciendo de esto una ventaja para los diseñadores que trabajan en varios o en 1 sólo entorno de desarrollo de programación. Para poder trabajar desde el nivel programación del procesador, debe descargarse el software que incluye las librerías necesarias para poder utilizar el lenguaje de manera completa. Otra ventaja es que este software puede descargarse desde el sitio web oficial de Arduino
Al ser una herramienta que incorpora un tanto manejo de hardware
y software (circuitos eléctricos y un lenguaje de programación respectivamente) se requiere un nivel de conocimiento básico en estas dos ramas del desarrollo para operarla, pero se encuentran diversidad de manuales en la página oficial e incluso, se pueden adquirir libros donde se explica cómo utilizar esta herramienta didáctica e innovadora. Además, existe en internet un simulador virtual de Arduino de licencia libre llamado Virtual BreadBoard, que ayuda al aprendizaje de esta plataforma antes de comenzar a utilizarla de manera oficial, ofreciendo las herramientas necesarias y el mismo soporte que esta placa, pero de manera digital.
Ventajas del desarrollo de sodtware en Arduino:
El entorno de programación simple y directo: El entorno de
programación de Arduino es fácil de usar para principiantes y lo suficientemente flexible para los usuarios avanzados. Pensando en los profesores, Arduino está basado en el entorno de programación de Procesing con lo que el estudiante que aprenda a programar en este entorno se sentirá familiarizado con el entorno de desarrollo Arduino.
Software ampliable y de código abierto: El software Arduino esta
publicado bajo una licencia libre y preparado para ser ampliado por programadores experimentados. El lenguaje puede ampliarse a través de librerías de C++, y si se está interesado en profundizar en los detalles técnicos, se puede dar el salto a la programación en el lenguaje AVR C en el que está basado. De igual modo se puede añadir directamente código en AVR C en los programas si así se desea.
Proceso para grabar un programa en Arduino
Lo primero que se tiene que hacer es configurar las comunicaciones
entre la placa Arduino y el PC. Para ello se debe abrir en el menú "Tools" la opción "Serial Port". En esta opción se debe seleccionar el puerto serie al que está conectada la placa. En Windows, si se desconoce el puerto al que está conectado la placa se puede descubrir a través del Administrador de dispositivos (Puertos COM & LPT/ USB Serial Port). El primer paso para comprobar que todo lo que se ha hecho hasta ahora está bien y familiarizarse con el interfaz de desarrollo, es abrir uno de los ejemplos. Se recomienda abrir el ejemplo "Blink". Para ello se accede a través del menú File / Sketchbook / Examples / Digital / Blink.
El ejemplo "Blink" lo único que hace es parpadear un LED que está
colocado en el pin número 13 de la placa. Para subir el programa a la placa Arduino, Primero se comprobará que el código fuente es el correcto. Para ello se pulsa el botón de verificación de código que tiene forma de triángulo inclinado 90 grados (Figura 3.a). Si todo va bien deberá aparecer un mensaje en la parte inferior de la interfaz indicando "Done compiling". Una vez que el código ha sido verificado se procede a cargarlo en la placa. Para ello se debe pulsar el botón de reset de la placa (Figura 3.b) e inmediatamente después pulsar el botón que comienza la carga (Figura 3.c).
Durante la carga del programa, en la placa USB, se encenderán los
LED que indican que se están enviando y recibiendo información por el puerto serie: TX/RX. Si todo se ha realizado correctamente se debe aparecer el mensaje "Done uploading". Después se debe esperar unos 8 segundos aproximadamente para comprobar que todo ha salido bien. Si el led colocado en el pin 13 de la placa se enciende y se apaga cada segundo entonces todo ha ido bien. Por fin tenemos todo listo para empezar a trabajar con la placa Arduino.