You are on page 1of 12

Arduino

Arduino puede tomar informacin del entorno a travs


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 ordenador.
Tambin cuenta con su propio software que se puede descargar de su pgina ocial que ya incluye los drivers de
todas las tarjetas disponibles lo que hace ms fcil la carga de cdigos desde el computador.
El proyecto Arduino recibi una mencin honorca en
la categora de Comunidades Digital en el Prix Ars Electrnica de 2006 [6][7][8] .

Placa Arduino RS232[1]

Arduino es una plataforma de hardware libre, basada en


una placa con un microcontrolador y un entorno de desa0.1 Historia
rrollo, diseada para facilitar el uso de la electrnica en
proyectos multidisciplinares.[2][3]
Arduino se inici en el ao 2005 como un proyecto para
El hardware consiste en una placa con un microcon- estudiantes en el Instituto IVREA, en Ivrea (Italia). En
trolador Atmel AVR y puertos de entrada/salida.[4] ese tiempo, los estudiantes usaban el microcontrolador
Los microcontroladores ms usados son el Atmega168, BASIC Stamp, cuyo coste era de 100 dlares estadouAtmega328, Atmega1280, y Atmega8 por su sencillez y nidenses, lo que se consideraba demasiado costoso para
bajo coste que permiten el desarrollo de mltiples dise- ellos. Por aquella poca, uno de los fundadores de Aros. Por otro lado el software consiste en un entorno de duino, Massimo Banzi, daba clases en Ivrea.[9]
desarrollo que implementa el lenguaje de programacin El nombre del proyecto viene del nombre del Bar di Re
Processing/Wiring y el cargador de arranque que es eje- Arduino (Bar del Rey Arduino) donde Massimo Banzi pacutado en la placa.[4] Se programa en el ordenador para
saba algunas horas. En su creacin, contribuy el estuque la placa controle los componentes electrnicos.
diante colombiano Hernando Barragn, quien desarroll
Desde octubre de 2012, Arduino se utiliza tambin con
microcontroladoras CortexM3 de ARM de 32 bits,[5] que
coexistirn con las ms limitadas, pero tambin econmicas 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 existen compatibles de Arduino Nano y Pro como Meduino
en que se puede conmutar el voltaje.

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 nalmente cerr sus puertas, as que los investigadores, entre ellos el espaol David Cuartielles, promovieron 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.

Arduino se puede utilizar para desarrollar objetos interactivos autnomos o puede ser conectado a software tal
como Adobe Flash, Processing, Max/MSP, Pure Data.
Las placas se pueden montar a mano o adquirirse. El
entorno de desarrollo integrado libre se puede descargar
gratuitamente.

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 operativo
Android para que el telfono controle luces, motores y
sensores conectados de Arduino.[11][12]
1

2
Para la produccin en serie de la primera versin se to- Escudos (Shields):
m en cuenta que el coste no fuera mayor de 30 euros,
que fuera ensamblado en una placa de color azul, de Arduino GSM Shield
ba ser Plug and Play y que trabajara con todas las pla Arduino Ethernet Shield
taformas informticas tales como MacOSX, Windows y
GNU/Linux. Las primeras 300 unidades se las dieron a
Arduino WiFi Shield
los alumnos del Instituto IVREA, con el n de que las
Arduino Wireless SD Shield
probaran y empezaran a disear sus primeros prototipos.
Arduino USB Host Shield
En el ao 2005, se incorpor al equipo el profesor Tom
Igoe,[10] que haba trabajado en computacin fsica, des Arduino Motor Shield
pus de que se enterara del mismo a travs de Internet.
Arduino Wireless Proto Shield
l ofreci su apoyo para desarrollar el proyecto a gran
escala y hacer los contactos para distribuir las tarjetas en
Arduino Proto Shield
territorio estadounidense. En la feria Maker Fair de 2011
se present la primera placa Arduino 32 bit para trabajar
Kits:
tareas ms pesadas.[13]
The Arduino Starter Kit

0.2

Productos

Arduino Materia 101

Los modelos en venta de Arduino se categorizan en 4 di- Accesorios:


ferentes productos: placas, escudos, kits y accesorios.
Placas:
Arduino Uno
Arduino Leonardo
Arduino Due
Arduino Yn
Arduino Tre (En Desarrollo)
Arduino Zero (En venta en la tienda de EEUU)

TFT LCD Screen


USB/Serial Light Adapter
Arduino ISP
Mini USB/Serial Adapter

0.3 Aplicaciones
La plataforma Arduino ha sido usado como base en diversas aplicaciones electrnicas:

Arduino Micro

Xoscillo: Osciloscopio de cdigo abierto.[14]

Arduino Esplora

Equipo cientco para investigaciones.[15]

Arduino Mega ADK

Arduinome: Un dispositivo controlador MIDI.[16]

Arduino Ethernet

OBDuino: un econmetro que usa una interfaz de


diagnstico a bordo que se halla en los automviles
modernos.

Arduino Mega 2560


Arduino Robot
Arduino Mini
Arduino Nano
LilyPad Arduino Simple
LilyPad Arduino SimpleSnap
LilyPad Arduino
LilyPad Arduino USB
Arduino Pro Mini

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 tripuladas.

Arduino Fio

ArduinoPhone: un telfono mvil construido sobre


un mdulo Arduino.[19][20]

Arduino Pro

Impresoras 3D.

4.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 proporcionar 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 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.

Especicaciones

Las especicaciones de los distintos modelos de placas


Arduino se resumen en la siguiente tabla:
Los modelos Arduino Diecimila, Arduino Duemilanove
y Arduino Mega estn basados en los microcontroladores
ATmega168, ATmega328 y ATmega1280

3
C++ (mediante libSerial o en Windows)
C#
Cocoa/Objective-C (para Mac OS X)
Flash (mediante ActionScript)
Gambas
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

Lenguaje de programacin Arduino

Physical Etoys: Entorno grco de programacin


usado para proyectos de robtica educativa
Processing

La plataforma Arduino se programa mediante el uso de


un lenguaje propio basado en el lenguaje de programacin
de alto nivel Processing que es similar a C++.

Interfaz con otro software

Es posible comunicar una aplicacin que corra sobre Arduino con otros dispositvos que corran otros lenguajes de
programacin y aplicaciones populares,[21] debido a que
Arduino usa la transmisin serial de datos, la cul es soportada por la mayora de los lenguajes que se mencionan acontinuacin. Y 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 de lenguajes son:

Pure Data
Python
Ruby
Scratch for Arduino (S4A): Entorno grco de programacin, modicacin del entorno para nios
Scratch, del MIT
Squeak: Implementacin libre de Smalltalk
SuperCollider: Sntesis de audio en tiempo real
VBScript
Visual Basic .NET
VVVV: Sntesis de vdeo en tiempo real

3DVIA Virtools: aplicaciones interactivas y de


tiempo real.
4.1
Adobe Director
BlitzMax (con acceso restringido)
C

Funciones bsicas y operadores

Arduino est basado en C y soporta todas las funciones


del estndar C y algunas de C++.[22] A continuacin se
muestra un resumen con la estructura y sintaxis del lenguaje Arduino:

4.1.1

Sintaxis bsica

Delimitadores:;, {}
Comentarios: //, /* */

INTERFAZ CON OTRO SOFTWARE

Conversin entre tipos Estas funciones reciben como


argumento una variable de cualquier tipo y devuelven una
variable convertida en el tipo deseado.
char(), byte(), int(), word(), long(), oat()

Cabeceras: #dene, #include


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

Cualicadores y mbito de las variables


static, volatile, const

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()
4.1.4 Funciones bsicas
E/S digital
pinMode(pin, modo)
digitalWrite(pin, valor)

4.1.2

Estructuras de control

int digitalRead(pin)

Condicionales: if, if...else, switch case


Bucles: for, while, do. while
Bifurcaciones y saltos: break, continue, return, goto

E/S analgica
analogReference(tipo)
int analogRead(pin)

4.1.3

Variables

analogWrite(pin, valor)

En cuanto al tratamiento de las variables tambin comparte un gran parecido con el lenguaje C.
E/S avanzada
Constantes

shiftOut(dataPin, clockPin, bitOrder, valor)

unsigned long pulseIn(pin, valor)


HIGH/LOW: representan los niveles alto y bajo de
las seales de entrada y salida. Los niveles altos son
Tiempo
aquellos de 3 voltios o ms.
INPUT/OUTPUT: entrada o salida.

unsigned long millis()

false (falso): Seal que representa al cero lgico. A


diferencia de las seales HIGH/LOW, su nombre se
escribe en letra minscula.

unsigned long micros()


delay(ms)

delayMicroseconds(microsegundos)
true (verdadero): Seal cuya denicin es ms amplia que la de false. Cualquier nmero entero diferente de cero es verdadero, segn el lgebra de Matemticas
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)
Tipos de datos
void, boolean, char, unsigned char, byte, int, un- Trigonometra
signed int, word, long, unsigned long, oat, double,
sin(rad), cos(rad), tan(rad)
string, array.

4.2

AVR Libc

Nmeros aleatorios
randomSeed(semilla), long random(mx), long random(mn, mx)

5
Por ejemplo, para especicar 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;

Bits y Bytes

Como se ha podido comprobar, el conocimiento del len lowByte(), highByte(), bitRead(), bitWrite(), bit- guaje C, permite la programacin en Arduino debido a la
similitud entre ste y el lenguaje nativo del proyecto, lo
Set(), bitClear(), bit()
que implica el aprendizaje de algunas funciones especcas de que dispone el lenguaje del proyecto para manejar
los diferentes parmetros. Se pueden construir aplicacioInterrupciones externas
nes de cierta complejidad sin necesidad de muchos conceptos previos.
attachInterrupt(interrupcin, funcin, modo)
detachInterrupt(interrupcin)

4.2 AVR Libc

Los programas compilados con Arduino (salvo en las placas con CorteX M3) se enlazan contra AVR Libc[22] por
lo que tienen acceso a algunas de sus funciones. AVR
interrupts(), noInterrupts()
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
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 declaracin en la
avr-binutils
cabecera del programa. Por esto se consideran funciones
[23]
base del lenguaje.
Estas son las funciones para trans avr-gcc
misin serial:
avr-libc
Interrupciones

begin(), available(), read(), ush(), print(), println(),


La mayora del lenguaje de programacin Arduino eswrite()
t escrita con constantes y funciones de AVR y ciertas
funcionalidades slo se pueden obtener haciendo uso de
AVR.[25]
4.1.5 Manipulacin de puertos
Los registros de puertos permiten la manipulacin a
4.2.1 Interrupciones
ms bajo nivel y de forma ms rpida de los contactos de entrada/salida del microcontrolador de las plaLas seales de interrupcin son las siguientes:
cas Arduino.[24] Los contactos elctricos de las placas
Arduino estn repartidos entre los registros B(0-7), C
cli(): desactiva las interrupciones globales
(analgicos) y D(8-13). Mediante estas variables ser observado y modicado su estado:
sei(): activa las interrupciones
DDR[B/C/D]: Data Direction Register (o direccin Esto afectar al temporizador y a la comunicacin serial.
del registro de datos) del puerto B, C D. Es una La funcin delayMicroseconds() desactiva las interrupvariable de Lectura/Escritura que sirve para especi- ciones cuando se ejecuta.
car cuales contactos sern usados como entrada y
salida.
4.2.2 Temporizadores
PORT[B/C/D]: Data Register (o registro de datos)
del puerto B, C D. Es una variable de Lectu- La funcin delayMicroseconds() crea el menor retardo
posible del lenguaje Arduino que ronda los 2s. Para rera/Escritura.
tardos ms pequeos se debe utilizar la llamada de en PIN[B/C/D]: Input Pins Register (o registro de pines samblador 'nop' (no operacin). Cada sentencia 'nop' se
de entrada) del puerto B, C D. Variable de slo ejecutar en un ciclo de mquina (16 MHz) de aproximalectura.
damente 62,5ns.

6
4.2.3

5
Manipulacin de puertos

BIBLIOTECAS EN ARDUINO

5.2 EEPROM

La manipulacin de puertos con cdigo AVR es ms r- Lectura y escritura en el almacenamiento permanente.[29]


pida que utilizar la funcin digitalWrite() de Arduino.
read(), write()
4.2.4

Establecer Bits en variables

5.3 Ethernet

cbi y sbi son mecanismos estndar (AVR) para establecer


Conexin a Internet mediante Arduino Ethernet Shield.
o limpiar bits en PORT y otras variables.
Puede funcionar como servidor que acepta peticiones remotas o como cliente. Se permiten hasta cuatro conexiones simultneas.[30] Los comandos usados son los siguien4.3 Diferencias con Processing
tes:
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 est 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:

Servidor: Server(), begin(), available(), write(),


print(), println()
Cliente: Client(), connected(), connect(), write(),
print(), println(), available(), read(), ush(), stop()

5.4 Firmata
4.3.1

Arreglos

4.3.2

Impresin de cadenas

4.4

Es una biblioteca de comunicacin con aplicaciones informticas utilizando el protocolo estndar del puerto
serie.[31]

Ejemplo sencillo de programacin en


5.5 LiquidCrystal
Arduino

El primer paso antes de comprobar que la instalacin es


correcta y empezar a trabajar con Arduino, es usar ejemplos 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.

Control de LCDs con chipset Hitachi HD44780 o


compatibles.[32] La biblioteca soporta los modos de 4 y
8 bits.

5.6 Servo

El cdigo necesario es el siguiente:

Biblioteca para el control de servo motores.[33] A partir


# dene LED_PIN 13 void setup () { // Activado del de la versin 0017 de Arduino la biblioteca soporta hasta
contacto 13 para salida digital pinMode (LED_PIN, 12 motores en la mayora de las placas Arduino y 48 en
OUTPUT); } // Bucle innito void loop () { // Encendido la Arduino Mega. Estos son los comandos usados:
del diodo LED enviando una seal alta digitalWrite
attach(), write(), writeMicroseconds(), read(), atta(LED_PIN, HIGH); // Tiempo de espera de 1 seched(), detach()
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); }

5.7 SoftwareSerial

Bibliotecas en Arduino

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.

Las bibliotecas estndar que ofrece Arduino son las


siguientes:[28]
5.8

5.1

Serial

Lectura y escritura por el puerto serie.

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)

5.9

Wire

6 Ejemplos de Cdigo

Envo y recepcin de datos sobre una red de dispositivos La pgina de Arduino cuenta con una serie de ejemplos
o sensores mediante Two Wire Interface (TWI/I2C).[36] para comenzar a entender su funcionamiento, con comLas bibliotecas Matrix y Sprite de Wiring son totalmente ponentes base tales como Pantallas, LEDs, Potenciomecompatibles con Arduino y sirven para manejo de matri- tros, etc.
ces de diodos LED. Tambin se ofrece informacin sobre Ejemplo de parpadeo de LED
diversas bibliotecas desarrolladas por diversos colabora/* Blink Turns on an LED on for one second, then o
dores que permiten realizar muchas tareas.
for one second, repeatedly. This example code is in the
public domain. */ // Pin 13 has an LED connected on
most Arduino boards. // give it a name: int led = 13;
5.10 Creacin de bibliotecas
// the setup routine runs once when you press reset:
void setup() { // initialize the digital pin as an output.
Los usuarios de Arduino tienen la posibilidad de escribir
pinMode(led, OUTPUT); } // the loop routine runs over
[37]
sus propias bibliotecas.
Ello permite disponer de cand over again forever: void loop() { digitalWrite(led,
digo que puede reutilizarse en otros proyectos, mantener
HIGH); // turn the LED on (HIGH is the voltage level)
el cdigo fuente principal separado de las bibliotecas y la
delay(1000); // wait for a second digitalWrite(led,
organizacin de los programas construidos es ms clara.
LOW); // turn the LED o by making the voltage LOW
delay(1000); // wait for a second }
5.10.1

Ejemplo de biblioteca

Ejemplo de lectura de Potenciometro

El siguiente ejemplo permite el envo de caracteres me- /* ReadAnalogVoltage Reads an analog input on pin 0,
diante el cdigo Morse:
converts it to voltage, and prints the result to the serial
Se crea el archivo Morse.h que incluye la denicin de la monitor. Attach the center pin of a potentiometer to
clase Morse que tiene 3 funciones: un constructor (Mor- pin A0, and the outside pins to +5V and ground. This
se()), una funcin para enviar 1 punto (dot()) y una fun- example code is in the public domain. */ // the setup
cin para enviar una raya (dash()). La variable _pin per- routine runs once when you press reset: void setup() { //
initialize serial communication at 9600 bits per second:
mite indicar el contacto a usar.
Serial.begin(9600); } // the loop routine runs over and
/* Morse.h - Biblioteca para el envo de Cdigo Morse. over again forever: void loop() { // read the input on
Creado por David A. Mellis, el 2 de noviembre de 2007. analog pin 0: int sensorValue = analogRead(A0); //
Liberado al dominio pblico. */ # ifndef Morse_h # Convert the analog reading (which goes from 0 - 1023)
dene Morse_h # include WProgram.h class Morse { to a voltage (0 - 5V): oat voltage = sensorValue *
public: Morse(int pin); void dot(); void dash(); private: (5.0 / 1023.0); // print out the value you read: Seint _pin; }; # endif
rial.println(voltage); }
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 7 Instalacin en diferentes
Morse. Creado por David A. Mellis, el 2 de noviembre
nos
de 2007. Liberado al dominio pblico. */ # include
WProgram.h # include Morse.h Morse::Morse(int
pin) { pinMode(pin, OUTPUT); _pin = pin; } void 7.1 Windows
Morse::dot() { digitalWrite(_pin, HIGH); delay(250);
digitalWrite(_pin, LOW); delay(250); } void MorLos pasos a seguir son los siguientes:
se::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();

entor-

Descargar las versiones ms reciente de Java Runtime 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 congurar el puerto USB donde est conectada la placa.

10

MINIBLOQ

avr-libc, libc del compilador avr-gcc.


En algunas distribuciones conviene desinstalar, si no es
necesario, el programa brltty que permite el acceso al
terminal a personas invidentes. Para concluir, se descarga
el framework de Arduino, se descomprime y ejecuta.

8 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.

9 Pduino

Interfaz del entorno de desarrollo Arduino en el Sistema Operativo Windows.

Patch Pduino.

Pduino nace de la fusin de los proyectos Pure Data y Arduino. Ambos proyectos de fuente abierta permiten trabajar con interfaz grca. Cargando el rmware de Pure
Data (PD) a la placa Arduino se puede acceder a ella mediante el lenguaje de programacin grco.

10 Minibloq
Interfaz del entorno de desarrollo Arduino S.O. GNU/Linux.

Minibloq es un entorno grco de programacin que puede generar cdigo nativo de Arduino y escribirlo direc7.2 GNU/Linux
tamente en la memoria ash de la placa. Tiene un modo
Para instalar Arduino en un sistema GNU/Linux necesi- que permite visualizar el cdigo generado, el cual tamtamos los siguientes programas para resolver las depen- bin puede ser copiado y pegado en el Arduino-IDE, para los usuarios que intentan hacer el pasaje de una herradencias:
mienta grca a la programacin en sintaxis C/C++. Minibloq es de uso libre y sus fuentes tambin estn disponi Sun java runtime, jre.
bles gratuitamente. Una caracterstica importante, es que
avr-gcc, compilador para la familia de microcontro- puede correr tambin en la computadora porttil OLPC,
ladores avr de atmel.
mediante el software Wine.

9
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.
2. El modo compilado, en el cual los programas se
traducen a C++ y se bajan a la placa, para luego ejecutarse de manera independiente de la computadora.

Pantalla de Minibloq.

El modo directo permite modicar los programas y ver


los cambios producidos de manera inmediata en el comportamiento 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 robot debe ser
ptima.

12 Vase tambin
BASIC Stamp
Impresin 3D
Combinacin de una computadora de bajo costo OLPC, el software Minibloq y una placa Arduino.

Gumstix
Minibloq

11

Physical Etoys

MiniPC
OOPIC
PICAXE
Raspberry Pi
Physical Etoys
Robot
X10

13 Referencias
[1] Placa Arduino Serial
Proyecto de un semforo realizado con Arduino y Physical Etoys.

[2] Interview with Casey Reas and Ben Fry.


[3]

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:

[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.

10

[8] Ars Electronica Archiv / ANERKENNUNG (en alemn). Consultado el 18 de febrero de 2009.
[9] David Kushner (26 Oct 2011). The Making of Arduino.
IEEE Spectrum.
[10] Algo de Historia para comenzar. Consultado el 22 de
diciembre de 2013.
[11] Google presenta ADK, interfaz basada en Arduino para
Android. BricoGeek.com. 12 de mayo de 2011. Consultado el 22 de diciembre de 2013.

15 ENLACES DE EXTERNOS

[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.
[29] EEPROM Library. http://www.arduino.cc'' (en ingls).
Consultado el 22 de diciembre de 2013.
[30] Ethernet Library. http://www.arduino.cc'' (en ingls).
Consultado el 22 de diciembre de 2013.

[12] Accessory Development Kit 2012 Guide (en ingls).


Consultado el 22 de diciembre de 2013.

[31] Firmata Library. http://www.arduino.cc'' (en ingls).


Consultado el 22 de diciembre de 2013.

[13] Terrence O'Brien (19 de septiembre de 2011). Arduino


brings the (new) goods to Maker Faire New York, welcomes ARM into the fold (en ingls). Consultado el 22 de
diciembre de 2013.

[32] LiquidCrystal Library. http://www.arduino.cc'' (en ingls). Consultado el 22 de diciembre de 2013.

[14] Xoscillo: A software oscilloscope that acquires data


using an Arduino or a parallax. (en ingls). Consultado
el 22 de diciembre de 2013.
[15] Joshua M. Pearce (14 de septiembre de 2012). Building
Research Equipment with Free, Open-Source Hardware (en ingls). Washington, EE.UU.: American
Association for the Advancement of Scienc. p. 3.
doi:10.1126/science.1228183. Consultado el 22 de diciembre de 2013.
[16] 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] 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 diciembre 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.

[33] Servo Library. http://www.arduino.cc'' (en ingls). Consultado el 22 de diciembre de 2013.


[34] SoftwareSerial Library. http://www.arduino.cc'' (en ingls). Consultado el 22 de diciembre de 2013.
[35] Stepper Library. http://www.arduino.cc'' (en ingls).
Consultado el 22 de diciembre de 2013.
[36] Wire Library. http://www.arduino.cc'' (en ingls). Consultado el 22 de diciembre de 2013.
[37] Writing a Library for Arduino. http://www.arduino.cc''
(en ingls). Consultado el 22 de diciembre de 2013.

14 Bibliografa
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.

15 Enlaces de externos
Proyecto Arduino (Sitio ocial de la empresa radicada en Italia)
Proyecto Arduino (Sitio ocial con foros y referencia
de programacin)
Arduino Stack Exchange sitio de preguntas y respuestas
Comparativa de los distintos modelos disponibles

11
Algunos proyectos con arduino paso a paso (ejemplos con videotutoriales)
DuinOS: Sistema operativo multitarea para Arduino
desarrollado por RobotGroup
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

16 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

16
16.1

Origen del texto y las imgenes, colaboradores y licencias


Texto

Arduino Fuente: https://es.wikipedia.org/wiki/Arduino?oldid=85427005 Colaboradores: 4lex, Sabbut, Tony Rotondas, Ramjar, Interloper,
Chobot, BOT-Superzerocool, Museo8bits, GermanX, The Photographer, Jago84, CEM-bot, Chuo, Montgomery, JoaquinFerrero, Ninovolador, JAnDbot, CommonsDelinker, Biasoli, Cinevoro, VolkovBot, Synthebot, Shooke, Shadowxfox, Muro Bot, Nabegando1990, Loveless, Leonaro, Drinibot, 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, Macucal, JaadesA, Botarel, AstaBOTh15, Joebigwheel, Hprmedina, Jcdy, Halfdrag, Kizar, Omerta-ve, Thomas-pluralvonglas,
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,
Invadibot, Turoart, Johnbot, Elvisor, Laure f o, Enrique Pichardo, Angelo9507, Angeldefuego22, Makecat-bot, Jsbsan, Sebastiangabrielblanco, RichoM, Chemaper, Addbot, Arkantos13, Annimo10000, Arkantos1997, Saectar, Lagoset, Hithwen~eswiki, Jernimo lvarez,
Jarould, Mario Zuiga Carrillo, Gonzalo Rodriguez Zabala, Enriqueperiam, Ruso440, RSACM, Kkdvak123 y Annimos: 131

16.2

Imgenes

Archivo:Arduino316.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/6/6c/Arduino316.jpg Licencia: CC BY-SA 3.0 Colaboradores: http://www.arduino.cc/ Artista original: Nicholas Zambetti
Archivo:Arduino_Uno_-_R3.jpg Fuente: https://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: https://upload.wikimedia.org/wikipedia/commons/7/7a/Arduino_dani2.png Licencia: GPL Colaboradores: Screenshot by DanielrocaES Artista original: Arduino developers. Code sample by Hans-Christoph Steiner.
Archivo:Arduino_windows.JPG Fuente: https://upload.wikimedia.org/wikipedia/commons/7/75/Arduino_windows.JPG Licencia: GPL
Colaboradores: Screenshot by DanielrocaES Artista original: Arduino developers
Archivo:Blink.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/e/eb/Blink.jpg Licencia: CC BY-SA 3.0 Colaboradores:
Trabajo propio Artista original: Julian dasilva
Archivo:Gambas_arduino_sensores_grfica.png Fuente: https://upload.wikimedia.org/wikipedia/commons/9/98/Gambas_arduino_
sensores_gr%C3%A1fica.png Licencia: CC BY-SA 3.0 Colaboradores: Trabajo propio Artista original: Jsbsan
Archivo:P1040870.JPG Fuente: https://upload.wikimedia.org/wikipedia/commons/9/96/P1040870.JPG Licencia: GFDL Colaboradores:
Trabajo propio Artista original: Julian dasilva
Archivo:Pduino.png Fuente: https://upload.wikimedia.org/wikipedia/commons/6/6a/Pduino.png Licencia: GPL Colaboradores: Screenshot by DanielrocaES Artista original: Arduino developers.
Archivo:Semaforo_PE.png Fuente: https://upload.wikimedia.org/wikipedia/commons/5/56/Semaforo_PE.png Licencia: CC BY-SA 3.0
Colaboradores: Trabajo propio Artista original: Sebastiangabrielblanco

16.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

You might also like