Arduino

From FdIwiki ELP
Jump to: navigation, search
Logo de Arduino

Arduino es una compañía, proyecto y comunidad de usuarios de hardware y software de código abierto que diseña y fabrica componentes para construir dispositivos digitales y objetos con los que interactuar con el mundo físico.[1] Se basa en una familia de diseños de tableros con microprocesadores fabricados principalmente por SmartProjects en Italia[2], además de otros vendedores, usando varios microcontroladores Atmel AVR de 8 bits o microprocesadores Atmel ARM de 32 bits. Estos sistemas proveen conjuntos de pines de entrada y salida que pueden ser conectados a distintos tableros y otros circuitos. Los tableros poseen interfaces de comunicación en serie, incluyendo USB en algunos modelos, por donde cargar los programas desde el ordenador. La plataforma de Arduino provee un IDE(Entorno de desarrollo integrado) basado en Processing, el cual incluye soporte para los lenguajes de programación C y C++.

El primer Arduino apareció 2005. El proyecto buscaba generar una manera fácil y barata para personas con hobbys, estudiantes y profesionales de crear dispositivos dispositivos que interactuan con el entorno usando sensores y actuadores. Ejemplos comunes son robots, termostatos o detectores de movimiento.

Los tableros de Arduino pueden comprarse pre-montadas o en kits para montarlo por su cuenta. La información del diseño del hardware está disponible para aquellos que deseen montar un Arduino a mano. Adafruit Industries estimó a mediados de 2011 que se habían producido comercialmente mas de 300,000 Arduinos oficiales,[3] y que en 2013 había 700,000 tableros oficiales en manos de usuarios.[4]

Historia

Arduino se creó en 2005 como proyecto de estudiantes en el Instituto de Diseño e Interacción en Ivrea, Italia. En ese momento los estudiantes del programa usaban un "Basic Stamp"(un microprocesador con un intérprete del lenguaje de programación Basic) que costaba 100$, lo que se consideraba caro para los estudiantes. Massimo Banzi, uno de los fundadores, enseñaba en Ivrea.[5] El nombre de "Arduino" proviene de un bar en Ivrea donde algunos de los fundadores solían reunirse. Tras esto, el bar pasó por los nombres Arduino, Marcha de Ivrea y Rey de Italia de 2002 a 2014.[6]

Una tesis de hardware del estudiante Hernando Barragan contribuyó a un diseño de cableado. Cuando la plataforma Wiring[7] estuvo completa, los investigadores trabajaron para hacerla más ligera, menos cara y disponible para la comunidad open source. La escuela llegó a cerrar, pero los investigadores, incluyendo a David Cuartielles, promovieron la idea.[6]

Hardware

Un tablero de Arduino consiste en un Atmel AVer de 8 bits con componentes complementarios que facilitan la programación e incorporación en otros circuitos. Un aspecto importante de los Arduinos son sus conectores estándar, que permiten a los usuarios conectar la placa de la CPU a varios módulos intercambiables llamados Escudos. Algunos escudos se comunican con la placa Arduino directamente sobre varios pines, pero algunos escudos se pueden llamar mediante bus de serie I²C para que varios escudos pueda colocarse y usarse en paralelo. Los Arduinos oficiales han usado la serie de chips megaAVR, concretamente ATmega8, ATmega168, ATmega328, ATmega1280 y ATmega2560. Otros procesadores se han usado por los elementos compatibles con Arduino. La mayoría de las placas incluye un regulador lineal de 5 voltios y un oscilador cristalino (o resonador cerámico en algunos casos) de 16 MHz, aunque algunos diseños, como el LilyPad, corren a 8MHz y prescinden del del regulador de corriente montado por restricciones específicas de factor de forma. Un microcontrolador Arduino esta pre-programado con un gestor de arranque que simplifica la carga de programas en la memoria flash del chip, en comparación con otros dispositivos que generalmente necesitan un hardware programador, lo que hace que usar Arduino sea más directo.

En un nivel conceptual, cuando usas la pila de software de Arduino todas las placas son programadas sobre una conexión en serie RS-232, pero la manera en que se implementa difiere dependiendo del hardware. Las placas de serie Arduino contienen un circuito cambiador de nivel para convertir señales entre RS-232 y TTL. Las placas Arduino actuales se programan por USB, implementado usando un cable o placa de adaptador USB a serie, Bluetooth u otros medios (cuando se usa con herramientas de microcontrolador en vez del IDE de Arduino, se usa la programación estándar AVR ISP (Instalación a la hora de montarlo)).

La placa Arduino muestra la mayoraí de los pines de entrada/salida de los microcontroladores para usarse en otros circuitos. Los modelos Diecimila, Duemilanove, y el actual Uno habilitan 14 pines de entrada/salida, de los cuales seis pueden producir señales moduladas en ancho de pulso (técnica para codificar un mensaje en una señal de pulsos), y seis entradas analógicas que pueden ser usadas, también, como seis pines de entrada/salida digital. Estos pines, que estan en la parte superior de la placa, son conectores hembra de 2.5 mm. Varias aplicaciones plugg-in de los escudos tambien estan disponibles comercialmente. Los Arduino Nano y las placas compatibles con Arduino Bare Bones y Boarduino pueden tener pines macho, en la parte inferior de la placa que puede conectar con placas universales sin soldadura.

Hay bastantes placas compatibles con Arduino y derivadas de Arduino. Algunas tienen una funcionalidad equivalente a las Arduino y se pueden usar intercambiándolas. Algunas mejoran la Arduino básica añadiendo controladores de salida, generalmente usadas en educación en colegios para simplificar la construcción de pequeños robots y buggies. Otras son elcétricamente equivalentes, pero cambia el factor de forma, a veces persistiendo la compatibilidad con los escudos y otras veces no. Algunas variantes usan procesadores completamente diferentes, donde varían los niveles de compatibilidad.

Software

El entorno de desarrollo integrado (IDE) de Arduino es una aplicación multiplataforma escrita en Java, y deriva del IDE para Processing y los proyectos de Wiring. Se utiliza para introducir en la programación a gente que no esté familiarizada el desarrollo del software. Incluye un editor de código con características como destacado de sintaxis, emparejamiento de llaves, indentación automática y además permite compilar y cargar programas a la placa con un click. Un código o programa escrito por Arduino se llama sketch. [8]

Los programas de Arduino están escritos en C o C++. El IDE de Arduino viene con una librería de software llamada "Wiring" de proyecto original Wiring, lo que hace muchas de las operaciones de entrada y salida mucho más sencillas. Los usuarios solo necesitan definir dos funciones para hacer un programa cíclico ejecutable:

  • setup(): una función que se ejecuta al inicio del programa para los ajustes de inicio.
  • loop(): una función que se llama repetidamente haste que la placa se apaga.

El primer programa típico es el que hace parpadear un led. En Arduino sería así:[9]

<source lang="c"> #define LED_PIN 13 void setup () { pinMode (LED_PIN, OUTPUT); // Enable pin 13 for digital output } void loop () { digitalWrite (LED_PIN, HIGH); // Turn on the LED delay (1000); // Wait one second (1000 milliseconds) digitalWrite (LED_PIN, LOW); // Turn off the LED delay (1000); // Wait one second } </source>

La mayoría de las placas Arduino tiene un led y un resistor de carga conectado entre el pin 13 y tierra; una característica conveniente para tests simples.[9] El código previo no sería visto como un programa valido por el compilador C++ estándar, así que, cuando el usuario pulsa el botón "Upload to I/O board", una copia se escribe en un archivo temporal con una cabecera extra de include y una función main() al final, para convertirlo en un programa válido en C++.

El IDE de Arduino usa GNU toolchain y AVR Libc para compilar programas, y usa avrdude para cargar los programas en la placa.

Como Arduino usa microprocesadores Atmel, el entorno de desarrollo Atmel, AVR Studio o en nuevo Atmel Studio pueden ser usados para desarrollar software para Arduino.[10][11]

Desarrollo

Arduino es un hardware de código abierto: los diseños referentes al hardware Arduino se distribuyen bajo una licencia Creative Commons Attribution Share-Alike 2.5 y está disponible en la página web de Arduino. La disposición y los archivos de algunas versiones del hardware de Arduino también están disponibles. El código fuente para el IDE está disponible y lanzado bajo licencia GPL version 2.[12]

Aunque los diseños de hardware y software están disponibles bajo licencias copyleft, los desarrolladores han pedido que el nombre "Arduino" sea exclusivo para el producto y no se use en trabajos derivados sin permiso. El documento de la política oficial del nombre del uso de Arduino contempla que el proyecto está abierto a incorporar trabajo de otros en el producto oficial.[13] Several Arduino-compatible products commercially released have avoided the "Arduino" name by using "-duino" name variants.[14]

Aplicaciones

  • Xoscillo: osciloscopio open-source[15].
  • Equipo científico[16].
  • Arduinome: Un controlador MIDI que imita Monome.
  • OBDuino: un ordenador de viaje que usa la interfaz de diagnósticos de a bordo que está en la mayoría de los coches modernos.
  • Ardupilot: hardware / software de drones.
  • ArduinoPhone[17].
  • GertDuino, un complemento para la Raspberry Pi[18].

Recepción

El proyecto de Arduino recibió una mención honorífica en la categoría de Comunidades Digitales en los premios de 2006 de Prix Ars Electrónica.[19][20]

Ver también

Referencias

  1. Arduino Project introduction
  2. http://arduino.cc/en/Main/FAQ
  3. http://www.adafruit.com/blog/2011/05/15/how-many-arduinos-are-in-the-wild-about-300000/
  4. http://medea.mah.se/2013/04/arduino-faq//
  5. http://spectrum.ieee.org/geek-life/hands-on/the-making-of-arduino
  6. 6,0 6,1 http://online.wsj.com/article/SB10001424052748703499404574559960271468066.html
  7. http://rhizome.org/editorial/2009/sep/23/interview-with-casey-reas-and-ben-fry/
  8. http://www.amazon.com/Programming-Arduino-Getting-Started-Sketches/dp/0071784225/ref=sr_1_1?s=books&ie=UTF8&qid=1364494138&sr=1-1&keywords=arduino+sketches
  9. 9,0 9,1 "Blink Tutorial". Arduino.cc.
  10. http://www.megunolink.com/Building_an_Arduino_project_with_MegunoLink_and_Atmel_Studio_(Blink_Tutorial)
  11. http://www.engblaze.com/tutorial-using-avr-studio-5-with-arduino-projects/
  12. https://github.com/arduino/Arduino%7Cwork=The arduino source code
  13. http://arduino.cc/en/Main/Policy
  14. http://www.freeduino.org/freeduino_open_designs.htm
  15. http://code.google.com/p/xoscillo/
  16. Pearce, Joshua M. 2012. "Building Research Equipment with Free, Open-Source Hardware". Science 337 (6100): 1303–1304. (open access)
  17. ArduinoPhone
  18. Raspberry Pi Spy. Introducing The GertDuino Add-on Board For Raspberry Pi. Retrieved on 2014-11-09.
  19. http://90.146.8.18/de/archives/prix_archive/prix_year_cat.asp?iProjectID=13638&iCategoryID=12420
  20. http://90.146.8.18/de/archives/prix_archive/prix_projekt.asp?iProjectID=13789#

Mas información

  • Arduino For Dummies; John Nussey; 446 pages; 2013; ISBN 978-1118446379.
  • Programming Arduino Next Steps: Going Further with Sketches; Simon Monk; 2013; ISBN 978-0071830256.
  • Exploring Arduino: Tools and Techniques for Engineering Wizardry; Jeremy Blum; 384 pages; 2013; ISBN 978-1118549360.
  • Arduino Workshop: A Hands-On Introduction with 65 Projects; John Boxall; 392 pages; 2013; ISBN 978-1593274481.
  • Beginning C for Arduino: Learn C Programming for the Arduino and Compatible Microcontrollers; Jack Purdum; 280 pages; 2012; ISBN 978-1430247760.
  • Programming Arduino: Getting Started With Sketches; Monk Simon; 162 pages; 2011; ISBN 978-0071784221.
  • Make: Electronics (Learning by Discovery); Charles Platt; 352 pages; 2009; ISBN 978-0596153748.

Links externos