Introducción
¿Qué es Arduino?
Arduino es una plataforma electrónica de código abierto basada en hardware y software fáciles de usar basado en Wiring. El propósito de Arduino es el de poder ser usado por la mayoría de las personas, incluso sin tener un fuerte entrenamiento en programación y/o electrónica. Las placas Arduino poseen entradas donde podés conectar sensores, botones, teclados, etc. y convertirlas en una salida para activar un motor, encender un LED o publicar algo en internet. Puedes decirle a tu Arduino qué debe hacer enviando un conjunto de instrucciones a su microcontrolador. Para hacerlo, utiliza el lenguaje de programación Arduino (basado en Wiring) y el software Arduino (IDE) basado en Processing.
¿Por qué Arduino?
Gracias a que posee una experiencia de usuario simple y accesible, Arduino se ha utilizado en miles de proyectos y aplicaciones diferentes. El software Arduino es fácil de usar para principiantes, pero lo suficientemente flexible para usuarios avanzados. Se ejecuta en Mac, Windows y Linux. Arduino es una herramienta clave para aprender cosas nuevas. Cualquier persona (niños, aficionados, artistas, programadores) puede comenzar a hacer modificaciones siguiendo las instrucciones paso a paso de un kit.
Historia
La historia de Arduino comenzó como un proyecto de tesis de maestría del colombiano Hernando Barragán en 2003 y sus asesores Massimo Banzi y Casey Reas (conocido por su trabajo en el lenguaje y entorno de programación Processing ) en el Interaction Design Institute Ivrea (IDII) de Italia. Su objetivo principal fue el crear una herramienta que fuera fácil de usar, abstrayendo los detalles a menudo complicados de la electrónica para que puedan centrarse en sus propios objetivos.
En 2005, Massimo Banzi, junto con David Mellis (un estudiante de IDII en ese momento) y David Cuartielles, agregaron soporte para el microcontrolador ATmega8 (más barato) para Wiring. Luego forkearon (o copiaron) el código fuente de Wiring y comenzaron a ejecutarlo como un proyecto separado, llamado Arduino.
El nombre "Arduino" deriva del nombre del bar en Ivrea, Italia frecuentado por los fundadores del proyecto, un nombre que a su vez recuerda al de Arduino d'Ivrea , rey de Italia en 1002.
Hernando actualmente es decano y docente de la Facultad de Arquitectura y Diseño de la Universidad de los Andes, Colombia y Director de Estrategia de Diseño en Arduino.
Tipos de Arduino
Existen muchos y muy distintos tipos de Arduino. Primero podríamos comenzar a diferenciarlos por su origen, es decir, existen Arduinos originales y arduinos genéricos. La diferencia entre un Arduino original y uno geneŕico es el lugar de su ensamble y la empresa que lo realiza. Tambien podemos distinguir distintos tipos de Arduino de acuerdo al procesador y cantidad de pines que tienen sus tarjetas. A continuación se muestran una comparativa entre los 4 principales Arduinos originales:
¿Qué es el Arduino UNO?
El UNO fue la primera versión de la placa Arduino. Esta fue la placa que se popularizo e hizo famosa a la marca. Esta placa incluía sólo un puerto serial RS232 y las mismas señales de entrada/salidas de un Arduino moderno. La evolución de esta placa fue el Arduino UNO R3 (R3 significa Revisión 3), la cual ya cuenta con un puerto de comunicación USB que hace la conversión de USB a Serial TTL, así como componentes de montaje superficial.
Descripción y características técnicas del Arduino UNO R3
Vamos a ver las diferentes partes y características que tiene la placa electrónica Arduino Uno R3:
Características técnicas:
- Microcontrolador: ATmega328P
- Tensión de funcionamiento: 5V
- Voltaje de entrada (recomendado): 7-12V
- Voltaje de entrada (límite): 6-20V
- Digital pines I/O: 14 (de los cuales 6 proporcionan una salida PWM)
- PWM digital pines I/O: 6
- Pines de entrada analógica: 6
- Corriente DC por Pin I/O: 20mA
- Corriente DC para Pin 3.3V: 50mA
- Memoria flash: 32KB ATmega328P de los que 0,5 KB son utilizados por el gestor de arranque.
- SRAM: 2KB ATmega328P
- EEPROM: 1KB ATmega328P
- Led incorporado en el pin 13
- Velocidad de reloj: 16 MHz
- Longitud: 68,6 mm
- Ancho: 53,4 mm
- Peso: 25 g
La placa electrónica Arduino Uno R3 puede ser alimentada de varias formas, con un cable USB conectado al ordenador o con una fuente externa.
Arduino cuenta con un zócalo donde se conecta un Jack de 2,1mm para conectar un adaptador que se encuentre entre los rangos de 7 – 12v que es la tensión recomendada.
La placa cuenta con un conector USB tipo A/B para conectarlo al ordenador con el cual podemos programarlo y a su vez alimentarlo.
Descripción de los pines de Arduino Uno.
Programación
Arduino IDE (Integrated Development Environment)
El entorno de trabajo o programación de las placas electrónicas de arduino es Arduino IDE, esto no quiere decir que no se puedan programar estos procesadores desde otra plataforma, sino que, lo que significa es que la mayoría de las personas que quieren trabajar con arduino utilizan el ide de arduino. Este entorno nos facilita la tarea de programar los microprocesadores Atmega328 (utilizados en arduino), basados en la arquitectura de microprocesadores AVR. Esta arquitectura la diseña la empresa Microchip Technology Inc.
Los programas en Arduino son llamados "sketch". El cual es la unidad de código que es cargada y corre sobre una placa de Arduino.
Descargar IDE
Lenguaje
Comentarios
Todo lo que se encuentra entre /*
y */
Arduino lo ignora cuando ejecuta el programa (sketch). Los comentarios son útiles para las personas que leen el código: para explicar qué hace el programa, cómo funciona o por qué está escrito de la forma en que está escrito. Es una buena práctica comentar los programas y mantener los comentarios actualizados cuando modifique el código. Esto ayuda a otras personas a aprender o modificar su código.
/*
* Parpadeo
*
* El ejemplo básico de Arduino. Enciende un LED por un segundo,
* luego se apaga por un segundo, y así sucesivamente ... Usamos el pin 13 porque,
* dependiendo de su placa Arduino, tiene un LED incorporado y una resistencia
* por lo que necesita sólo un LED.
*
* http://www.arduino.cc/en/Tutorial/Blink
*/
Hay otro estilo para comentarios cortos de una sola línea. Estos comienzan con // y continúan hasta el final de la línea. Por ejemplo:
int ledPin = 13; // LED conectado al pin digital 13
Variables
Una variable es un lugar para almacenar un dato. Tiene un nombre, un tipo y un valor. Por ejemplo, la línea del sketch anterior (Blink) declara una variable con el nombre ledPin, el tipo int y un valor inicial de 13. Se está utilizando para indicar a qué pin de Arduino está conectado el LED. Cada vez que ledPinaparezca el nombre en el código, se recuperará su valor.
Funciones
Una función (también conocida como un procedimiento o una sub-rutina) es una pieza de código con nombre que se puede usar desde otro lugar en un sketch. Por ejemplo, aquí está la definición de la función setup() del ejemplo de Blink:
void setup() {
pinMode (ledPin, OUTPUT); // establece el pin digital como salida
}
La primera línea proporciona información sobre la función, como su nombre
y "configuración". El texto antes y después del nombre especifica su tipo de retorno y sus parámetros. El código entre el { y } se llama el cuerpo de la función: lo que hace la función.
Puede llamar a una función que ya se ha definido (ya sea en su boceto o como parte del lenguaje Arduino). Por ejemplo, la línea pinMode(ledPin, OUTPUT);
llama a la función pinMode(), pasándole dos parámetros : ledPin y OUTPUT. La función pinMode() utiliza estos parámetros para decidir qué pin utilizar y modo de configurarión.
pinMode(), digitalWrite() y delay()
La función pinMode() configura un pin como una entrada o una salida. Para usarlo, le pasas el número del pin a configurar y la constante OUTPUT o INPUT. Cuando se configura como una entrada, un pin puede detectar el estado de un sensor como un botón/pulsador. Como salida, puede accionar un actuador como un LED.
Las funcion digitalWrite() genera un valor en un pin. Por ejemplo, la línea:
digitalWrite ( ledPin , HIGH ) ;
Esta instrucción significa: coloque el ledPin(pin 13) en ALTO, o 5 voltios.
. En cambios, escribiendo la constante LOW el pin lo conecta a tierra, o 0 voltios.
La función delay() hace que el Arduino espere el número especificado de milisegundos antes de continuar a la siguiente línea. Hay 1000 milisegundos en un segundo, por lo que la línea:
delay(1000);
Crea un retraso de un segundo.
setup() y loop()
Hay dos funciones especiales que forman parte de cada boceto de Arduino: setup() y loop(). La función setup() se llama una vez, cuando comienza el programa. Es un buen lugar para realizar tareas de configuración como configurar modos de pin o iniciar librerias. La función floop() se llama una y otra vez y es el corazón de la mayoría de los sketchs. Debe incluir ambas funciones en su programa, incluso si no las necesita para nada.