INTRODUCCIÓN
Arduino es una plataforma de electrónica abierta (open hardware) para la creación
de prototipos basada en software y hardware libre. Se creó para artistas,
diseñadores, aficionados y cualquier interesado en crear entornos u objetos
interactivos.
Arduino puede tomar información y datos del entorno a través de sus pines de
entrada por medio de toda la gama de sensores que existen en el mercado. En
base a ello, puede ser usada para controlar y actuar sobre todo aquello que le
rodea; como por ejemplo luces, motores y otro tipo de actuadores. El
microcontrolador de la placa Arduino se programa mediante un sencillo lenguaje
de programación basado en C/C++ y un entorno de desarrollo (IDE) que responde
a las especificaciones de open software. Los proyectos hechos con Arduino
pueden ejecutarse sin necesidad de conectarlo a un ordenador, si bien tienen la
posibilidad de hacerlo y comunicarse con diferentes tipos de software (por
ejemplo: Flash, Processing, MaxMSP, etc.).
ORIGEN DE ARDUINO
Arduino nació en el año 2005 en el Instituto de Diseño Interactivo de Ivrea (Italia),
centro académico donde los estudiantes se dedicaban a experimentar con la
interacción entre humanos y diferentes dispositivos (muchos de ellos basados en
microcontroladores) para conseguir generar espacios únicos, especialmente
artísticos. Arduino apareció por la necesidad de contar con un dispositivo para
utilizar en las aulas que fuera de bajo coste, que funcionase bajo cualquier sistema
operativo y que contase con documentación adaptada a gente que quisiera
empezar de cero. La idea original fue, pues, fabricar la placa para uso interno de la
escuela.
No obstante, el Instituto se vio obligado a cerrar sus puertas precisamente en
2005. Ante la perspectiva de perder en el olvido todo el desarrollo del proyecto
Arduino que se había ido llevando a cabo durante aquel tiempo, se decidió
liberarlo y abrirlo a “la comunidad” para que todo el mundo tuviera la posibilidad de
participar en la evolución del proyecto, proponer mejoras y sugerencias y
mantenerlo “vivo”. Y así ha sido: la colaboración de muchísima gente ha hecho
que Arduino poco a poco haya llegado a ser lo que es actualmente: un proyecto de
hardware y software libre de ámbito mundial.
¿QUÉ ES ARDUINO?
Una placa hardware libre que incorpora un microcontrolador reprogramable y una
serie de pines-hembra (los cuales están unidos internamente a las patillas de E/S
del microcontrolador) que permiten conectar allí de forma muy sencilla y cómoda
diferentes sensores y actuadores.
Las placas pueden ser hechas a mano o comprarse montadas de fábrica. El
software puede ser descargado de forma gratuita. Los ficheros de diseño de
referencia (CAD) están disponibles bajo una licencia abierta, así pues, eres libre
de adaptarlos a tus necesidades.
Se llama open hardware a los dispositivos de hardware cuyas
especificaciones y diagramas esquemáticos son de acceso público, ya sea
bajo algún tipo de pago o de forma gratuita. Se debe recordar en todo
momento que libre no es sinónimo de gratis. El hardware libre forma parte
de la cultura libre.
Se llama open software al tipo del software que respeta la libertad de los
usuarios sobre su producto adquirido y, por tanto, una vez obtenido puede
ser usado, copiado, estudiado, modificado, y redistribuido libremente.
Un microcontrolador (abreviado μC, UC o MCU) es un circuito integrado
programable, capaz de ejecutar las órdenes grabadas en su memoria. Está
compuesto de varios bloques funcionales, los cuales cumplen una tarea
específica. Un microcontrolador incluye en su interior las tres principales unidades
funcionales de una computadora: unidad central de procesamiento, memoria y
periféricos de entrada/salida.
¿QUÉ QUIERE DECIR QUE ARDUINO SEA “SOFTWARE LIBRE”?
Según la Free Software Foundation ([Link] organización encargada
de fomentar el uso y desarrollo del software libre a nivel mundial, un software para
ser considerado libre ha de ofrecer a cualquier persona u organización cuatro
libertades básicas e imprescindibles:
Libertad 0: la libertad de usar el programa con cualquier propósito y en cualquier
sistema informático.
Libertad 1: la libertad de estudiar cómo funciona internamente el programa, y
adaptarlo a las necesidades particulares. El acceso al código fuente es un
requisito previo para esto.
Libertad 2: la libertad de distribuir copias.
Libertad 3: la libertad de mejorar el programa y hacer públicas las mejoras a los
demás, de modo que toda la comunidad se beneficie. El acceso al código fuente
es un requisito previo para esto.
Un programa es software libre si los usuarios tienen todas estas libertades. Así
pues, el software libre es aquel software que da a los usuarios la libertad de poder
ejecutarlo, copiarlo y distribuirlo (a cualquiera y a cualquier lugar), estudiarlo,
cambiarlo y mejorarlo, sin tener que pedir ni pagar permisos al desarrollador
original ni a ninguna otra entidad específica. La distribución de las copias puede
ser con o sin modificaciones propias, y atención, puede ser gratis ¡o no!: el
"software libre" es un asunto de libertad, no de precio.
¿QUÉ QUIERE DECIR QUE ARDUINO SEA “HARDWARE LIBRE”?
El hardware libre (también llamado “open-source” o “de fuente abierta”) comparte
muchos de los principios y metodologías del software libre. En particular, el
hardware libre permite que la gente pueda estudiarlo para entender su
funcionamiento, modificarlo, reutilizarlo, mejorarlo y compartir dichos cambios.
Para conseguir esto, la comunidad ha de poder tener acceso a los ficheros
esquemáticos del diseño del hardware en cuestión (que son ficheros de tipo CAD).
Estos ficheros detallan toda la información necesaria para que cualquier persona
con los materiales, herramientas y conocimientos adecuados pueda reconstruir
dicho hardware por su cuenta sin problemas, ya que consultando estos ficheros se
puede conocer qué componentes individuales integran el hardware y qué
interconexiones existen entre cada uno de ellos.
CONFIGURACIÓN E INSTALACIÓN
La configuración e instalación nuestra el entorno de trabajo para desarrollar
nuestros proyectos. Además, conectaremos el Arduino al ordenador e
instalaremos, si hace falta, los drivers adecuados para que ambos se puedan
comunicar
perfectamente.
Figura 1. Conexión PC - Arduino
COMUNICACIÓN
Multiplataforma:
Se puede programar en diversos sistemas operativos.
Windows
Mac ox
Linux
Figura 2. Sistemas operativos
Instalación del entorno de desarrollo (IDE)
Lo primero que tenemos que hacer es descargarnos dicho entorno (IDE) de la
página web oficial de Arduino: [Link] Dependiendo
del sistema operativo que tengas instalado en tu equipo deberás bajarte una
versión u otra. La verdad es que la apariencia y funcionamiento del entorno de
desarrollo es igual para todos los sistemas operativos.
Figura 3
El IDE proporciona una interfaz gráfica en la que se puede escribir el código,
depurarlo, compilarlo y cargarlo o subirlo al Arduino. En un primer vistazo,
observamos que en la parte superior tenemos seis iconos en la barra de botones
que utilizaremos muy a menudo. (figura 4)
Figura 4
Además, si desplegamos el menú de Opciones de la barra superior, observamos
que cada elemento del menú ofrece más opciones que iremos descubriendo
progresivamente a lo largo de este libro. Aunque ahora es necesario que os fijéis
en el submenú de Herramientas (Figura 5) ya que presenta dos opciones
imprescindibles para que todo funcione desde el principio:
Tarjeta Serie: determina el tipo de Arduino con el que trabajamos.
Puerto Serial: indica el puerto serie del ordenador al cual tenemos
conectado nuestro Arduino. Estos dos datos se pueden observar debajo de
la ventana de mensajes tal y como se muestra en la figura 5. Volveremos
sobre este tema más adelante.
Figura 5
Instalación de los drivers de nuestro Arduino
Para que nuestro ordenador reconozca la placa Arduino mediante el conector y su
correspondiente cable USB (Figura 6 y Figura 7) es necesario instalar los
controladores o drivers adecuados.
Figura 6
Figura 7
Un controlador de dispositivo (llamado normalmente controlador, en inglés, driver)
es un programa informático que permite al sistema operativo interaccionar con un
periférico, haciendo una abstracción del hardware y proporcionando una interfaz
para usarlo. Se puede esquematizar como un manual de instrucciones que le
indica cómo se debe controlar y comunicarse con un dispositivo en particular. Por
tanto, es una pieza esencial, sin la cual no se podría usar el hardware.