Arduino

De FdIwiki ELP
Saltar a: navegación, buscar

Arduino es una compañia, 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 comunicacion en serie, incluendo USB en algunos modelos, por donce 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 programacion C y C++.

El primer Arduino apareció 2005. El proyecto buscaba generar una manera facil y barata para personas con hobbys, estudiantes y profesionales de crear disposotivos 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 informacion del diseño del hardware esta disponible para aquellos que deseen montar un Arduino a mano. Adafruit Industries estimó a mediados de 2011 que se habian producido comercialmente mas de 300,000 Arduinos oficiales,[3] y que en 2013 habia 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 Interaccion en Ivrea, Italia. En ese momento los estudiantes del programa usaban un "Basic Stamp"(un microprocesador con un interprete 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 solian 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. Cunado la plataforma Wiring[7] estuvo completa, los investigadores trabajaron para hacerla mas ligera, menos cara y disponible para la comunicidad 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 componenetes complementarios que falcilitan la programacion e incorporacion en otros circuitos. Un aspecto importante de los Arduinos son sus conectores estandar, que permiten a los usuarios conectar la placa de la CPU a varios modulos intercambiables llamados Escudos. Algunis escudos se comunicas con la placa Arduino diresctamente 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 ha 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 mayoria de las placas incluye un regulador lineal de 5 voltios y un oscilador cristalino(o resonador ceramico en algunos casos) de 16 MHz, aunque algunso diseños, como el LilyPad, corren a 8MHz y prescincen 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 comparacion con otros dispositivos que generalmente necesitan un hardware programador, lo que hace que usar Arduino sea mas directo.

En un nivel conceptual, cuando usas la pila de software de Arduino todas las placas son programadas sobre una conexion en serie RS-232, pero la manero 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 o otros medios.(Cuando se usa con herramientas de microcontrolador en vez del IDE de Arduino, Se usa la programacion estandar AVR ISP(Instalacion a la hora de montarlo))

La placa Arduino muestra la mayoria 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(tecnica para codificar un mensaje en una señas de pulsos), y seis entradas analogicas que pueden ser usadas, tambien, 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 intercambiandolas. Algunas mejoran la Arduino basica añadiendo controladores de salida, generalmente usadas en educacion de colegio para simplificar la construccion de pequeños robots y buggies. Otras son electricamente 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 varian los niveles de compatibilidad.

Software

El entorno de desarrollo integrado(IDE) de Arduino es una aplicacion multiplataforma escrita en Java, y deriva del IDE para Processing y los proyectos de Wiring. Se utiliza para introducir en la programacion a gente que no esté familiarizada el desarrollo del software. Incluye un editos de codigo con características como destacado de sintaxis, emparejamiento de llaves, indentacion automatica y ademas permite compilar y cargar programas a la placa con un click. Un codigo o programa escrito por Arduino se llama sketch. [8]

Los progamas de Arduino estan escritos en C o C++. El IDE de Arduino viene con una libreria de software llamada "Wiring" de proyecto original Wiring, lo que hace muchas de las operaciones de entrada y salida mucho mas sencillas. Los usuarios solo necesitan definir dos funciones para hacer un programa ciclico ejecutable:

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

El primer programa tipico 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 mayoria de las placas Arduino tiene un led y un resistor de carga conectado entre el pin 13 y tierra; una caracteristica conveniente para tests simples.[9] El código previo no sería visto como un programa valido por el compilador C++ estandar, asi que, cuando el usuario pulsa el boton "Upload to I/O board", una copia se escribe en un archivo temporal con una cabecera extra de include y una funcion main() al final, para convetirlo un programa valido 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 codigo abierto: los diseños referentes al hardware Arduino se distribuyen bajo una licencia Creative Commons Attribution Share-Alike 2.5 y esta disponible en la pagina web de Arduino. La disposicion y los archivos de algunas versiones del hardware de Arduino tambien están disponibles. El codigo 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 politica 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 cientifico[16]
  • Arduinome: Un controlador MIDI que imita Monome
  • OBDuino: un ordenador de viaje que usa la interfaz de diagnosticos de a bordo que está en la mayoria de los coches modernos
  • Ardupilot: hardware / software de drones
  • ArduinoPhone[17]
  • GertDuino, Un complemento para la Raspberry Pi[18]

Recepcion

El proyecto de Arduino recibio una mención honorifica en la categoria de Comunidades Digitales en los premios de 2006 de Prix Ars Electronica.[19][20]

Ver tambien

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