Professional Documents
Culture Documents
de sus entradas analgicas y digitales, puede controlar luces, motores y otros actuadores. El microcontrolador en
la placa Arduino se programa mediante el lenguaje de
programacin Arduino (basado en Wiring) y el entorno
de desarrollo Arduino (basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un computador.
El proyecto Arduino recibi una mencin honorca en
la categora de Comunidades Digital en el Prix Ars Electrnica de 2006.[6] [7] [8]
0.1 Historia
[1]
2
GNU/Linux. Las primeras 300 unidades se las dieron
a
los alumnos del Instituto IVRAE, con el n de que
las
probaran y empezaran a disear sus primeros prototipos.
0.2 Productos
Arduino Leonardo
Arduino Due
Arduino ISP
Arduino Yn
0.3 Aplicaciones
El mdulo Arduino ha sido usado como base en diversas
aplicaciones electrnicas:
Arduino Esplora
Arduino Mega ADK
Arduino Ethernet
Arduino Mega 2560
Arduino Robot
Arduino Mini
Arduino Nano
LilyPad Arduino Simple
LilyPad Arduino SimpleSnap
LilyPad Arduino
LilyPad Arduino USB
Arduino Pro Mini
Arduino Fio
Arduino Pro
Escudos:
Arduino GSM Shield
[16]
Impresoras 3D.
Esquema de conexiones
Especicaciones
Pure Data
Scratch for Arduino (S4A): Entorno grco de programacin, modicacin del entorno para nios
Scratch, del MIT
Python
Ruby
Delimitadores:;, {}
Comentarios: //, /* */
C#
Operadores aritmticos: +, -, *, /, %
Asignacin: =
Gambas
3 LENGUAJE DE PROGRAMACIN
ARDUINO
Operadores de comparacin: ==, !=, <, >, <=,
>=
Operadores Booleanos: &&, ||, !
Operadores de acceso a punteros: *, &
Operadores de bits: &, |, ^, ~, <<, >>
Operadores compuestos:
Incremento y decremento de variables: ++,
- Asignacin y operacin: +=, -=, *=, /=, &=,
|=
Utilidades
sizeof()
3.1.4 Funciones bsicas
E/S digital
pinMode(pin, modo)
digitalWrite(pin, valor)
int digitalRead(pin)
E/S analgica
analogReference(tipo)
int analogRead(pin)
analogWrite(pin, valor)
E/S avanzada
shiftOut(dataPin, clockPin, bitOrder, valor)
unsigned long pulseIn(pin, valor)
Tiempo
unsigned long millis()
unsigned long micros()
delay(ms)
delayMicroseconds(microsegundos)
false (falso): Seal que representa al cero lgico.
A diferencia de las seales HIGH/LOW, su
nombre se escribe en letra minscula.
Matemticas
true (verdadero): Seal cuya denicin es ms
am- plia que la de false. Cualquier nmero entero
dife- rente de cero es verdadero, segn el
lgebra de Boole, como en el caso de 200, 1 o
1. Si es cero, es falso.
Tipos de datos
3.2 AVR
Libc
Interrupciones externas
attachInterrupt(interrupcin, funcin,
modo)
detachInterrupt(interrupcin)
avr-libc
La mayora del lenguaje de programacin Arduino
es- t escrita con constantes y funciones de AVR y
ciertas funcionalidades slo se pueden obtener
haciendo uso de AVR.[25]
3.4
en
necesario
es
el
Bibliotecas en Arduino
4.1 Serial
Lectura y escritura por el puerto
serie.
4.2 EEPROM
Lectura y escritura en el almacenamiento permanente.[29]
read(), write()
4.3 Ethernet
4 BIBLIOTECAS EN
ARDUINO
Conexin a Internet mediante Arduino Ethernet Shield.
Puede funcionar como servidor que acepta peticiones re-
6
motas o como cliente. Se permiten hasta cuatro
conexio- nes simultneas.[30] Los comandos usados son
los siguien- tes:
Servidor: Server(), begin(), available(), write(),
print(), println()
Cliente: Client(), connected(), connect(), write(),
print(), println(), available(), read(), ush(), stop()
4.4 Firmata
Es una biblioteca de comunicacin con aplicaciones
in- formticas utilizando el protocolo estndar del
puerto serie.[31]
4.5 LiquidCrystal
Control de LCDs con chipset Hitachi HD44780 o
compatibles.[32] La biblioteca soporta los modos de 4
y
8 bits.
4 BIBLIOTECAS EN
ARDUINO
attach(), write(), writeMicroseconds(), read(),
atta- ched(), detach()
4.7 SoftwareSerial
Comunicacin serie en contactos digitales.[34] Por defecto Arduino incluye comunicacin slo en los contactos
0 y 1 pero gracias a esta biblioteca puede realizarse
esta comunicacin con los restantes.
4.8 Stepper
Control de motores paso a paso unipolares o bipolares.[35]
Stepper(steps, pin1, pin2), Stepper(steps, pin1,
pin2, pin3, pin4), setSpeed(rpm), step(steps)
4.9 Wire
Envo y recepcin de datos sobre una red de dispositivos
o sensores mediante Two Wire Interface (TWI/I2C).
[36]
4.6 Servo
Biblioteca para el control de servo motores.[33] A partir
de la versin 0017 de Arduino la biblioteca soporta hasta
12 motores en la mayora de las placas Arduino y 48
en la Arduino Mega. Estos son los comandos usados:
7
diversas bibliotecas desarrolladas por diversos colabora- Ejemplo de parpadeo de LED
dores que permiten realizar muchas tareas.
/* Blink Turns on an LED on for one second, then
o for one second, repeatedly. This example code is in
the public domain. */ // Pin 13 has an LED
4.10 Creacin de bibliotecas
connected on most Arduino boards. // give it a
Los usuarios de Arduino tienen la posibilidad de name: int led = 13;
escribir sus propias bibliotecas.[37]
Ello permite // the setup routine runs once when you press
disponer de c- digo que puede reutilizarse en otros reset: void setup() { // initialize the digital pin as
proyectos, mantener el cdigo fuente principal separado an output. pinMode(led, OUTPUT); } // the loop
de las bibliotecas y la organizacin de los programas routine runs over and over again forever: void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH
construidos es ms clara.
is the voltage level) delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED o by
4.10.1 Ejemplo de biblioteca
making the voltage LOW delay(1000); // wait for a
second }
El siguiente ejemplo permite el envo de caracteres
me- diante el cdigo Morse:
Ejemplo de lectura de Potenciometro
Se crea el archivo Morse.h que incluye la denicin de
/* ReadAnalogVoltage Reads an analog input on pin
la clase Morse que tiene 3 funciones: un constructor
0, converts it to voltage, and prints the result to the
(Mor- se()), una funcin para enviar 1 punto (dot()) y
serial monitor. Attach the center pin of a
una fun- cin para enviar una raya (dash()). La variable
potentiometer to pin A0, and the outside pins to +5V
_pin per- mite indicar el contacto a usar.
and ground. This example code is in the public
/* Morse.h - Biblioteca para el envo de Cdigo domain. */ // the setup routine runs once when you
Morse. Creado por David A. Mellis, el 2 de noviembre press reset: void setup() { // initialize serial
de 2007. Liberado al dominio pblico. */ # ifndef communication
at 9600
bits per
second:
Morse_h # dene Morse_h # include WProgram.h Serial.begin(9600); } // the loop routine runs over
class Morse { public: Morse(int pin); void dot(); void and over again forever: void loop() { // read the
dash(); private: int _pin; }; # endif
input
on analog pin 0: int sensorValue =
analogRead(A0); // Convert the analog reading (which
Debe ser creado el archivo Morse.cpp con el cdigo, goes from 0 - 1023) to a voltage (0 - 5V): oat
es decir con la implementacin de los mtodos voltage = sensorValue * (5.0 / 1023.0); // print
out the value you read: Se- rial.println(voltage); }
declarados:
/* Morse.cpp - Biblioteca para el envo de
Cdigo Morse. Creado por David A. Mellis, el 2 de
noviembre de 2007. Liberado al dominio pblico. */
# include WProgram.h # include Morse.h 6 Instalacin en diferentes
Morse::Morse(int pin) { pinMode(pin, OUTPUT);
nos
_pin = pin; } void Morse::dot() { digitalWrite(_pin,
HIGH); delay(250); digitalWrite(_pin,
LOW);
6.1 Windows
delay(250);
}
void
Morse::dash()
{
digitalWrite(_pin,
HIGH);
delay(1000);
Los pasos a seguir son los siguientes:
digitalWrite(_pin, LOW); delay(250); }
La biblioteca creada as puede ser usada mediante el
co- mando #include. Si se desea enviar una peticin de
au- xilio SOS por el contacto 13 bastara con llamar a
Mor- se(13) y ejecutar la siguiente secuencia:
morse.dot(); morse.dot(); morse.dot(); morse.dash();
morse.dash(); morse.dash(); morse.dot(); morse.dot();
morse.dot();
Ejemplos de Cdigo
entor-
6.2 GNU/Linux
La pgina de Arduino cuenta con una serie de ejemplos Para instalar Arduino en un sistema GNU/Linux necesipara comenzar a entender su funcionamiento, con tamos los siguientes programas para resolver las
com- ponentes base tales como Pantallas, LEDs, depen- dencias:
Potenciome- tros, etc.
Sun java runtime, jre.
9 MINIBLOQ
Equipo de desarrollo
El ncleo del equipo de desarrollo de Arduino est formado por Massimo Banzi, David Cuartielles, Tom Igoe,
Gianluca Martino, David Mellis y Nicholas Zambetti.
Pduino
Patch Pduino.
Interfaz del
GNU/Linux.
entorno
de
desarrollo
Arduino
Minibloq
S.O.
Pantalla de Minibloq.
avr-gcc, compilador para la familia de microcontroMinibloq es un entorno grco de programacin que pueladores avr de atmel.
de generar cdigo nativo de Arduino y escribirlo directamente en la memoria ash de la placa. Tiene un modo
avr-libc, libc del compilador avr-gcc.
que permite visualizar el cdigo generado, el cual tambin puede ser copiado y pegado en el Arduino-IDE,
En algunas distribuciones conviene desinstalar, si no es
pa- ra los usuarios que intentan hacer el pasaje de una
necesario, el programa brltty que permite el acceso
herra- mienta grca a la programacin en sintaxis
al terminal a personas invidentes. Para concluir, se
C/C++. Midescarga el framework de Arduino, se descomprime y
ejecuta.
9
cutarse de manera independiente de la computadora.
El modo directo permite modicar los programas y ver
los cambios producidos de manera inmediata en el
com- portamiento del robot, lo cual facilita la
programacin, sobre todo al usuario inexperto.
Asimismo, permite ver constantemente los valores de
los sensores y utilizar el robot, por ejemplo, como para
adquirir datos.
El modo compilado, por su parte, elimina el retardo
que introduce la comunicacin con la computadora, lo
cual lo hace preferible para el desarrollo de tareas
autnomas, en las cuales la velocidad de respuesta del
Combinacin de una computadora de bajo costo OLPC, el soft- robot debe ser ptima.
ware Minibloq y una placa Arduino.
10
Physical Etoys
11
Vase tambin
BASIC Stamp
Impresin 3D
2. El modo compilado, en el cual los programas se
Gu
mstix a C++ y se bajan a la placa, para luego
traducen
Mejeinibloq
MiniPC
OOPIC
PICAXE
Raspberry Pi
Physical Etoys
Robot
X10
9
[1] Placa Arduino Serial
[2] Interview with Casey Reas and Ben Fry.
[3]
[4] Project homepage.
[5] Arduino Due is nally here.
[6] http://www.aec.at/en/prix/honorary2006.asp
[7] Ars Electrnica Archiv (en alemn). Consultado el 18
de febrero de 2009.
[8] Ars Electronica Archiv / ANERKENNUNG (en
ale- mn). Consultado el 18 de febrero de 2009.
12
Referencias
10
14 ENLACES DE
EXTERNOS
[10] Algo de Historia para comenzar. Consultado el 22 de [29] EEPROM Library. http://www.arduino.cc'' (en ingls).
diciembre de 2013.
Consultado el 22 de diciembre de 2013.
[11] Google presenta ADK, interfaz basada en Arduino para [30] Ethernet Library. http://www.arduino.cc'' (en ingls).
Android. BricoGeek.com. 12 de mayo de 2011. ConsulConsultado el 22 de diciembre de 2013.
tado el 22 de diciembre de 2013.
[31] Firmata Library. http://www.arduino.cc'' (en ingls).
[12] Accessory Development Kit 2012 Guide (en ingls).
Consultado el 22 de diciembre de 2013.
Consultado el 22 de diciembre de 2013.
[32] LiquidCrystal Library. http://www.arduino.cc'' (en in[13] Terrence O'Brien (19 de septiembre de 2011). Arduino
gls). Consultado el 22 de diciembre de 2013.
brings the (new) goods to Maker Faire New York,
welco- mes ARM into the fold (en ingls). Consultado [33] Servo Library. http://www.arduino.cc'' (en ingls). Consultado el 22 de diciembre de 2013.
el 22 de diciembre de 2013.
[14] Xoscillo: A software oscilloscope that acquires data [34] SoftwareSerial Library. http://www.arduino.cc'' (en inusing an Arduino or a parallax. (en ingls). Consultado
gls). Consultado el 22 de diciembre de 2013.
el 22 de diciembre de 2013.
[35] Stepper Library. http://www.arduino.cc'' (en ingls).
[15] Joshua M. Pearce (14 de septiembre de 2012). Building
Consultado el 22 de diciembre de 2013.
Research Equipment with Free, Open-Source Hardware (en ingls). Washington, EE.UU.: American [36] Wire Library. http://www.arduino.cc'' (en ingls). Consultado el 22 de diciembre de 2013.
Association for the Advancement of Scienc. p. 3.
doi:10.1126/science.1228183. Consultado el 22 de di[37] Writing a Library for Arduino. http://www.arduino.cc''
ciembre de 2013.
(en ingls). Consultado el 22 de diciembre de 2013.
[16] Peter Kirn (20 de agosto de 2008). Aug 20 2008
Ar- duinome: An Arduino-Based Monome Clone, Behind
the Scenes
(en ingls). Consultado el 22 de
13 Bibliografa
diciembre de
2013.
[17] Humane Reader (en ingls). Consultado el 22 de diciembre de 2013.
[18] The Humane PC (en ingls). Consultado el 22 de diciembre de 2013.
[19]
14
Enlaces de externos
11
Biicode: Aplicacin para gestionar libreras y proyectos de Arduino
Entorno grco de programacin para Arduino
Winkhel: cmo un proyecto Arduino puede convertirse en un producto real (en espaol)
Scada para Arduino
S-Remote Control: Aplicacin Android para controlar Arduino por UDP o TCP
Ejemplo de uso de Arduino y Gambas: Grca de
datos de sensores
12
LICENSES
15
15.1 Text
Arduino Fuente: http://es.wikipedia.org/wiki/Arduino?oldid=79643310 Colaboradores: 4lex, Sabbut, Tony Rotondas, Ramjar,
Interlo- per, Chobot, BOT-Superzerocool, Museo8bits, GermanX, The Photographer, Jago84, CEM-bot, Chuo, Montgomery,
JoaquinFerrero, JAnDbot, CommonsDelinker, Biasoli, Cinevoro, VolkovBot, Synthebot, Shooke, Muro Bot, Nabegando1990, Loveless,
Leonaro, Drini- bot, BOTarate, Yonseca, Javierito92, Kikobot, Botelln, Leonpolanco, Alecs.bot, LordT, Alexbot, Darkicebot, Clunhair,
UA31, AVBOT, LucienBOT, Arjuno3, Luckas-bot, MystBot, Disenyo, DanielrocaES, Ral Milla, SuperBraulio13, Xqbot, Jkbw,
Brunonar, Frammm, Ma- cucal, JaadesA, Botarel, AstaBOTh15, Joebigwheel, Hprmedina, Jcdy, Halfdrag, Kizar, Omerta-ve, Thomaspluralvonglas, PatruBOT, Rononito, Julian dasilva, EmausBot, Savh, ZroBot, SUPUL SINAC, Grillitus, JackieBot, Minirobots,
ChuispastonBot, WikitanvirBot, Diamondland, Dr Doofenshmirtz, Ruos, Jmdoren, KLBot2, Loureda, Yomalospelos, Arthur 'Two
Sheds Jackson, MetroBot, Invadi- bot, Turoart, Johnbot, Elvisor, Laure f o, Enrique Pichardo, Angelo9507, Angeldefuego22, Makecatbot, Jsbsan, Sebastiangabrielblanco, RichoM, Chemaper, Addbot, Arkantos13, Arkantos1997, Lagoset, Hithwen, Jernimo lvarez,
Mario Zuiga Carrillo y Annimos: 108
15.2 Images
Archivo:Arduino316.jpg Fuente: http://upload.wikimedia.org/wikipedia/commons/6/6c/Arduino316.jpg Licencia: CC BY-SA 3.0
Co- laboradores: http://www.arduino.cc/ Artista original: Nicholas Zambetti
Archivo:Arduino_Uno_-_R3.jpg Fuente: http://upload.wikimedia.org/wikipedia/commons/3/38/Arduino_Uno_ - _R3.jpg Licencia:
CC BY 2.0 Colaboradores: Arduino Uno - R3 Artista original: SparkFun Electronics from Boulder, USA
Archivo:Arduino_dani2.png Fuente: http://upload.wikimedia.org/wikipedia/commons/7/7a/Arduino_dani2.png Licencia:
Colabo- radores: Screenshot by DanielrocaES Artista original: Arduino developers. Code sample by Hans-Christoph Steiner.
GPL
GPL Colaboradores: