You are on page 1of 15

Arduino

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]

Placa Arduino RS232

Arduino es una plataforma de hardware libre, basada en


una placa con un microcontrolador y un entorno de desarrollo, diseada para facilitar el uso de la electrnica
en proyectos multidisciplinares.[2] [3]
El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida.
[4]
Los microcontroladores
ms usados son el
Atmega168, Atmega328, Atmega1280, ATmega8 por
su sencillez y bajo coste que permiten el desarrollo de
mltiples dise- os. Por otro lado el software consiste
en un entorno de desarrollo que implementa el lenguaje
de programacin Processing/Wiring y el cargador de
arranque que es eje- cutado en la placa.[4]

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 estadou- nidenses, lo que se consideraba
demasiado costoso para ellos. Por aquella poca, uno
de los fundadores de Ar- duino, 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
pa- saba algunas horas. En su creacin, contribuy el
estu- diante colombiano Hernando Barragn, quien
desarroll la tarjeta electrnica Wiring, el lenguaje de
programa- cin y la plataforma de desarrollo.[10] Una
vez concluida dicha plataforma, los investigadores
trabajaron para ha- cerlo ms ligero, ms econmico y
disponible para la co- munidad de cdigo abierto
(hardware y cdigo abierto). El instituto nalmente
cerr sus puertas, as que los inves- tigadores, entre ellos
el espaol David Cuartielles, pro- movieron la idea.[9]
Banzi armara 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.

Desde octubre de 2012, Arduino se usa tambin con


mi- crocontroladoras CortexM3 de ARM de 32 bits,
[5]
que coexistirn con las ms limitadas, pero tambin
econ- micas AVR de 8 bits. ARM y AVR no son
plataformas compatibles a nivel binario, pero se
pueden programar con el mismo IDE de Arduino y
hacerse programas que compilen sin cambios en las dos
plataformas. Eso s, las microcontroladoras CortexM3
usan 3,3V, a diferencia de la mayora de las placas con
AVR que generalmente usan
5V. Sin embargo ya anteriormente se lanzaron placas Arduino con Atmel AVR a 3,3V como la Arduino Fio y Posteriormente, Google colabor en el desarrollo del Kit
exis- ten compatibles de Arduino Nano y Pro como Android ADK (Accesory Development Kit), una placa Arduino capaz de comunicarse directamente con teMeduino en que se puede conmutar el voltaje.
lfonos mviles inteligentes bajo el sistema operativo
Arduino se puede utilizar para desarrollar objetos interAndroid para que el telfono controle luces, motores y
activos autnomos o puede ser conectado a software
sensores conectados de Arduino.[11] [12]
tal como Adobe Flash, Processing, Max/MSP, Pure
Data. Las placas se pueden montar a mano o Para la produccin en serie de la primera versin se toadquirirse. El entorno de desarrollo integrado libre se m en cuenta que el coste no fuera mayor de 30 euros,
que fuera ensamblado en una placa de color azul,
puede descargar gratuitamente.
de- ba ser Plug and Play y que trabajara con todas las
Arduino puede tomar informacin del entorno a travs
pla- taformas informticas tales como MacOSX,
Windows y

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.

Arduino Ethernet Shield


Arduino WiFi Shield
Arduino Wireless SD Shield

Arduino USB Host Shield


En el ao 2005, se incorpor al equipo el profesor
Tom Igoe,[10] que haba trabajado en computacin
Arduino Motor Shield
fsica, des- pus de que se enterara del mismo a travs
de Internet. l ofreci su apoyo para desarrollar el
Arduino Wireless Proto Shield
proyecto a gran escala y hacer los contactos para
Arduino Proto Shield
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]
Kits:

0.2 Productos

The Arduino Starter Kit

Arduino Materia 101


Los modelos en venta de Arduino se categorizan en 4
diferentes productos: tablas, escudos, kits y
Accesorios:
accesorios; siendo en cada uno: Tablas:
Arduino Uno

TFT LCD Screen

Arduino Leonardo

USB/Serial Light Adapter

Arduino Due

Arduino ISP

Arduino Yn

Mini USB/Serial Adapter

Arduino Tre (En Desarrollo)


Arduino Zero (En Desarrollo)
Arduino Micro

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

Xoscillo: Osciloscopio de cdigo abierto.


[14]

Equipo cientco para investigaciones.[15]

[16]

Arduinome: Un dispositivo controlador MIDI.


OBDuino: un econmetro que usa una interfaz de
diagnstico a bordo que se halla en los automviles
modernos.
Humane Reader: dispositivo electrnico de bajo
coste con salida de seal de TV que puede manejar una biblioteca de 5000 ttulos en una tarjeta
microSD.[17]
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]
Ardupilot: software y hardware de aeronaves no
tri- puladas.

ArduinoPhone: un telfono mvil construido


sobre un mdulo Arduino.[19] [20]

Impresoras 3D.

3.1 Funciones bsicas y operadores

Esquema de conexiones

1.1 Entradas y salidas


Poniendo de ejemplo al mdulo Diecimila, ste
consta de 14 entradas digitales congurables como
entradas y/o salidas que operan a 5 voltios. Cada
contacto puede pro- porcionar o recibir como mximo
40 mA. Los contactos
3, 5, 6, 9, 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 comunica- cin 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.

Especicaciones

Las especicaciones de los distintos modelos de placas


Arduino se resumen en la siguiente
tabla:

Isadora (Interactividad audiovisual en tiempo real)


Instant Reality (X3D)
Java
Liberlab (software de medicin y experimentacin)
Mathematica
Matlab
MaxMSP: Entorno grco de programacin
para aplicaciones musicales, de audio y
multimedia
Minibloq: Entorno grco de programacin, corre
tambin en las computadoras OLPC
Perl
Php
Physical Etoys: Entorno grco de programacin
usado para proyectos de robtica educativa
Processing

Los modelos Arduino Diecimila, Arduino Duemilanove


y Arduino Mega estn basados en los microcontroladores
ATmega168, ATmega328 y ATmega1280

Pure Data

Scratch for Arduino (S4A): Entorno grco de programacin, modicacin del entorno para nios
Scratch, del MIT

Lenguaje de programacin Arduino

La plataforma Arduino se programa mediante el uso de


un lenguaje propio basado en el lenguaje de
programacin de alto nivel Processing. Sin embargo, es
posible utilizar otros lenguajes de programacin y
aplicaciones populares en Arduino,[21] debido a que
Arduino 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 uida. Algunos ejemplos son:

Python
Ruby

Squeak: Implementacin libre de Smalltalk


SuperCollider: Sntesis de audio en tiempo real
VBScript
Visual Basic .NET
VVVV: Sntesis de vdeo en tiempo real

3.1 Funciones bsicas y operadores

Arduino est basado en C y soporta todas las funciones


[22]
A continuacin
3DVIA Virtools: aplicaciones interactivas y de del estndar C y algunas de C++.
se
muestra
un
resumen
con
la
estructura
y sintaxis del
tiempo real.
len- guaje Arduino:
Adobe Director
BlitzMax (con acceso restringido)

3.1.1 Sintaxis bsica

Delimitadores:;, {}

C++ (mediante libSerial o en Windows)

Comentarios: //, /* */

C#

Cabeceras: #dene, #include

Cocoa/Objective-C (para Mac OS X)

Operadores aritmticos: +, -, *, /, %

Flash (mediante ActionScript)

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: +=, -=, *=, /=, &=,
|=

3.1.2 Estructuras de control


Condicionales: if, if...else, switch case
Bucles: for, while, do... while
Bifurcaciones y saltos: break, continue, return, goto
3.1.3 Variables
En cuanto al tratamiento de las variables tambin
com- parte un gran parecido con el lenguaje C.
Constantes
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.
INPUT/OUTPUT: entrada o salida.

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.

min(x, y), max(x, y), abs(x), constrain(x, a, b),


map(valor, fromLow, fromHigh, toLow, toHigh),
pow(base, exponente), sqrt(x)
Trigonometra

Tipos de datos

sin(rad), cos(rad), tan(rad)

void, boolean, char, unsigned char, byte, int,


un- signed int, word, long, unsigned long, oat, Nmeros aleatorios
double, string, array.
randomSeed(semilla), long random(mx), long random(mn, mx)
Conversin entre tipos
Estas funciones reciben
como argumento una variable de cualquier tipo y
devuelven una variable convertida en el tipo deseado.
Bits y Bytes
char(), byte(), int(), word(), long(), oat()
Cualicadores y mbito de las variables
static, volatile, const

lowByte(), highByte(), bitRead(), bitWrite(),


bit- Set(), bitClear(), bit()

3.2 AVR
Libc
Interrupciones externas
attachInterrupt(interrupcin, funcin,
modo)
detachInterrupt(interrupcin)

3.2 AVR Libc


Los programas compilados con Arduino (salvo en las pla[22]

cas con CorteX M3) se enlazan contra AVR


por
Libc
lo que tienen acceso a algunas de sus funciones.
AVR
Libc es un proyecto de software libre con el objetivo
Interrupciones
de
proporcionar una biblioteca C de alta calidad para
interrupts(), noInterrupts()
utilizarse con el compilador GCC sobre microcontroladores
Comunicacin por puerto serie
Las funciones de Atmel AVR. Se compone de 3 partes:
manejo del puerto serie deben ir precedidas de la
palabra Serial
aunque no necesitan
ninguna
avr-binutils
declaracin en la cabecera del programa. Por esto se
consideran funciones base del lenguaje.[23] Estas son las
avr-gcc
funciones para trans- misin serial:
begin(), available(), read(), ush(), print(), println(),
write()
3.1.5 Manipulacin de puertos

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]

Los registros de puertos permiten la manipulacin a


ms bajo nivel y de forma ms rpida de los
contac- tos de entrada/salida del microcontrolador de
3.2.1 Interrupciones
las pla- cas Arduino.[24] Los contactos elctricos de
las placas Arduino estn repartidos entre los registros
Las seales de interrupcin son las siguientes:
B(0-7), C (analgicos) y D(8-13). Mediante estas
variables ser ob- servado y modicado su estado:
cli(): desactiva las interrupciones globales
DDR[B/C/D]:
Data Direction Register (o
direccin del registro de datos) del puerto B, C
sei(): activa las interrupciones
D. Es una variable de Lectura/Escritura que sirve
para especi- car cuales contactos sern usados
Esto afectar al temporizador y a la comunicacin
como entrada y salida.
serial. La funcin delayMicroseconds() desactiva las
PORT[B/C/D]: Data Register (o registro de interrup- ciones cuando se ejecuta.
datos) del puerto B, C D. Es una variable de
Lectu- ra/Escritura.
PIN[B/C/D]: Input Pins Register (o registro de 3.2.2 Temporizadores
pines de entrada) del puerto B, C D. Variable
La funcin delayMicroseconds() crea el menor retardo
de slo lectura.
posible del lenguaje Arduino que ronda los 2s. Para rePor ejemplo, para especicar los contactos 9 a 13 tardos ms pequeos se debe utilizar la llamada de encomo salidas y el 8 como entrada (puesto que el puerto samblador 'nop' (no operacin). Cada sentencia 'nop' se
D usa los pines de la placa Arduino 8 al 13 digitales) ejecutar en un ciclo de mquina (16 MHz) de
aproxima- damente 62,5ns.
bastara utilizar la siguiente asignacin:
DDRD = B11111110;
Como se ha podido comprobar, el conocimiento del
len- guaje 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 espec- cas de que dispone el lenguaje del
proyecto para manejar los diferentes parmetros. Se
pueden construir aplicacio- nes de cierta complejidad
sin necesidad de muchos con- ceptos previos.

3.2.3 Manipulacin de puertos


La manipulacin de puertos con cdigo AVR es ms
r- pida que utilizar la funcin digitalWrite() de
Arduino.

3.2.4 Establecer Bits en variables


cbi y sbi son mecanismos estndar (AVR) para establecer
o limpiar bits en PORT y otras variables.

3.3 Diferencias con Processing


La sintaxis del lenguaje de programacin Arduino es
una versin simplicada de C/C++ y tiene algunas
diferencias respecto de Processing.[26] [27] Debido a que
Arduino es- t basado en C/C++ mientras que
Processing se basa en Java, existen varias diferencias en
cuanto a la sintaxis de ambos lenguajes y el modo en
que se programa:
3.3.1 Arreglos
3.3.2 Impresin de cadenas

3.4
en

Ejemplo sencillo de programacin


Arduino

El primer paso antes de comprobar que la instalacin es


correcta y empezar a trabajar con Arduino, es usar
ejem- plos prcticos que vienen disponibles con el
dispositivo. Se recomienda abrir el ejemplo led_blink
el cual crea una intermitencia por segundo en un led
conectado en el pin 13.
El cdigo
siguiente:

necesario

es

el

# dene LED_PIN 13 void setup () { // Activado


del contacto 13 para salida digital pinMode
(LED_PIN, OUTPUT); } // Bucle innito void loop ()
{ // Encendido del diodo LED enviando una seal
alta digitalWrite (LED_PIN, HIGH); // Tiempo de
espera de 1 se- gundo (1000 ms) delay (1000); //
Apagado del diodo LED enviando una seal baja.
digitalWrite (LED_PIN, LOW); // Tiempo de espera
de 1 segundo delay (1000); }

Bibliotecas en Arduino

Las bibliotecas estndar que ofrece Arduino son las


siguientes:[28]

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:

Las bibliotecas Matrix y Sprite de Wiring son totalmente


compatibles con Arduino y sirven para manejo de
matri- ces de diodos LED. Tambin se ofrece
informacin sobre

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-

Descargar las versiones ms reciente de Java


Runti- me Enviroment (J2RE) y del IDE Arduino.
Instalar los controladores FTDI USB, con la placa
Arduino conectada.
Ejecutar el IDE Arduino para abrir la interfaz y
con- gurar el puerto USB donde est conectada la
placa.

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

Interfaz del entorno de desarrollo Arduino en el Sistema


Opera- tivo Windows.

Patch Pduino.

Pduino nace de la fusin de los proyectos Pure Data y


Ar- duino. Ambos proyectos de fuente abierta permiten
tra- bajar con interfaz grca. Cargando el rmware de
Pure Data (PD) a la placa Arduino se puede acceder a
ella me- diante el lenguaje de programacin grco.

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.

nibloq es de uso libre y sus fuentes tambin estn


disponi- bles gratuitamente. Una caracterstica
importante, es que puede correr tambin en la
computadora porttil OLPC, mediante el software
Wine.

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

Proyecto de un semforo realizado con Arduino y Physical


Etoys.

Physical Etoys es una extensin libre y gratuita que


per- mite que diversos dispositivos electrnicos
como Lego NXT, las placas Arduino, Sphero, Kinect,
Joystick Wii- mote, 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
eje- cutan en la computadora del usuario y las
rdenes se transmiten inmediatamente a travs del
puerto serie.

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

[9] David Kushner (26 Oct 2011). The Making of Arduino.


Texto publicacin IEEE Spectrum ignorado (ayuda)

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]

ArduinoPhone (en ingls). Consultado el 22 de


diciem- bre de 2013.

[20] Esteban Zamorano (28 de noviembre de 2013).


Construye tu propio celular por USD$200 gracias a
Arduino. Consultado el 22 de diciembre de 2013.
[21] Interfacing with Other Software. http://arduino.cc'' (en
ingls). Consultado el 22 de diciembre de 2013.
[22] Language Reference. http://arduino.cc'' (en ingls).
Consultado el 22 de diciembre de 2013.
[23] Serial. http://www.arduino.cc'' (en ingls). Consultado
el 22 de diciembre de 2013.
[24] Port Registers. http://www.arduino.cc'' (en ingls). Consultado el 22 de diciembre de 2013.
[25] AVR Code. http://www.arduino.cc'' (en ingls). Consultado el 22 de diciembre de 2013.
[26] Arduino/Processing
Language
Comparison.
http://www.arduino.cc'' (en ingls). Consultado el 22
de diciembre de 2013.
[27] Language
Reference(API)/Processing
2+.
http://processing.org/'' (en ingls). Consultado el 22
de diciembre de 2013."
[28] Arduino - Libraries. http://arduino.cc/'' (en ingls).
Consultado el 22 de diciembre de 2013.

Oxer, Jonathan; Blemings, Hugh (28 de diciembre


de 2009). Practical Arduino: Cool Projects for
Open Source Hardware (1 edicin). Apress. p.
500. ISBN
1430224770.
Noble, Joshua (15 de julio de 2009). Programming
Interactivity: A Designers Guide to Processing, Arduino, and openFramework (1 edicin).
O'Reilly Media. p. 768. ISBN 0596154143.
Banzi, Massimo (24 de marzo de 2009). Getting
Started with Arduino (1 edicin). Make Books. p.
128. ISBN 0596155514.

14

Enlaces de externos

Sitio web Proyecto Arduino (en ingls)


Sitio web Proyecto Arduino (en espaol con menos
contenidos)
(blog en ingls)
Arduino Stack Exchange sitio de preguntas y
res- puestas
Comparativa de los distintos modelos disponibles
Algunos proyectos con arduino paso a paso (ejemplos con videotutoriales)
DuinOS: Sistema operativo multitarea para Arduino
desarrollado por RobotGroup

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

Grca de datos de sensores conectados a Arduino,


programado en Gambas

12
LICENSES

15

15 TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND

Text and image sources, contributors, and licenses

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

Archivo:Arduino_windows.JPG Fuente: http://upload.wikimedia.org/wikipedia/commons/7/75/Arduino_windows.JPG Licencia:


GPL
Colaboradores: Screenshot by DanielrocaES Artista original: Arduino developers
Archivo:Blink.jpg Fuente: http://upload.wikimedia.org/wikipedia/commons/e/eb/Blink.jpg Licencia: CC BY-SA 3.0 Colaboradores:
Tra- bajo propio Artista original: Julian dasilva
Archivo:Gambas_arduino_sensores_grfica.png Fuente:
http://upload.wikimedia.org/wikipedia/commons/9/98/Gambas_arduino_
sensores_gr%C3%A1ca.png Licencia: CC BY-SA 3.0 Colaboradores: Trabajo propio Artista original: Jsbsan
Archivo:P1040870.JPG Fuente: http://upload.wikimedia.org/wikipedia/commons/9/96/P1040870.JPG Licencia: GFDL
Colaboradores:
Trabajo propio Artista original: Julian dasilva
Archivo:Pduino.png Fuente: http://upload.wikimedia.org/wikipedia/commons/6/6a/Pduino.png Licencia:
Screens- hot by DanielrocaES Artista original: Arduino developers.

GPL Colaboradores:

Archivo:Semaforo_PE.png Fuente: http://upload.wikimedia.org/wikipedia/commons/5/56/Semaforo_PE.png Licencia: CC BY-SA


3.0
Colaboradores: Trabajo propio Artista original: Sebastiangabrielblanco

15.3 Content license


Creative Commons Attribution-Share Alike 3.0

You might also like