Beruflich Dokumente
Kultur Dokumente
y el software fcil de usar. Est dirigido a cualquier persona que hace proyectos
interactivos.
Arduino
Arduino
Tipo
Placa
computadora (microcontroladorde placa si
mple)
Pgina
www.arduino.cc
web
Historia[editar]
Arduino se inici en el ao 2005 como un proyecto para estudiantes en el Instituto IVREA,
en Ivrea (Italia). En ese tiempo, los estudiantes usaban el microcontrolador BASIC Stamp,
cuyo coste era de 100 dlares estadounidenses, lo que se consideraba demasiado costoso
para ellos. Por aquella poca, uno de los fundadores de Arduino, Massimo Banzi, daba
clases en Ivrea.9
El nombre del proyecto viene del nombre del Bar di Re Arduino (Bar del Rey Arduino)
donde Massimo Banzi pasaba algunas horas. En su creacin, contribuy el estudiante
colombiano Hernando Barragn, quien desarroll la tarjeta electrnica Wiring, el lenguaje
de programacin y la plataforma de desarrollo.10 Una vez concluida dicha plataforma, los
investigadores trabajaron para hacerlo ms ligero, ms econmico y disponible para la
comunidad de cdigo abierto (hardware y cdigo abierto). El instituto finalmente cerr sus
puertas, as que los investigadores, entre ellos el espaol David Cuartielles, promovieron la
idea.9 Banzi afirmara aos ms tarde, que el proyecto nunca surgi como una idea de
negocio, sino como una necesidad de subsistir ante el inminente cierre del Instituto de
diseo Interactivo IVREA. Es decir, que al crear un producto de hardware abierto, ste no
podra ser embargado.
Posteriormente, Google colabor en el desarrollo del Kit Android ADK (Accesory
Development Kit), una placa Arduino capaz de comunicarse directamente con telfonos
mviles inteligentes bajo el sistema operativoAndroid para que el telfono controle luces,
motores y sensores conectados de Arduino.11 12
Para la produccin en serie de la primera versin se tom en cuenta que el coste no fuera
mayor de 30 euros, que fuera ensamblado en una placa de color azul, deba ser Plug and
Play y que trabajara con todas las plataformas informticas tales
como MacOSX, Windows y GNU/Linux. Las primeras 300 unidades se las dieron a los
alumnos del Instituto IVRAE, con el fin de que las probaran y empezaran a disear sus
primeros prototipos.
En el ao 2005, se incorpor al equipo el profesor Tom Igoe,10 que haba trabajado en
computacin fsica, despus de que se enterara del mismo a travs de Internet. l ofreci
su apoyo para desarrollar el proyecto a gran escala y hacer los contactos para distribuir las
tarjetas en territorio estadounidense. En la feria Maker Fair de 2011 se present la primera
placa Arduino 32 bit para trabajar tareas ms pesadas.13
Aplicaciones[editar]
El mdulo Arduino ha sido usado como base en diversas aplicaciones electrnicas:
OBDuino: un econmetro que usa una interfaz de diagnstico a bordo que se halla
en los automviles modernos.
The Humane PC: equipo que usa un mdulo Arduino para emular un computador
personal, con un monitor de televisin y un teclado para computadora. 18
Esquema de conexiones[editar]
Entradas y salidas[editar]
Poniendo de ejemplo al mdulo Diecimila, ste consta de 14 entradas digitales
configurables como entradas y/o salidas que operan a 5 voltios. Cada contacto puede
proporcionar o recibir como mximo 40 mA. Los contactos 3, 5, 6, 8, 10 y 11 pueden
proporcionar una salida PWM (Pulse Width Modulation). Si se conecta cualquier cosa a los
contactos 0 y 1, eso interferir con la comunicacin USB. Diecimila tambin tiene 6
entradas analgicas que proporcionan una resolucin de 10 bits. Por defecto, aceptan de 0
hasta 5 voltios, aunque es posible cambiar el nivel ms alto, utilizando el contacto Aref y
algn cdigo de bajo nivel.
Especificaciones[editar]
Las especificaciones de los distintos modelos de placas Arduino se resumen en la
siguiente tabla:
Volt Volt
Modelo
Microcont
rolador
aje
aje
de
del
entr sist
ada ema
3X8E
12V
12V
12V
RedBoar ATmega32 7d
15V
3,3V
5V
5V
5V
Frecu
encia
de
Reloj
84MH
z
16MH
z
16MH
z
16MH
z
Dig
ital
I/O
Entra
das
Anal
gicas
P
W
M
Mem
UA oria Cargad
RT Flas
12 4
20* 12
14
or
54* 12
14
Interfaz
512K
b
32Kb
32Kb
32Kb
(desconti 8
nuado)
12V
5V
16MH
z
14
32Kb
Program
acin
Due
Nativa
USB
Leonard Nativa
o
Optiboo
t
USB
USB via
ATMega
16U2
Optiboo USB
t
Arduino
Uno SMD ATmega32 7-
de
Optiboo
t
via FTDI
USB via
ATMega
8U2
Arduino
Uno
ATmega32 7-
(desconti 8
12V
5V
16MH
z
14
32Kb
Optiboo
t
nuado)
USB via
ATMega
8U2
Arduino
Duemilan
ove
(desconti
ATmega32 78
12V
5V
16MH
z
14
32Kb
14
32Kb
FTDI
nuado)
Arduino
Bluetoot
h
(desconti
ATmega32 1,28
5,5V
5V
16MH
z
Atmega Serial Bl
BOOT
uetooth
nuado)
Cabecer
Arduino
Pro
ATmega32 3,35
3.3V/8MH 8
-12V
3,3V 8MHz 14
32Kb
Atmega
BOOT
ATmega32 5 12V
5V
16MH
z
14
32Kb
Atmega
BOOT
ATmega32 712V
5V
16MH
z
14
32Kb
Atmega
BOOT
nuado)
2560 R3
Arduino
Mega
2560
(desconti
compatib
le con
Cabecer
(desconti 8
Mega
FTDI
Ethernet
Arduino
le con
Cabecer
5V/16MH 8
Pro
compatib
FTDI
Arduino
Pro
a
compatib
le con
FTDI
ATmega25 760
12V
ATmega25 760
12V
5V
5V
16MH
z
54
16MH 54
z
16
16
14 4
14 4
256K STK500
b
v2
USB via
ATMega
16U2
v2
ATMega
8U2
nuado)
Arduino
Mega
ATmega12 7-
(desconti 80
12V
5V
16MH
z
54
16
14 4
v2
FTDI
nuado)
Cabecer
Mega Pro ATmega25 3,33.3V
60
12V
3,3V 8MHz 54
16
14 4
256K STK500
b
v2
a
compatib
le con
FTDI
Cabecer
60
12V
5V
16MH
z
54
16
14 4
256K STK500
b
v2
a
compatib
le con
FTDI
Arduino
Mini 04
ATmega32
(desconti 8
7-9V 5V
16MH
z
14
32Kb
14
32Kb
Atmega Cabecer
BOOT
a Serial
nuado)
Arduino ATmega32
Mini 05
7-9V 5V
16MH
z
Atmega Cabecer
BOOT
Cabecer
Arduino
Pro Mini ATmega32 3,35
3.3V/8MH 8
-12V
3,3V 8MHz 14
32Kb
Atmega
BOOT
compatib
le con
Cabecer
12V
5V
16MH
z
14
32Kb
Atmega
BOOT
Fio
FTDI
Arduino
Arduino
a Serial
a
compatib
le con
FTDI
-12V
a
compatib
le con
FTDI o
Inalmbri
ca via
XBee1
Cabecer
Mega Pro ATmega25 3,3Mini 3.3V 60
12V
3,3V 8MHz 54
16
14 4
256K STK500
b
v2
a
compatib
le con
FTDI
Pro
Micro
ATmega32 5-
5V/16MH U4
12V
5V
16MH
12
32Kb
3,3V 8MHz 12
32Kb
DiskLoa Nativa
der
USB
z
Pro
Micro
ATmega32 3,35
3.3V/8MH U4
-12V
DiskLoa Nativa
der
USB
z
Cabecer
LilyPad
Arduino ATmega32 2,7328 Main 8
5,5V
3,3V 8MHz 14
32Kb
Atmega
BOOT
Board
compatib
le con
FTDI
Cabecer
LilyPad
Arduino ATmega32 2,7Simple
5,5V
3,3V 8MHz 9
32Kb
Board
Atmega
BOOT
a
compatib
le con
FTDI
Los modelos Arduino Diecimila, Arduino Duemilanove y Arduino Mega estn basados en
los microcontroladores ATmega168, ATmega328 y ATmega1280
ATmega168
Voltaje operativo 5 V
ATmega328
5V
ATmega1280
5V
Voltaje de
entrada
7-12 V
7-12 V
7-12 V
6-20 V
6-20 V
6-20 V
14 (6
14 (6
54 (14
proporcionan PWM)
proporcionan PWM)
proporcionan PWM)
16
40 mA
40 mA
40 mA
recomendado
Voltaje de
entrada lmite
Contactos de
entrada y salida
digital
Contactos de
entrada
analgica
Intensidad de
corriente
Memoria Flash
128KB (4KB
reservados para el
para el bootloader)
para el bootloader)
SRAM
1 KB
2 KB
8 KB
EEPROM
512 bytes
1 KB
4 KB
16 MHz
16 MHz
16 MHz
Frecuencia de
reloj
bootloader)
usa la transmisin serial de datos soportada por la mayora de los lenguajes mencionados.
Para los que no soportan el formato serie de forma nativa, es posible utilizar software
intermediario que traduzca los mensajes enviados por ambas partes para permitir una
comunicacin fluida. Algunos ejemplos son:
Adobe Director
C#
Gambas
Java
Mathematica
Matlab
Perl
Php
Processing
Pure Data
Python
Ruby
VBScript
Delimitadores:;, {}
Comentarios: //, /* */
Operadores aritmticos: +, -, *, /, %
Asignacin: =
Operadores compuestos:
Estructuras de control[editar]
Variables[editar]
En cuanto al tratamiento de las variables tambin comparte un gran parecido con el
lenguaje C.
Constantes[editar]
HIGH/LOW: representan los niveles alto y bajo de las seales de entrada y salida.
Los niveles altos son aquellos de 3 voltios o ms.
false (falso): Seal que representa al cero lgico. A diferencia de las seales
HIGH/LOW, su nombre se escribe en letra minscula.
Tipos de datos[editar]
void, boolean, char, unsigned char, byte, int, unsigned int, word, long, unsigned
long, float, double, string, array.
Estas funciones reciben como argumento una variable de cualquier tipo y devuelven una
variable convertida en el tipo deseado.
Utilidades[editar]
sizeof()
Funciones Bsicas[editar]
E/S Digital[editar]
pinMode(pin, modo)
digitalWrite(pin, valor)
int digitalRead(pin)
E/S Analgica[editar]
analogReference(tipo)
int analogRead(pin)
analogWrite(pin, valor)
E/S Avanzada[editar]
Tiempo[editar]
delay(ms)
delayMicroseconds(microsegundos)
Matemticas[editar]
min(x, y), max(x, y), abs(x), constrain(x, a, b), map(valor, fromLow, fromHigh,
toLow, toHigh), pow(base, exponente), sqrt(x)
Trigonometra[editar]
Nmeros aleatorios[editar]
Bits y Bytes[editar]
Interrupciones externas[editar]
detachInterrupt(interrupcin)
Interrupciones[editar]
interrupts(), noInterrupts()
Manipulacin de puertos[editar]
Los registros de puertos permiten la manipulacin a ms bajo nivel y de forma ms rpida
de los contactos de entrada/salida del microcontrolador de las placas Arduino. 24 Los
contactos elctricos de las placas Arduino estn repartidos entre los registros B(0-7), C
(analgicos) y D(8-13). Mediante estas variables ser observado y modificado su estado:
DDR[B/C/D]: Data Direction Register (o direccin del registro de datos) del puerto
B, C D. Es una variable de Lectura/Escritura que sirve para especificar cuales
contactos sern usados como entrada y salida.
Por ejemplo, para especificar los contactos 9 a 13 como salidas y el 8 como entrada
(puesto que el puerto D usa los pines de la placa Arduino 8 al 13 digitales) bastara utilizar
la siguiente asignacin:
DDRD = B11111110;
Como se ha podido comprobar, el conocimiento del lenguaje C, permite la programacin
en Arduino debido a la similitud entre ste y el lenguaje nativo del proyecto, lo que implica
el aprendizaje de algunas funciones especficas de que dispone el lenguaje del proyecto
para manejar los diferentes parmetros. Se pueden construir aplicaciones de cierta
complejidad sin necesidad de muchos conceptos previos.
AVR Libc[editar]
Los programas compilados con Arduino (salvo en las placas con CorteX M3) se enlazan
contra AVR Libc22 por lo que tienen acceso a algunas de sus funciones. AVR Libc es un
proyecto de software libre con el objetivo de proporcionar una biblioteca C de alta calidad
para utilizarse con el compilador GCC sobre microcontroladores Atmel AVR. Se compone
de 3 partes:
avr-binutils
avr-gcc
avr-libc
La mayora del lenguaje de programacin Arduino est escrita con constantes y funciones
de AVR y ciertas funcionalidades slo se pueden obtener haciendo uso de AVR. 25
Interrupciones[editar]
Las seales de interrupcin son las siguientes:
'nop' (no operacin). Cada sentencia 'nop' se ejecutar en un ciclo de mquina (16 MHz)
de aproximadamente 62,5ns.
Manipulacin de puertos[editar]
La manipulacin de puertos con cdigo AVR es ms rpida que utilizar la funcin
digitalWrite() de Arduino.
Establecer Bits en variables[editar]
cbi y sbi son mecanismos estndar (AVR) para establecer o limpiar bits en PORT y otras
variables.
Processing
int bar[8];
bar[0] = 1;
bar[0] = 1;
int foo[] = { 0, 1, 2 };
int foo[] = { 0, 1, 2 };
o bien
int[] foo = { 0, 1, 2 };
Impresin de cadenas[editar]
Arduino
Processing
Serial.println("hello world");
println("hello world");
int i = 5;
int i = 5;
Serial.println(i);
println(i);
int i = 5;
int i="5;"
Serial.print("i = ");
Serial.print(i);
Serial.println();
Bibliotecas en Arduino[editar]
Las bibliotecas estndar que ofrece Arduino son las siguientes:28
Serial[editar]
Lectura y escritura por el puerto serie.
EEPROM[editar]
Lectura y escritura en el almacenamiento permanente. 29
read(), write()
Ethernet[editar]
Conexin a Internet mediante Arduino Ethernet Shield. Puede funcionar como servidor
que acepta peticiones remotas o como cliente. Se permiten hasta cuatro conexiones
simultneas.30 Los comandos usados son los siguientes:
Firmata[editar]
Es una biblioteca de comunicacin con aplicaciones informticas utilizando el protocolo
estndar del puerto serie.31
LiquidCrystal[editar]
Control de LCDs con chipset Hitachi HD44780 o compatibles.32 La biblioteca soporta los
modos de 4 y 8 bits.
Servo[editar]
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:
SoftwareSerial[editar]
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.
Stepper[editar]
Control de motores paso a paso unipolares o bipolares.35
Wire[editar]
Envo y recepcin de datos sobre una red de dispositivos o sensores mediante Two Wire
Interface (TWI/I2C).36
Las bibliotecas Matrix y Sprite de Wiring son totalmente compatibles con Arduino y sirven
para manejo de matrices de diodos LED. Tambin se ofrece informacin sobre diversas
bibliotecas desarrolladas por diversos colaboradores que permiten realizar muchas tareas.
Creacin de bibliotecas[editar]
Los usuarios de Arduino tienen la posibilidad de escribir sus propias bibliotecas. 37 Ello
permite disponer de cdigo que puede reutilizarse en otros proyectos, mantener el cdigo
fuente principal separado de las bibliotecas y la organizacin de los programas construidos
es ms clara.
Ejemplo de biblioteca[editar]
El siguiente ejemplo permite el envo de caracteres mediante el cdigo Morse:
Se crea el archivo Morse.h que incluye la definicin de la clase Morse que tiene 3
funciones: un constructor (Morse()), una funcin para enviar 1 punto (dot()) y una funcin
para enviar una raya (dash()). La variable _pin permite indicar el contacto a usar.
/*
Morse.h - Biblioteca para el envo de Cdigo Morse.
Creado por David A. Mellis, el 2 de noviembre de 2007.
Liberado al dominio pblico.
*/
# ifndef Morse_h
# define Morse_h
# include "WProgram.h"
class Morse
{
public:
Morse(int pin);
void dot();
void dash();
private:
int _pin;
};
# endif
Debe ser creado el archivo Morse.cpp con el cdigo, es decir con la implementacin de los
mtodos 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"
Morse::Morse(int pin)
{
pinMode(pin, OUTPUT);
_pin = pin;
}
void Morse::dot()
{
digitalWrite(_pin, HIGH);
delay(250);
digitalWrite(_pin, LOW);
delay(250);
}
void Morse::dash()
{
digitalWrite(_pin, HIGH);
delay(1000);
digitalWrite(_pin, LOW);
delay(250);
}
La biblioteca creada as puede ser usada mediante el comando #include. Si se desea
enviar una peticin de auxilio SOS por el contacto 13 bastara con llamar a Morse(13) y
ejecutar la siguiente secuencia:
morse.dot(); morse.dot(); morse.dot();
morse.dash(); morse.dash(); morse.dash();
morse.dot(); morse.dot(); morse.dot();
Ejecutar el IDE Arduino para abrir la interfaz y configurar el puerto USB donde est
conectada la placa.
GNU/Linux[editar]
Equipo de desarrollo[editar]
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[editar]
Patch Pduino.
Pduino nace de la fusin de los proyectos Pure Data y Arduino. Ambos proyectos de fuente
abierta permiten trabajar con interfaz grfica. Cargando el firmware de Pure Data (PD) a la
placa Arduino se puede acceder a ella mediante el lenguaje de programacin grfico.
Minibloq[editar]
Pantalla de Minibloq.
Combinacin de una computadora de bajo costo OLPC, el software Minibloq y una placa Arduino.
Physical Etoys[editar]
Physical Etoys es una extensin libre y gratuita que permite que diversos dispositivos
electrnicos como Lego NXT, las placas Arduino, Sphero, Kinect, Joystick Wiimote, entre
otros, puedan ser programados fcilmente y que interacten entre s gracias a su sistema
de bloques.
En el caso de Arduino, Physical Etoys ofrece dos modos de programacin:
1. El modo "directo", en el cual los programas se ejecutan en la computadora del
usuario y las rdenes se transmiten inmediatamente a travs del puerto serie.
Vase tambin[editar]
BASIC Stamp
OOPIC
PICAXE
Gumstix
Minibloq
MiniPC
Raspberry Pi
Physical Etoys
Robot
X10
Referencias[editar]
1.
2.
3.
4.
5.
6.
7.
8.
9.
Saltar a:a b David Kushner (26 Oct 2011). The Making of Arduino.
10.
11.
12.
13.
14.
15.
16.
Volver arriba Peter Kirn (20 de agosto de 2008). Aug 20 2008 Arduinome: An
Arduino-Based Monome Clone, Behind the Scenes (en ingls). Consultado el 22 de
diciembre de 2013.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
Arduino Uno
Arduino Uno
R2 frontal
Arduino Uno
SMD
Arduino Uno
frontal
Arduino Uno
Volver
Informacin general
El Arduino Uno es una placa electronica basada en
el ATmega328 ( ficha tcnica ). Cuenta con 14 pines digitales
de entrada / salida (de los cuales 6 pueden utilizarse para
salidas PWM), 6 entradas analgicas, un 16 MHz resonador
cermico, una conexin USB, un conector de alimentacin, un
header ICSP, y un botn de reinicio. Contiene todo lo
necesario para apoyar el microcontrolador; basta con
conectarlo a un ordenador con un cable USB o el poder con
un adaptador o la batera AC-to-DC para empezar.
El Uno se diferencia de todas las placas anteriores en que no
utiliza el chip controlador de USB a serial FTDI. En lugar de
ello, cuenta con la Atmega16U2 ( Atmega8U2 hasta la versin
R2) programado como un convertidor de USB a serie.
Revisin 2de la junta Uno tiene una resistencia tirando de la
ATmega328
5V
7-12V
6-20V
14 (de los cuales 6 proporcionan PWM)
6
40 mA
O
Corriente DC de 3.3V Pin
Memoria Flash
SRAM
EEPROM
Velocidad de reloj
50 mA
32 KB ( ATmega328 ) de los cuales 0,5
KB utilizado por gestor de arranque
2 KB ( ATmega328 )
1 KB ( ATmega328 )
16 MHz
Entrada y salida
idntico.
Comunicacin
El Arduino Uno tiene una serie de instalaciones para la
comunicacin con un ordenador, otro Arduino, u otros
microcontroladores. El ATmega328 ofrece UART TTL (5V) de
comunicacin en serie, que est disponible en los pines
digitales 0 (RX) y 1 (TX). Un ATmega16U2 en los canales de
mesa esta comunicacin serie a travs de USB y aparece
como un puerto com virtual para el software en el
ordenador. El "firmware 16U2 utiliza los controladores USB
COM estndar, y no se necesita ningn controlador
externo. Sin embargo, en Windows, es necesario un archivo
inf . El software de Arduino incluye un monitor de serie que
Arduino Uno
Arduino
Leonardo
Arduino Due
Arduino Yun
Escudo GSM
Arduino
Arduino
Ethernet
Shield
El Kit de
Inicio
Arduino
Arduino
Materia 101
ACCESORIO
S
Arduino Tre
Arduino Zero
Arduino WiFi Es
cudo
Arduino
Micro
Arduino Esplora
Arduino
Wireless SD
Shield
Pantalla LCD
TFT
Arduino
Mega ADK
Arduino
Ethernet
Arduino USB
Host Escudo
USB /
Adaptador
Serial Luz
Arduino
Mega 2560
Arduino Robot
Arduino Motor
Escudo
Arduino ISP
Arduino Mini
Arduino Nano
Arduino
Wireless Proto
Escudo
Mini USB /
Serial
Adapter
LilyPad Ardui
no simple
LilyPad Arduino
SimpleSnap
LilyPad Ardui
no
LilyPad Arduino
USB
Arduino Proto
Escudo
Arduino Pro
Mini
Arduino Pro
Arduino Fio