Sie sind auf Seite 1von 18

Arduino

Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un
entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos
multidisciplinares.

El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de


entrada/salida. Los microcontroladores más usados son el Atmega168, Atmega328,
Atmega1280, y Atmega8 por su sencillez y bajo coste que permiten el desarrollo de múltiples
diseños. Por otro lado el software consiste en un entorno de desarrollo que implementa el
lenguaje de programación Processing/Wiring y el cargador de arranque que es ejecutado en la
placa. Se programa en el ordenador para que la placa controle los componentes electrónicos.

Desde octubre de 2012, Arduino se utiliza también con microcontroladoras CortexM3 de ARM de
32 bits,5 que coexistirán con las más limitadas, pero también 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 mayoría 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.

Arduino se puede utilizar para desarrollar objetos interactivos autónomos 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.

Arduino puede tomar información del entorno a través de sus entradas analógicas y digitales,
puede controlar luces, motores y otros actuadores. El microcontrolador en la placa Arduino se
programa mediante el lenguaje de programación 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.

También cuenta con su propio software que se puede descargar de su página oficial que ya
incluye los drivers de todas las tarjetas disponibles lo que hace más fácil la carga de códigos
desde el computador.

El proyecto Arduino recibió una mención honorífica en la categoría de Comunidades Digital en el


Prix Ars Electrónica de 2006.

"Arduino Uno", Tipo: Placa computadora (microcontrolador de placa simple) y Placa Arduino RS232.
Historia:

Arduino se inició en el año 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 dólares estadounidenses, lo que se consideraba demasiado costoso para ellos.
Por aquella época, uno de los fundadores de Arduino, Massimo Banzi, daba clases en Ivrea.

El nombre del proyecto viene del nombre del Bar di Re Arduino (Bar del Rey Arduino) donde
Massimo Banzi pasaba algunas horas. En su creación, contribuyó el estudiante colombiano
Hernando Barragán, quien desarrolló la tarjeta electrónica Wiring, el lenguaje de programación y
la plataforma de desarrollo. Una vez concluida dicha plataforma, los investigadores trabajaron
para hacerlo más ligero, más económico y disponible para la comunidad de código abierto
(hardware y código abierto). El instituto finalmente cerró sus puertas, así que los investigadores,
entre ellos el español David Cuartielles, promovieron la idea. Banzi afirmaría años más tarde,
que el proyecto nunca surgió como una idea de negocio, sino como una necesidad de subsistir
ante el inminente cierre del Instituto de diseño Interactivo IVREA. Es decir, que al crear un
producto de hardware abierto, éste no podría ser embargado.

Posteriormente, Google colaboró en el desarrollo del Kit Android ADK (Accesory Development
Kit), una placa Arduino capaz de comunicarse directamente con teléfonos móviles inteligentes
bajo el sistema operativo Android para que el teléfono controle luces, motores y sensores
conectados de Arduino.

Para la producción en serie de la primera versión se tomó en cuenta que el coste no fuera mayor
de 30 euros, que fuera ensamblado en una placa de color azul, debía ser Plug and Play y que
trabajara con todas las plataformas informáticas tales como MacOSX, Windows y GNU/Linux.
Las primeras 300 unidades se las dieron a los alumnos del Instituto IVREA, con el fin de que las
probaran y empezaran a diseñar sus primeros prototipos.

En el año 2005, se incorporó al equipo el profesor Tom Igoe, que había trabajado en computación
física, después de que se enterara del mismo a través 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 más pesadas.

Productos:

Los modelos en venta de Arduino se categorizan en 4 diferentes productos: placas, escudos, kits
y accesorios.

Placas: Escudos (Shields):

Arduino Uno Arduino GSM Shield


Arduino Leonardo Arduino Ethernet Shield
Arduino Due Arduino WiFi Shield
Arduino Yún Arduino Wireless SD Shield
Arduino Tre (En Desarrollo) Arduino USB Host Shield
Arduino Zero (En venta en la tienda de EEUU) Arduino Motor Shield
Arduino Micro Arduino Wireless Proto Shi
Arduino Esplora eld
Arduino Mega ADK Arduino Proto Shield
Arduino Ethernet Kits:
Arduino Mega 2560
Arduino Robot The Arduino Starter Kit
Arduino Mini Arduino Materia 101
Arduino Nano
LilyPad Arduino Simple
LilyPad Arduino SimpleSnap Accesorios:
LilyPad Arduino
LilyPad Arduino USB TFT LCD Screen
Arduino Pro Mini USB/Serial Light Adapter
Arduino Fio Arduino ISP
Arduino Pro Mini USB/Serial Adapter

Aplicaciones:

La plataforma Arduino ha sido usada como base en diversas aplicaciones electrónicas:

 Xoscillo: Osciloscopio de código abierto.


 Equipo científico para investigaciones.
 Arduinome: Un dispositivo controlador MIDI.
 OBDuino: un económetro que usa una interfaz de diagnóstico a bordo que se halla en los
automóviles modernos.
 Humane Reader: dispositivo electrónico de bajo coste con salida de señal de TV que
puede manejar una biblioteca de 5000 títulos en una tarjeta microSD.
 The Humane PC: equipo que usa un módulo Arduino para emular un computador
personal, con un monitor de televisión y un teclado para computadora.
 Ardupilot: software y hardware de aeronaves no tripuladas.
 ArduinoPhone: un teléfono móvil construido sobre un módulo Arduino.
 Impresoras 3D.

Esquema de conexiones:

Entradas y salidas:

Poniendo de ejemplo al módulo 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 máximo 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 comunicación USB. Diecimila también tiene 6 entradas analógicas que proporcionan una
resolución de 10 bits. Por defecto, aceptan de 0 hasta 5 voltios, aunque es posible cambiar el
nivel más alto, utilizando el contacto Aref y algún código de bajo nivel.

Especificaciones:

Las especificaciones de los distintos modelos de placas Arduino se resumen en la siguiente tabla:

Frecue Entrad Interfaz


Volt Volt Digi Mem
Microcontro ncia as PW UA Cargado de
Modelo aje aje tal oria
lador de Analóg M RT r Programa
de del I/O Flash
Reloj icas ción
entr siste
ada ma

Arduino AT91SAM3 5- 512K Nativa


3,3V 84MHz 54* 12 12 4 Due
Due X8E 12V b USB

Arduino ATmega32 7- Leonard Nativa


5V 16MHz 20* 12 7 1 32Kb
Leonardo U4 12V o USB

USB via
Arduino 7- Optiboo
ATmega328 5V 16MHz 14 6 6 1 32Kb ATMega1
Uno - R3 12V t
6U2

7- Optiboo USB
RedBoard ATmega328 5V 16MHz 14 6 6 1 32Kb
15V t via FTDI

Arduino
USB via
Uno SMD 7- Optiboo
ATmega328 5V 16MHz 14 6 6 1 32Kb ATMega8
(descontin 12V t
U2
uado)

Arduino
USB via
Uno 7- Optiboo
ATmega328 5V 16MHz 14 6 6 1 32Kb ATMega8
(descontin 12V t
U2
uado)

Arduino
Duemilano
7- Atmega USB via
ve ATmega328 5V 16MHz 14 6 6 1 32Kb
12V BOOT FTDI
(descontin
uado)

Arduino
Bluetooth 1,2- Atmega Serial Blue
ATmega328 5V 16MHz 14 6 6 1 32Kb
(descontin 5,5V BOOT tooth
uado)

Arduino Cabecera
3,35 Atmega
Pro ATmega328 3,3V 8MHz 14 6 6 1 32Kb compatibl
-12V BOOT
3.3V/8MHz e con FTDI
Arduino Cabecera
5- Atmega
Pro ATmega328 5V 16MHz 14 6 6 1 32Kb compatibl
12V BOOT
5V/16MHz e con FTDI

Ethernet
Cabecera
Pro 7- Atmega
ATmega328 5V 16MHz 14 6 6 1 32Kb compatibl
(descontin 12V BOOT
e con FTDI
uado)

Arduino USB via


ATmega256 7- 256K STK500v
Mega 2560 5V 16MHz 54 16 14 4 ATMega1
0 12V b 2
R3 6U2

Arduino
USB via
Mega 2560 ATmega256 7- 256K STK500v
5V 16MHz 54 16 14 4 ATMega8
(descontin 0 12V b 2
U2
uado)

Arduino
Mega ATmega128 7- 128K STK500v USB via
5V 16MHz 54 16 14 4
(descontin 0 12V b 2 FTDI
uado)

Cabecera
Mega Pro ATmega256 3,3- 256K STK500v
3,3V 8MHz 54 16 14 4 compatibl
3.3V 0 12V b 2
e con FTDI

Cabecera
Mega Pro ATmega256 5- 256K STK500v
5V 16MHz 54 16 14 4 compatibl
5V 0 12V b 2
e con FTDI

Arduino
Mini 04 Atmega Cabecera
ATmega328 7-9V 5V 16MHz 14 6 8 1 32Kb
(descontin BOOT Serial
uado)

Arduino Atmega Cabecera


ATmega328 7-9V 5V 16MHz 14 6 8 1 32Kb
Mini 05 BOOT Serial
Arduino Cabecera
3,35- Atmega
Pro Mini ATmega328 3,3V 8MHz 14 6 6 1 32Kb compatibl
12V BOOT
3.3V/8MHz e con FTDI

Arduino Cabecera
5- Atmega
Pro Mini ATmega328 5V 16MHz 14 6 6 1 32Kb compatibl
12V BOOT
5V/16MHz e con FTDI

Cabecera
compatibl
e con FTDI
Arduino ATmega328 3,35- Atmega
3,3V 8MHz 14 8 6 1 32Kb o
Fio P 12V BOOT
Inalámbric
a via
XBee1

Cabecera
Mega Pro ATmega256 3,3- 256K STK500v
3,3V 8MHz 54 16 14 4 compatibl
Mini 3.3V 0 12V b 2
e con FTDI

Pro Micro ATmega32 5- DiskLoad Nativa


5V 16MHz 12 4 5 1 32Kb
5V/16MHz U4 12V er USB

Pro Micro ATmega32 3,35- DiskLoad Nativa


3,3V 8MHz 12 4 5 1 32Kb
3.3V/8MHz U4 12V er USB

LilyPad
Cabecera
Arduino 2,7- Atmega
ATmega328 3,3V 8MHz 14 6 6 1 32Kb compatibl
328 Main 5,5V BOOT
e con FTDI
Board

LilyPad
Cabecera
Arduino 2,7- 2
Atmega
ATmega328 3,3V 8MHz 9 4 5 0 32Kb compatibl
Simple 5,5V BOOT
e con FTDI
Board

Los modelos Arduino Diecimila, Arduino Duemilanove y Arduino Mega están basados en los
microcontroladores ATmega168, ATmega328 y ATmega1280.
ATmega168 ATmega328 ATmega1280

Voltaje operativo 5V 5V 5V

Voltaje de entrada
7-12 V 7-12 V 7-12 V
recomendado

Voltaje de entrada
6-20 V 6-20 V 6-20 V
límite

Contactos de entrada
14 (6 proporcionan PWM) 14 (6 proporcionan PWM) 54 (14 proporcionan PWM)
y salida digital

Contactos de entrada
6 6 16
analógica

Intensidad de
40 mA 40 mA 40 mA
corriente

16KB (2KB reservados para 32KB (2KB reservados para 128KB (4KB reservados para
Memoria Flash
el bootloader) el bootloader) el bootloader)

SRAM 1 KB 2 KB 8 KB

EEPROM 512 bytes 1 KB 4 KB

Frecuencia de reloj 16 MHz 16 MHz 16 MHz

Lenguaje de programación Arduino:

La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el lenguaje


de programación de alto nivel Processing que es similar a C++.
Interfaz con otro software:

Es posible comunicar una aplicación que corra sobre Arduino con otros dispositvos que corran
otros lenguajes de programación y aplicaciones populares,21 debido a que Arduino usa la
transmisión serial de datos, la cuál es soportada por la mayoría de los lenguajes que se
mencionan acontinuación. 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 comunicación fluida. Algunos ejemplos de lenguajes son:

 3DVIA Virtools: aplicaciones interactivas y de tiempo real.


 Adobe Director
 BlitzMax (con acceso restringido)
 C
 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 medición y experimentación)
 Mathematica
 Matlab
 MaxMSP: Entorno gráfico de programación para aplicaciones musicales, de audio y
multimedia
 Minibloq: Entorno gráfico de programación, corre también en las computadoras OLPC
 Perl
 Php
 Physical Etoys: Entorno gráfico de programación usado para proyectos de robótica
educativa
 Processing
 Pure Data
 Python
 Ruby
 Scratch for Arduino (S4A): Entorno gráfico de programación, modificación del entorno
para niños Scratch, del MIT
 Squeak: Implementación libre de Smalltalk
 SuperCollider: Síntesis de audio en tiempo real
 VBScript
 Visual Basic .NET
 VVVV: Síntesis de vídeo en tiempo real

Funciones básicas y operadores:

Arduino está basado en C y soporta todas las funciones del estándar C y algunas de C++.22 A
continuación se muestra un resumen con la estructura y sintaxis del lenguaje Arduino:

Sintaxis básica:
 Delimitadores:;, {}
 Comentarios: //, /* */
 Cabeceras: #define, #include
 Operadores aritméticos: +, -, *, /, %
 Asignación: =
 Operadores de comparación: ==, !=, <, >, <=, >=
 Operadores Booleanos: &&, ||, !
 Operadores de acceso a punteros: *, &
 Operadores de bits: &, |, ^, ~, <<, >>
 Operadores compuestos:
 Incremento y decremento de variables: ++, --
 Asignación y operación: +=, -=, *=, /=, &=, |=

Estructuras de control:

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


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

Variables:

En cuanto al tratamiento de las variables también comparte un gran parecido con el lenguaje C.

Constantes:

 HIGH/LOW: representan los niveles alto y bajo de las señales de entrada y salida. Los
niveles altos son aquellos de 3 voltios o más.
 INPUT/OUTPUT: entrada o salida.
 false (falso): Señal que representa al cero lógico. A diferencia de las señales HIGH/LOW,
su nombre se escribe en letra minúscula.
 true (verdadero): Señal cuya definición es más amplia que la de false. Cualquier número
entero diferente de cero es "verdadero", según el álgebra de Boole, como en el caso de -
200, -1 o 1. Si es cero, es "falso".

Tipos de datos:

void, boolean, char, unsigned char, byte, int, unsigned int, word, long, unsigned long, float,
double, string, array.

Conversión 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(), float()

Cualificadores y ámbito de las variables:

static, volatile, const

Utilidades:
sizeof()

Funciones básicas:

 E/S digital:
pinMode(pin, modo)
digitalWrite(pin, valor)
int digitalRead(pin)

 E/S analógica:

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)

 Matemáticas:

min(x, y), max(x, y), abs(x), constrain(x, a, b), map(valor, fromLow, fromHigh, toLow, toHigh),
pow(base, exponente), sqrt(x)

 Trigonometría:

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

Números aleatorios:

randomSeed(semilla), long random(máx), long random(mín, máx)

 Bits y Bytes:

lowByte(), highByte(), bitRead(), bitWrite(), bitSet(), bitClear(), bit()

 Interrupciones externas:

attachInterrupt(interrupción, función, modo)


detachInterrupt(interrupción)

 Interrupciones:

interrupts(), noInterrupts()
 Comunicación por puerto serie:

Las funciones de manejo del puerto serie deben ir precedidas de la palabra "Serial" aunque no
necesitan ninguna declaración en la cabecera del programa. Por esto se consideran funciones
base del lenguaje. Estas son las funciones para transmisión serial:

begin(), available(), read(), flush(), print(), println(), write()

 Manipulación de puertos:

Los registros de puertos permiten la manipulación a más bajo nivel y de forma más rápida de los
contactos de entrada/salida del microcontrolador de las placas Arduino.24 Los contactos
eléctricos de las placas Arduino están repartidos entre los registros B(0-7), C (analógicos) y D(8-
13). Mediante estas variables ser observado y modificado su estado:

 DDR[B/C/D]: Data Direction Register (o dirección del registro de datos) del puerto B, C ó
D. Es una variable de Lectura/Escritura que sirve para especificar cuales contactos serán
usados como entrada y salida.
 PORT[B/C/D]: Data Register (o registro de datos) del puerto B, C ó D. Es una variable de
Lectura/Escritura.
 PIN[B/C/D]: Input Pins Register (o registro de pines de entrada) del puerto B, C ó D.
Variable de sólo lectura.

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) bastaría utilizar la siguiente
asignación:

DDRD = B11111110;

Como se ha podido comprobar, el conocimiento del lenguaje C, permite la programación en


Arduino debido a la similitud entre éste y el lenguaje nativo del proyecto, lo que implica el
aprendizaje de algunas funciones específicas de que dispone el lenguaje del proyecto para
manejar los diferentes parámetros. Se pueden construir aplicaciones de cierta complejidad sin
necesidad de muchos conceptos previos.

AVR Libc:

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 mayoría del lenguaje de programación Arduino está escrita con constantes y funciones de
AVR y ciertas funcionalidades sólo se pueden obtener haciendo uso de AVR.25

Interrupciones:

Las señales de interrupción son las siguientes:

cli(): desactiva las interrupciones globales


sei(): activa las interrupciones
Esto afectará al temporizador y a la comunicación serial. La función delayMicroseconds()
desactiva las interrupciones cuando se ejecuta.

Temporizadores:

La función delayMicroseconds() crea el menor retardo posible del lenguaje Arduino que ronda
los 2μs. Para retardos más pequeños se debe utilizar la llamada de ensamblador 'nop' (no
operación). Cada sentencia 'nop' se ejecutará en un ciclo de máquina (16 MHz) de
aproximadamente 62,5ns.

Manipulación de puertos:

La manipulación de puertos con código AVR es más rápida que utilizar la función digitalWrite()
de Arduino.

Establecer Bits en variables:

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

Diferencias con Processing:

La sintaxis del lenguaje de programación Arduino es una versión simplificada de C/C++ y tiene
algunas diferencias respecto de Processing. 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:

Arreglos:

Arduino Processing

int bar[8]; int[] bar = new int[8];


bar[0] = 1; bar[0] = 1;

int foo[] = { 0, 1, 2 };

int foo[] = { 0, 1, 2 };
o bien

int[] foo = { 0, 1, 2 };

Impresión de cadenas:
Arduino Processing

Serial.println("hello world"); println("hello world");

int i = 5; int i = 5;
Serial.println(i); println(i);

int i = 5;
Serial.print("i = ");
int i="5;"
Serial.print(i);
println("i =" + i);
Serial.println();

Ejemplo sencillo de programación en Arduino:

El primer paso antes de comprobar que la instalación es correcta y empezar a trabajar con
Arduino, es usar ejemplos prácticos 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 código necesario es el siguiente:

# define LED_PIN 13
void setup () {
// Activado del contacto 13 para salida digital
pinMode (LED_PIN, OUTPUT);
}
// Bucle infinito
void loop () {
// Encendido del diodo LED enviando una señal alta
digitalWrite (LED_PIN, HIGH);
// Tiempo de espera de 1 segundo (1000 ms)
delay (1000);
// Apagado del diodo LED enviando una señal baja.
digitalWrite (LED_PIN, LOW);
// Tiempo de espera de 1 segundo
delay (1000);
}
Bibliotecas en Arduino:

Las bibliotecas estándar que ofrece Arduino son las siguientes:

Serial:

Lectura y escritura por el puerto serie.

EEPROM:

Lectura y escritura en el almacenamiento permanente.

read(), write()

Ethernet:

Conexión a Internet mediante “Arduino Ethernet Shield“. Puede funcionar como servidor que
acepta peticiones remotas o como cliente. Se permiten hasta cuatro conexiones simultáneas.30
Los comandos usados son los siguientes:

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


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

Firmata:

Es una biblioteca de comunicación con aplicaciones informáticas utilizando el protocolo estándar


del puerto serie.

LiquidCrystal:

Control de LCDs con chipset Hitachi HD44780 o compatibles. La biblioteca soporta los modos
de 4 y 8 bits.

Servo:

Biblioteca para el control de servo motores. A partir de la versión 0017 de Arduino la biblioteca
soporta hasta 12 motores en la mayoría de las placas Arduino y 48 en la Arduino Mega. Estos
son los comandos usados:

attach(), write(), writeMicroseconds(), read(), attached(), detach()

SoftwareSerial:

Comunicación serie en contactos digitales. Por defecto Arduino incluye comunicación sólo en los
contactos 0 y 1 pero gracias a esta biblioteca puede realizarse esta comunicación con los
restantes.

Stepper:

Control de motores paso a paso unipolares o bipolares.

Stepper(steps, pin1, pin2), Stepper(steps, pin1, pin2, pin3, pin4), setSpeed(rpm), step(steps)
Wire:

Envío y recepción de datos sobre una red de dispositivos o sensores mediante Two Wire
Interface (TWI/I2C).

Las bibliotecas Matrix y Sprite de Wiring son totalmente compatibles con Arduino y sirven para
manejo de matrices de diodos LED. También se ofrece información sobre diversas bibliotecas
desarrolladas por diversos colaboradores que permiten realizar muchas tareas.

Creación de bibliotecas:

Los usuarios de Arduino tienen la posibilidad de escribir sus propias bibliotecas. Ello permite
disponer de código que puede reutilizarse en otros proyectos, mantener el código fuente principal
separado de las bibliotecas y la organización de los programas construidos es más clara.

Instalación en diferentes entornos:

 Windows:

Los pasos a seguir son los siguientes:

 Descargar las versiones más 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 configurar el puerto USB donde está
conectada la placa.

Interfaz del entorno de desarrollo Arduino en el Sistema Operativo Windows

GNU/Linux:

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


Para instalar Arduino en un sistema GNU/Linux necesitamos los siguientes programas para
resolver las dependencias:

 Sun java runtime, jre.


 avr-gcc, compilador para la familia de microcontroladores avr de atmel.
 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.

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

Equipo de desarrollo:

El núcleo 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.
Pduino nace de la fusión de los proyectos Pure Data y Arduino. Ambos proyectos de fuente
abierta permiten trabajar con interfaz gráfica. Cargando el firmware de Pure Data (PD) a la placa
Arduino se puede acceder a ella mediante el lenguaje de programación gráfico.
Patch Pduino

Minibloq:

Pantalla de Minibloq.

Combinación de una computadora de bajo costo OLPC, el software Minibloq y una placa Arduino.
Minibloq es un entorno gráfico de programación que puede generar código nativo de Arduino y
escribirlo directamente en la memoria flash de la placa. Tiene un modo que permite visualizar el
código generado, el cual también puede ser copiado y pegado en el Arduino-IDE, para los
usuarios que intentan hacer el pasaje de una herramienta gráfica a la programación en sintaxis
C/C++. Minibloq es de uso libre y sus fuentes también están disponibles gratuitamente. Una
característica importante, es que puede correr también en la computadora portátil OLPC,
mediante el software Wine.

Pantalla de Minibloq
Physical Etoys:

Proyecto de un semáforo realizado con Arduino y Physical Etoys.


Physical Etoys es una extensión libre y gratuita que permite que diversos dispositivos
electrónicos como Lego NXT, las placas Arduino, Sphero, Kinect, Joystick Wiimote, entre otros,
puedan ser programados fácilmente y que interactúen entre sí gracias a su sistema de bloques.

En el caso de Arduino, Physical Etoys ofrece dos modos de programación:


El modo "directo", en el cual los programas se ejecutan en la computadora del usuario y las
órdenes se transmiten inmediatamente a través del puerto serie.
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.
El modo "directo" permite modificar los programas y ver los cambios producidos de manera
inmediata en el comportamiento del robot, lo cual facilita la programación, 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 comunicación con la
computadora, lo cual lo hace preferible para el desarrollo de tareas autónomas, en las cuales la
velocidad de respuesta del robot debe ser óptima.

Combinación de una computadora de bajo costo OLPC, el software Minibloq y una placa Arduino.

Proyecto de un semáforo realizado con Arduino y Physical Etoys

Bibliografía:

 Oxer, Jonathan; Blemings, Hugh (28 de diciembre de 2009). Practical Arduino: Cool
Projects for Open Source Hardware (1ª edición). Apress. p. 500. ISBN 1430224770.
 Noble, Joshua (15 de julio de 2009). Programming Interactivity: A Designer's Guide to
Processing, Arduino, and openFramework (1ª edición). O'Reilly Media. p. 768. ISBN
0596154143.
 Banzi, Massimo (24 de marzo de 2009). Getting Started with Arduino (1ª edición). Make
Books. p. 128. ISBN 0596155514.

Das könnte Ihnen auch gefallen