no dui Ar udesusentradasanalógicasydigitales,puedecontrol ar l crocontroladoren c e s ,motoresyotrosactuadores.Elmi acaAr Ardui no seprograma mame mediante ellen j l apl guaede programa mación Arduino(basadoenWi W iring)yelentorno sprodedesarroll oAr Ardui no(basadoenProcessi ng). Losp yectoshechosconArdui nopuede j n eecutarses esinnecesi . daddeconectarauncomputador o Ardui no reci bió uname menci ón honorífica en Elproyect ec lacategoríadeComu munidadesDigitalen elPri xAr sEl 8] [ 6][ 7][ trónicad ade2006. 0.1 Placa Arduino R S232
Histori toria
[1]
Ardui no seinició en elaño 2005como mo un proyecto par a est A,en Ivrea udiantes en elInstituto IVREA, Ital i a). En esetiemp mpo, losestudiantes usaban el Arduino esunapl ataforma madehardwarel i bre b , asadaen ( t r d B A C Stamp eerade crocon ol a or SI mp, cuyo cost unapl acac aconunm nmicrocontroladory r yunentornodedesa- mi adou-nidenses,l 0 dólares est oque seconsideraba luso de l ael r r ol l o, di s e ña dapa r af a c i l i t a re e c t r óni c a 10 3] [ 2][ la época, uno l os .Poraquel dema masiadocostosoparael enproyect pl disci osmult i i nares. undadoresdeAr -dui delosf no,Massimo Banzi,daba Elhardware consi st e en una placa con un mi crocon[ 9] cl asesenIvrea. trolador At melAVR y puertos de entrada/sal i da. [ 4] crocontroladores más usados son el ElnombredelproyectovienedelnombredelBar di Re Los mi BardelRey Ar Ardui no)donde Ma Massi mo Banzi mega8 por A rduino ( At mega168,Atmega328, Atmega1280, ATme s a b a a l g u n a s h o r a s . s u c r e a c i ó n , c o n t ri buyó el p a E n susencillezy j b baocostequepermiteneldesarrollo de t u-di ante col omb mbiano Hernando Barragán, qui en se-ños.Porotrolado elsof múlti ples di twareconsiste es a llen j j taretael ól e c t r ó ni c a Wi Wi r i ng,e guaede mpl eme menta ellen j enunentorno dedesarrolloquei guae desarroll [10] apl ataforma madedesarrollo. Una lcargadorde programa-ciónyl de programaci ón Pr oc e s s i ng/Wi r i n gye [ 4] da di vez conclui cha pl ataforma ma, los investigadores j arranquequee aplaca. see-cutadoenl j t r a aaron paraha-cer b l o má m á s ligero,máseconómico y no seusa t amb mbién con disponible para la co-munidad de código abierto Desde oct ubre de2012,Ardui mi -crocontroladorasCort t s, exM3 M3 deARM de 32bi ert o) .Eli (hardwa ware y código abi nstituto finalmente [ 5 ] quecoexi a smásl imi tadas,perotamb mbién cerrósuspuert s t i r á nc onl as,asíquelos i nves-tigadores,entreellos econó-mi b bi t s .ARM yAVR no son casAVR de 8 [ 9] elespañolDa pro-movieron l ai dea. D a v i d C u a r t i e l l e s , mpati bles a nivel binario, pero se Banziafirma pl af at ormas comp marí aañosmá mást arde,queelproyectonunca marcon elmismo I Ardui no y surgió como DE de Ar pueden programa mo una idea de negocio, si mo una no como mpi lensi ncamb mbiosenlasdos necesi hacerseprograma masquecomp err e del dad de subsistir ante elinmi minente ci ,l asmi plataforma mas. Esosí crocontroladoras Cort exM3 M3 Insti tutodediseñoInteractivo I VREA. A.Esdeci l r ,quea usan3, 3V,adi am ma ayoríadelasplacascon crearunproductodehardwareabierto,éstenopodría f e r e nc i adel AVR quegeneral menteusan sere b mbargado. mbargoyaanteriorme mentesel anzaronplacasAr 5V.Sinemb odelKi orme mente,Googlecolaboróeneldesarroll t dui no con At AtmelAVR a3, 3V como mo laArdui no Fi o y Posteri t ) ,una pl d ADK ( Ac c es ory Dev el opmentKi aexis-ten comp mpati bles de Ar Ardui no Na Nano yPro como mo Androi caArdui enocapazdecomu municarse directame mentecon t tae. mu utarelv j Me dui noenquesepuedeconm ol vo i j b baoelsi stema ma operat l é f onos mó móvi l e si nt e l i g ent e s Ardui no sepuedeutilizarparadesarroll ar j obet nt er osi Androi d para que elt el éf onoc o nt r o l el uc e s ,mot o r e sy tware sensoresconect activos autónomo mosopuede serconectado asof [ 12] [ 1 1 ] adosdeArdui no. talcomo mo AdobeFl as h,Pr oc es s i ng,Max/MS MSP, Pur e aproducci apri oón enseriedel meraversión set Dat a.Las placas se pueden montar a mano o Paral m ó e n c u e n t a q u e e l 3 0 e c o s t e n o f u e r a m ma a y o r d e u r o s , adquirirse.Elentornodedesarrollointegrado librese quef uer aensamb mblado en una placa de colorazul, e. puededescargargratui tament ay yquet b r j a aaracontodasl de b aserPlugandPl as -í Arduinopuedet oma marinforma maci ón delentorno através pl a- t af orma mas i nf ormá mát i cas t al es como mo Mac OSX, y Wi ndows
1
2 el Ardui noEthernetShi d a FiShi el Ardui noWi d losalumnos delInst VRAE,con elfin de que ituto I l as el d ArduinoWirel essSDShi probaranyempezaranadiseñarsuspri merosprototi pos. el d Ardui noUSBHostShi En elaño 2005,seincorporó alequipo elprofesor [ 1 0 ] Tom Igoe, que habí a t b r j a aado en computación el ArduinoMotorShi d f í s i c a ,des-puésdeques eenteraradelmi smo através reci ósu apoyo para desarroll ar el de Int net.Élof er ArduinoWirelessProtoShi el d os contactos para an escala y hacer l proyecto a gr el d ArduinoProtoShi di stri buirlas j taretasenterritori oestadounidense.Enla esentólapri meraplaca f er i aMakerFai rde2011sepr [13] 2bi j Arduino3 r a aartareasmáspesadas. tparat b Ki t s:
meras300unidadesselasdieron GNU/Li nux.Laspri
•
•
•
•
•
•
•
0.2
Pr oductos
•
TheArduinoStarterKi t
ArduinoMateria101 zan en 4 Losmodel osenventadeArdui no secategori dif erent t s y es product os: tablas, escudos, ki Acc esori os: accesori endoencadauno:Tablas: os ;si •
•
•
•
•
•
•
•
•
•
•
•
ArduinoUno
•
ArduinoLeonardo
•
ArduinoDue
•
ArduinoYún
•
ol l o) ArduinoTre(EnDesarr ol l o) ArduinoZero(EnDesarr cr o ArduinoMi
•
•
•
•
•
•
•
•
•
SP Ardui noI
er Mi niUSB/Ser i alAdapt Aplicaciones
Elmódul oArdui nohasidousadocomobaseendiversas l ectr óni cas: a p l i c a c i o n e se
ArduinoEsplora ArduinoMegaADK ArduinoEthernet
•
ArduinoRobot
•
ni ArduinoMi
•
ArduinoNano mpl e LilyPadArduinoSi
mpleSnap LilyPadArduinoSi dui no LilyPadAr
LilyPadArduinoUSB
[16]
Ardui nome:Undisposi tivocontroladorMI DI . OBDuino:uneconómetro queusaunai nterfaz de abordoques ehall aenlosautomóviles diagnóst i co moder nos.
Humane Reader: dispositivo electrónico de j bao costecon sal idadeseñalde TVquepuedemane j j arunabiblioteca de 5000tí areta tulos en unat [ 17] mi cr oSD. •
o ArduinoFi
el d ArduinoGSM Shi
[ 1 5 ] . nvest i gaci Equipocientí ficoparai ones
•
ni ArduinoProMi
ArduinoPr o
bierto. Xos c i l l o:Os c i l o s c opi odec ódi goa
[14]
ArduinoMega2560
Es cudos : •
USB/Ser i alLi ghtAdapt er
0.3
•
•
TFTLCD Screen
•
•
•
The Humane PC:equipo queusaun módul o Ardui no paraemular un computador personal, con un monitor de tel evisión yun tecl ado para [ 1 8 ] d u t a mp co ora.
Ardupi lot:sof twareyhardwarede aeronaves no t r i -puladas. Ar dui noPhone: un t el éf ono móvi l const r ui do [20] [ 1 9 ] sobreunmódul oArdui no.
Impresoras3D.
3.1
Funciones básicas y operadores
1
s!ue"a de cone#iones
1.1
ntradas y salidas
3 •
•
Isadora(Interactividadaudiovisualentiempo real) X3D) Inst antReal i ty(
J ava
•
Poniendo de eempl j o Diecimila, éste o almódul a de 14 entradas digitales configurabl es como const entradas y/o sal idas que operan a 5 voltios.Cada contact o puedepro-porcionaroreci bi rc omomáxi mo 40mA.Loscontactos 3,5,6,9,10y 11pueden proporci onar una salida PWM (Pul se Width Modulation). Si se conecta oscontactos 0y1,esoi cualquiercosaal nt e r f e r i r á Di e c i mi l a t a mb i é n t i e n e acomuni a US B . 6 conl c i ó n c entradasanalógicasqueproporci onan unaresoluci ón de 1 0i o,acept ect ande0hasta5voltios,aunque b t s .Pordef es posi ble cambiar elnivelmás alto, utilizando el j e aonivel cont act oArefyal gúncódi god b .
•
•
•
•
•
•
s peci$caciones
2
•
•
Lasespeci ficaciones delosdistintosmodelosdeplacas Ardui no se resumen en la si guiente ta l b a: Losmodel l anove osArduinoDiecimila,ArduinoDuemi yArduinoMegaestánbasadosenlosmi roladores crocont ATmega16 8,ATmega32 8yATmega1280
•
•
•
•
%en&ua 'e de pro&ra"aci(n Ar) duino
3
•
Li ber l ab( s of t war edemedi ci ónyexper i ón) mentaci
Mat hemat i ca Mat l ab
ón MaxMSP:Entorno gráfico de programaci caciones musical es, de audio y par a apli a mult medi i
Minibloq:Entornográficodeprogramaci ón,corre tambiénenlascomputadorasOLPC Per l Php oys:Entorno gráfico de programaci Phys i calEt ón usadoparaproyect osderobóticaeducat va i essi Pr oc ng
PureDat a Python Ruby
no( Scratchf orArdui S4A) :Entornográficodepro-
gramaci ón,modificación delentorno paraniños T S c r a t c h,delMI
l t al k Squeak:Implementaci ónlibredeSmal Lapl ataformaArduino seprogramamediante elusode un l en j en j guae propio basado en el l guae de SuperCollider:Síntesi sdeaudioentiempo real programaci tonivelProcessing. Sin embargo,es óndeal VBScr i pt en j guaes de programación y posi ble utilizar otros l [21] aplicaciones popularesen Arduino, debido aque NET Vi s ualBas i c. atransmi Ardui nousal si ialdedatossoportadapor ónser l amayorí adel oslen j onados.Paralosque guaesmenci VVVV:Síntesi sdevídeoentiemporeal eriedef nosoportan elf va,esposi ble ormat os or manati uti l izar sof tware i nt ario que traduzca los ermedi j tiruna 3.1 Funciones básicas y o perador es nsaesenviadosporambaspartesparapermi me s on: comunicación fluida.Alguno j seemplos unci Ardui noestábasadoen Cysoportatodasl asf ones [22] caciones interacti vas yde delestándar C yalgunas de C++. A continuación 3DVI A Vi r t ool s :apli semuestraunresumencon l aestructuraysi ntaxisdel tiemporeal. l en- j guaeArdui no: rect or AdobeDi •
•
•
•
•
•
•
•
•
•
•
•
•
•
ngido) Bl i t z Ma x( conacc esor est r i C C++ ( me di a nt el i bS er i a loenWi ndows) C# Obect ve-C(paraMacOSX) j Cocoa/ i
i onScri pt ) Flash(medianteAct Gambas
3.1.1 •
•
•
•
•
Sinta#is básica
} De l i mi t a dor e s : ; ,{ / Comentarios://,/**
ude Cabecer as:#define,#i ncl
Operadoresari tméticos:+,,* ,/,% Asi gnación:=
4 •
=,<,>,<=, Operadoresdecomparación:==,!
,tilidades
> = •
•
•
•
OperadoresBooleanos:&&,||,! ,& Operadoresdeaccesoapunteros:*
Operadoresdebits:&,|,^,~,<<,>> t os: Operadorescompues
Incrementoydecrementodevariables:++, =,* =,/=,&=, Asi gnaci ónyoperaci ón:+=,•
•
•
3.1.2
•
•
structuras de contr ol
Condicionales:i f ,i ase f . . . el s e,s wi t c hc Buc l e s :f le,do. . .while or ,whi Bi f ur c a c i one sysalt os:break,conti nue,return,got o
3.1.3
4aria bles
Encuantoaltrat amientodelasvari ablestambién com-parteungranpareci docon ellen j guaeC. onstantes •
•
•
•
HIGH/LOW: representan l osnivelesaltoy j bao del asseñal esdeentradaysalida.Losnivel esaltos sonaquellosde3voltiosomás. al i da. I NPUT/OUTPUT:entradaos
s i z e o f ( )
3.1.8
Funciones básicas
9S di&ital •
•
•
|=
•
%*+,A- PR/+RA0A12 *
3
pinMode(pin,modo) digitalWri te(pin,valor) intdi gi t al Read( pi n)
9S ana l(&ica •
•
•
erenc analogRef e ( t i po)
intanal ogRead( pi n)
analogWri te(pin,valor)
9S a7an:ada •
•
shif n,cl ) oc kPi n,bi t Or de r ,val tOut(dataPi or unsi gnedl ongpul seIn(pin,valor)
6ie"po •
•
•
l l i s ( ) unsignedlongmi cr os( ) unsignedlongmi
ay(ms) del
del ( mi ayMi croseconds crosegundos) lcerol f a l s e( f a l s o ) :S eña lquer e pr e s e nt aa ógi c o . A di f er enci a de l as s eñal es HI GH/LOW, su beenletrami eescri nombr es núscul a. ate"áticas •
true (verdadero):Señal cuya definición esmás iaquel quiernúmeroentero am-pl ade5alse.Cual di f e-rente de cer o es“verdadero”, según el ál gebr a deBoole,comoenelcasode−200,−1o 1.Siescero,es“f al so”.
•
mi n( x,y) ,max( x,y) ,abs( x) ,constrain(x, a,b) , romHigh,t oHigh), map( val or ,f r omLow,f oLow,t pow(base,exponente),sqrt(x)
6ri&ono"etr;a 6ipos de datos
•
an(rad) s i n( r a d) ,c os ( r ad) ,t
,byt e,int, void,boolean, char,unsi gned char un-si gned int,word,long,unsi gned l ong,float, *<"eros aleatorios ng,array. do b e,stri ul randomSeed(semilla),l ongrandom(máx),l ong random(mín,máx) on7ersi(n entre tipos Est asf unci onesre ci ben •
•
como argumento una vari able de cualquier tipo y idaen eltipodeseado. devuelvenunavariableconvert •
c har ( ) ,byt e ( ) ,i nt ( ) ,wor d( ) , l ong( ) ,float ( )
uali$cadores y á"bito de las 7aria bles •
s t at i c ,vol at i l e,c onst
Bits y Bytes
bi t Read( ) ,bi t Wr i t e( ) , l owByt e( ) , hi ghByt e( ) , bi t -Set ( b ) ,i t Cl ear ( b ) ,i t ( ) •
5
A4R
3.2
nterrupciones e#ternas
attachInterrupt(interrupción,funci ón, modo) detachInt er rupt ( i nt er rupci ón) •
3.2
A4R %i bc
LosprogramascompiladosconArdui no(sal voenlaspl aazancontraAVR eenl casconCort eX M3)s
[ 2 2 ]
por Libc l o quetienen acc esoa al gunasde susf unci ones . AVR Li bcesun proyect l vo j o de sof twarel i br ec one obet i nterru pciones de proporcionar una bi blioteca C de alta cali dad para s ( ) interrupts(),noInterrupt ut i l i roladores zarseconelcompiladorGCCsobremi crocont Secomponede3partes: melAVR. o"unicaci(n por puerto serie Lasfuncionesde At rprecedi aneo delpuerto serie deben i das de l a m j pa ” aunque no necesitan ninguna la ra “Serial b avr-bi s nutil acabecera delprograma.Porest decl araci ón en l ose [ 2 3 ] s asedell unci en j guae. consideranf b one Es t a ss onl a s avr-gcc rans-mi e r i a l : f unci onesparat sións •
•
•
•
n( ) , begi n( ) ,a vai l abl e( ) ,r ead( ) ,flus h( ) ,pr i nt ( ) ,pr i ntl
•
•
avr l i bc
wri t e( )
3.1.=
anipulaci(n de puertos
a del len j Lamayorí guae de programación Ardui no es-t áescri ta con constantesyfunci onesdeAVR y ci er t as f unci i onal dades sólo se pueden obtener haci endousodeAVR. [25]
Losregist amanipul ros de puertos permiten l aci ón a más or mamásrápi os da de l j bao nivel y de f ac-tosdeentrada/sal idadelmicrocontrolador de 3.2.1 nterru pciones cont [ 2 4 ] l a spla-casAr actos eléctri cos de dui no. Loscont no est án repart idos entre losregistros l a splacasArdui gui ent : es B( 07) , C (analógicos) y D( 8-13).Mediante est as Lasseñalesdeinterrupciónsonlassi variabl esserob-servadoymodificado suestado: valasi nterrupciones g b c l i ( ) :desacti lo ales o DDR[ B/C/D] : Dat a Di r ec t i on Regi s t er ( strodedatos)delpuert o B,C ó direcci óndelregi s ei ( ) :a ct i val a si nt errupci ones abl edeLect ura/Escri tura quesi rve D.Esunavari para especi-ficarcuales contactos serán usados Esto afectará al temporizadory a la comunicaci ón i da. comoentradaysal seri al .Laf as unci ón del ayMi cr oseconds( )desact i va l PORT[ B/C/D] : Dat a Regi s t er ( o registro de i eeecuta. j onescuandos nt errup-ci able de datos)delpuerto B,C óD.Esuna vari Lect u-r a/Escr i t ur a. PI N[ B/C/D] :I nputPi nsRegi ster (o regist rode 3.2.2 6e"pori:ador es pi nesde entrada)delpuerto B,C óD.Vari able Laf reaelmenorretardo unci ón del ayMi cr oseconds( )c ol ectura. desól noquerondal os2μs.Para r eguaeArdui posi bledellen j al lamadadeeneempl o,para especi Por j ficar los contactos 9 a 13 tardosmáspequeños sedebeutilizarl nop'(nooperaci ón).Cadasentencia' nop'se comosalidasyel8comoentrada(puestoqueelpuerto samblador' cl o de máquina (16 MHz) de eecutará en un ci j nesdel D usal ospi aplacaArduino 8al13di gitales) a d a me n t e p a 6 2 , 5ns. x i r m o bastaríautilizarlasiguienteasi gnaci ón: 11110; DDRD =B111 eha podi do comprobar , elconoci miento del 3.2.3 anipulaci(n de puertos Como s l en- j ón en Ardui no guae C,permite la programaci ón depuertoscon código AVR esmás debidoal asi militudentreésteyellen j guaenativodel Lamanipulaci r á pi da que ut i l i z a rl af unc i ó n di gi t a l Wr i t e ( ) de j proyecto, l o que impl izae de algunas ica elaprend no. spone ellen j fi-casdequedi funcionesespecí guaedel Ardui erent proyect o para m j anearlos dif ámetros.Se es par i j pueden construir apl caci erta comp lei o-nesdeci dad si nnecesidaddemuchoscon-ceptosprevios. 3.2.8 stablecer Bits en 7aria bles •
•
•
•
•
cbiysbisonmecanismosestándar(AVR)para es ta lecer b a a r i l ol y v e s . b i mpi arbi t senPORT otras
6
8
i5erencias con Pr ocessin&
3.3
Lasi en j ntaxisdell guaede programación Arduino es mplificada de C/C++ y tiene algunas una versión si [ 2 7 ] [ 2 6 ] erenc dif asrespectodeProcessi ng. i Debi doaque á Ardui no es- t basado en C/C++ mientras que ebasae Processings J n ava,exi s t envar i asdi f er enc i asen asintaxisdeambosl en j yelmodoen cuantoal guaes queseprograma: 3.3.1
Arr e&los
3.3.2
"presi(n de cadenas
'e"plo sencillo de pro&ra"aci(n
3.8 en
Arduino
merpasoantesdecomprobarque l Elpri ainstalaciónes a j correct a y empezar t r a aar con Arduino,es usar b eem-pl j os prácticos que vienen disponi bles con el eleempl dispositivo.Serecomiendaabri r j o“led_blink” elcualcr eaunaintermi tenci a porsegundoen unled conectadoenelpin13. El códi go necesari o es el si gui ent e: i vado #define LED_PI N 13void setup ( ){// Act delcont s a l i d a d i g i t a l p i n Mo de a ac t o 13 par ( LED_PI N,OUTPUT) //Bucl ) ;} einfinitovoidloop( { //Encendidodel di odoLED enviando una señal a l t adi Wr LED_PI N,HI GH) ;// Ti empode gital i t e( esperade 1 se-gundo ( 1000ms)delay ( 1000) ;// j Apagado del di odo LED enviando una señal b aa. LED_PI N,LOW) ;//Ti empodeespera digitalWri te( 1 0 0 0 ) ;} ay( de1segundodel
Bibliotecas en Ar duino
8
no son l Las rec eArdui as bibliotecas estándarqueof [ 2 8 ] si ent : gui es 8.1
Serial
tura por elpuerto Lect ur a y escri s e r i e . 8.2
PR/
[ 2 9 ] e. Lecturayescrituraenelalmacenamientopermanent
•
8.3
r e ad( ) ,wri t e ( )
t> ernet
B2B%2/61AS *
Conexión aInternetmediante“Ardui noEthernet Shi el d“. unci ePuedef vidorqueaceptapetici onesr onarcomoser
6 motas o como cl ten hasta cuatro i e nt e . Se permi [30] e con xio-nessi multáneas. Loscomandosusadosson gui en-t e s : lossi •
•
8.8
8 •
B2B%2/61AS *
a t t a c h( ) ,wr i t e ( ) ,wr i t e Mi c r o s ec onds ( ) ,r e a d( ) , a t t a -ched( ) ,det ) ach(
,begi n( ) ,avai ite(), Servidor: Server() l abl e ( ) ,wr 8.@ So5 tar eSerial pr i nt ( ) ,pr i ntl n( ) [34] ec Comunicación serieencontactosdigitales. Pordef oArduino i ncluyecomunicación sóloen loscontactos print( ),printl n() ,available(),read() ,flush() ,st op( ) t 0y1perogracias aesta bibl ioteca puederealizarse ónconlosrestantes. estacomunicaci
Cl i e nt e :Cl i e nt ( ) ,c onne c t e d( ) ,c onne c t ( ) ,wri t e ( ) ,
Fir"ata
Esuna biblioteca de comuni caci ón con aplicaci ones 8. Ste p per in-f lprotocolo estándar del ormát i cas ut i l i zando e [ 3 5 ] [31] Controldemotorespasoapasounipolares b oi polares. puertos e r i e . 8.=
•
%i!uidrystal
n1, S t e ppe r ( s t e ps ,pi n1 ,p i n2 ) ,S t e ppe r ( s t e ps ,pi t ep( st eps) pi n2 ,pi n3 ,pi n4 ) ,s e t S pe e d( r p m) ,s
Control de LCDscon chi ps etHi t achiHD44780o [ 3 2 ] La biblioteca soportalosmodosde 4 8.C Dir e compat i bl es. y 8i b t s . ón dedatossobreunareddedisposi vos t i Envíoyrecepci osensoresmedi TWI /I 2C) . ant eTwoWi r eI nt e r f ac e( 8.?
[36]
Se r7o
La sbi bl i ot e c as0atri# ySprite deWi ringsontotalment e rven para m j aneo de Biblioteca paraelcontroldeservomotores. A partir compatibles con Arduino y si r i - ces de diodos LED. Tambi én s e of r ec e del aversión 0017deArduinolabibliotecasoportahasta mat s o b r e i n f o r ma c i ó n 12motoresenl amayorí adel asplacasArdui no y48 enl aArduinoMega.Estossonloscomandosusados: [33]
7
diversasbi bliotecasdesarrolladaspordiversos co Eempl b odeparpadeodeLED la ora- j doresquepermitenrealizarmuchastareas. /*Bl i nkTurns on anLED on forone second,then n offf oronesecond,repeatedl si y.Thisexamplecodei c domain. * t he publi / // Pin 13 has an LED 8.10 reaci(n de bi bliotecas ta connected on most Arduino boards. // give i ed= 13; Los usuari os de Arduino tienen l a posi bilidad de name:intl [ 37] heset up routine runs once when you press escr i bi r sus propi El l o permi te // t a sb i bl i ot e c as . up() {// initi alize thedigital pin as disponer de có-di goquepuedereutilizarse en otros reset:void set u t . a n u t p p i n Mo d e ( l e d , OU T PUT) ; }// t he loop o proyectos,mant uent nci palseparado lcódigof enere epri nerunsoverandoveragai nf orever:voi dl oop( ){ del asbibl iotecas y l zaci ón delos programas routi aorgani Wr digital urn the LED on (HIGH ed,HI t e ( l GH) ;//t i construidosesmásclara. i sthevoltagel evel orasecond tf )de l a y( 1 00 0) ;//wai Wr t e ( l i ; // t digital urn the LED off by ed,LOW) 8.10.1 'e"plo de biblioteca making thevoltage LOW del ora a y( 1 00 0) ;//wai tf second} Elsiguiente eempl j mite elenvío de caract eres o per me-dianteelcódigoMor s e: j i ecturadePot ro Eempl odel enc omet Secreaelarchivo Morse. h quei ncl uyeladefinici ón de /*ReadAnalogVoltage Readsananal og inputon pin l acl ase Morse que t iene3f unc i o ne s :unc o ns t r uc t o r 0,convertsi tt ovoltage, and pri ot he nts theresultt ( Mor-se() ) ,unaf o(dot())y ser unci ónpar aenvi ar1punt i almonitor. At t ach t he center pi n of a ón paraenviarunaraya(dash()). Lavariable potentiometert unafun-ci opinA0,and theoutsi o+5V depi nst . _pinper-mitei ndicarelcontactoausar n thepublic sexample code i si and ground. Thi blioteca para elenvío de Código domai /* Morse. h -Bi n. * nerunsoncewhenyou / //t hesetuprouti Morse.CreadoporDavi l2denoviembre press reset: voi d A.Mell i s ,e d setup() { // initi alize serial ldomi / #i f ndef communi de2007.Li nio público.* ber ado a t s per second: cation at 9600 bi Mor s e_h #define Morse_h #i ncl ude “WProgram.h” Seri a l . be gi n( 9 60 0) ;}// t hel oop routi ne runs over cl assMorse{public:Morse(intpin);voiddot();void andoveragai oop( ){// read t he nf orever : voi dl vat e :i f dash();pri nt_pin;} ;#endi input on anal og pin 0: int sensorValue = anal ogRead( A0) ;//Conver tt heanal ogr eadi ng( whi ch 023)t o a vol 0 -5V) :float tage ( r om 0-1 cpp con elcódigo, goesf Debes ercreadoelarchivo Morse. 5. 0 / 1023. 0) ;// print es deci r con la implementaci ón de l os métodos voltage = sensorValue *( t h e r e a d : S e o u t v a l u e y o u r i a l . p r i n t l n ( v o l tage);} declarados: o de /* Morse. bl i otecapara el enví c pp - Bi i s ,e l2de goMorse.Creado porDavid A.Mell Códi e / novi b m rede 2007.Liberadoaldominio público.* # i h” ? nstalaci(n en di5erentes entor) nclude “WProgram. h” # include “Morse. Mors e: : Mors e( i ; pin, OUTPUT) ntpin) {pinMode( nos dMorse: _pin = pin; }voi : do t ( ) {di gi t a l Wr i t e ( _ pi n, HI GH) ; del ; 250) ; di ay( gi t a l Wr i t e ( _ pi n, LOW) de l a y( 2 50 ) ; } void Mor - se: : dash( ) {?.1 Dindos HI GH) ; del di gi t al Wr i t e( _pi n, ay(1000); rsonlossi gui ent : Lospasosasegui es di gi t a l Wr i t e ( _ pi n,LOW) ;de l a y( 2 50 ) ;} La bi blioteca creada asípuedeserusadamediante el co-mando#i ón de nclude.Sisedeseaenviarunapetici au-xi l i oSOSpore lcontacto13 bastaríacon llamara asi guientesecuenci Mor -se(13) j yeecutarl a: mors e. dot ( ) ;mors e. dot ( ) ;mors e. dot ( ) ;morse.dash() ; morse. dash() ; morse. dash() ; morse. dot(); morse.dot( ) ; mors e. dot( ) ;
=
'e"plos de (di&o
•
•
Descargarl asversionesmásreci entedeJava Runt i -meEnvi J 2RE)ydelI DEArdui no. roment( InstalarloscontroladoresFTDIUSB,conl apl aca Ardui noconectada.
j EecutarelI DEArduinoparaabrirlainterfazy
•
adal a con-figurarelpuertoUSBdondeestáconect pl aca.
?.2
+*,9%inu#
nstalarArdui noenunsi st ema GNU/Linux necesi ed j e eemplos Parai LapáginadeArduinocuentaconunaseri as guientes programas para resolver l amos los si unci ent para comenzar a entender su f o, c onami on t as : com- ponentes base t ales como Pantallas, LED’ s,depen-denci Pot i ros,etc. enc ome-t j S j un avaruntime ,re. •
8
C
@
*B%/E
!uipo de desarr ollo
eodelequi podedesarroll odeArdui no est á forElnúcl goe, madoporMassimoBanzi,Davi dCuartiell es,Tom I t i . GianlucaMartino,DavidMellisyNichol asZambet
Pduino
2nter 5 a: del entorno de desarrollo Arduino en el Siste"a /pera) ti7o Dindos.
Patc> Pduino.
Pdui nonacedel af osproyectosPureDatay usi ón del Ar -dui no.Ambosproyect osde f uent ertapermiten eabi t r a j b aarconinterfazgráfica.Cargandoelfirmwarede PureData(PD)al aplacaArduinosepuedeaccedera guaedeprogramación gráfico. ellame-dianteellen j
C
2nter 5 a: del entorno de + *,9%inu#.
desarrollo
Arduino
ini blo!
S./. Pantalla de 0iniblo!.
avr-gcc,compiladorparal af ami l i ademi cr ocont r oMinibloq esunentornográficodeprogramaci ónque puemel . ladoresavrdeat recdegenerarcódigo nativodeArdui no yescribi r l odi t a me n t e e n l a l a me mo r i a fl a s h d e odo p l a c a . T i e n e u n m avr-libc,libcdelcompiladoravr-gcc. quepermitevisualizarelcódigogenerado,elcualt am bién puedesercopiado ypegado en elArdui noI DE, Enalgunasdi stri buci onesconvienedesinstalar,sinoes pa-ralosusuari j osqueintentanhacer elp asaedeuna lprograma“brl tty”quepermite elacceso herr ne c e s ar i o,e a-mi a enta gráfica la programación en sintaxis alterminal a personas i nvidentes.Para concluir, se C/C++.Mi descargaelf rameworkdeArduino,sedescomprimey eecuta. j •
•
9 acomputadocutarsedemanerai ndependientede l r a. Elmodo“directo”permi temodificarlosprogramasy ver los cambios produci dos de manera i nmediata en el com- portami o cual faci a ento del robot, l l i t a l programaci e todo al usuari o inexpert o. ón, sobr Asimismo,permiteverconstantemente losvalores de lossensoresyuti j lizarelrobot,po reemplo,comopara adquirirdatos. Elmodo“compilado”,porsupart e,eliminaelretardo queintroducel acomunicación con lacomputadora,lo o de tareas o hacepref ldesarroll e r i bl e pa r ae cuall avelocidad derespuest autónomas,en lascuales l adel i ma. obotdebeserópt 1o"binaci(n de una co"putadora de ba'o costo /%P1 el so5 t) r are 0iniblo! y una placa Arduino.
ni bloq es de uso li bre y sus f uent ambién est án es t disponi es gratuitamente. Una característica - bl a importante, es que puede correr también en l computadora portátil OLPC,mediante elsof tware Wi ne.
4Gase ta" biGn
11 •
•
amp BASI C St
Impresión3D
2.Elmodo “compi lado”,en elcuallosprogramasse Gt u ms t i x raducenaC++ ys e j uego baanalaplaca,paral j e Me i n i bl oq
•
10
P>ysical to ys
•
•
•
•
•
•
Proyecto de un se"á5 or o reali:ado con Arduino y P>ysical toys.
suna extensi ón libreygratuita que Physi c alEt oyse
per - mi t e que di versos disposi tivos electrónicos comoLegoNXT,las placas Ardui no,Sphero,Kinect, Joystick Wi i - mote, entre otros, puedan ser programados f nteractúen entre sí á c i l me nt e y que i oques. el graciasasusistemad b En elcaso de Ardui no,Physi calEt oys of r ece dos ón: modosdeprogramaci
rect o”,en elcuallos programas se 1.Elmodo “di ee-cut j an en l a computadora delusuari oy l as órdenessetransmiteninmediatamente atravésdel puertoserie.
Mi ni PC OOPI C PI CAXE
RaspberryPi oys Phys i calEt
•
Robot
•
X1 0
9 [ 1 ]PlacaArduinoSeri al [ 2 ]«Interview withCaseyReasandBenFry». [ 3]
thomepage». Proec [ 4 ]« j [ 5 ]«ArduinoDuei sfinal lyhere». [ 6 ]ht t p: //www. aec. at /en/pr i x/honor ar y2006. asp [ 7 ]«ArsElectrónicaArchi v»(enalemán).Consultadoel18 def ebrer ode2 009. [ 8 ]«ArsEl ec t r oni caAr c hi v /ANERKENNUNG» ( en a l e -mán).Consultadoel18def ebrer ode2 009.
12
Re5 er encias
[ 9 ]David Kushner( 26Oct2011) .6>e ain& o5 Arduino. rum»ignorado( Texto«publ i caci ónIEEESpect ayuda)
10
18
*%A1S
[10]«Al go deHistoriaparacomenzar».Consultadoel22de [29]«EEPROM Li br ary» .>ttpJ99.arduino.ccKK dici embrede2013. 1onsultado el 22 de dicie"bre de 2013.
Len in&lGsM.
[ 1 1 ]«GooglepresentaADK,interfazbasadaenArdui nopara [30]«Et her netLi br ar y» .>ttpJ99.arduino.ccKK Len in&lGsM. Andr oi d».Br i coGeek. com.1 2demayode2011.Consul 1onsultado el 22 de dicie"bre de 2013. embrede2013. tadoel22dedici [31]«Fi br ar y».>ttpJ99.arduino.ccKK Len in&lGsM. r mat a Li opmentKi de»( eni . [ 1 2 ]«Accessory Devel t2012Gui nglés) 1onsultado el 22 de dicie"bre de 2013. Consultadoel22dedici embrede2013. qui dCr ys t a lLi br ar y».>ttpJ99.arduino.ccKK Len in) [32]«Li [13]TerrenceO' 19desepti Br i en ( embrede2011).«Ardui no &lGsM. 1onsultado el 22 de dicie"bre de 2013. brings the (new) goods to Maker Faire New York, br ar y».>ttpJ99.arduino.ccKK Len in&lGsM. on) hef o l d»( e ni ngl é s ) .Consul welco-mesARM intot tado [33]«ServoLi sultado el 22 de dicie"bre de 2013. ci embrede2013. el22dedi os c ope t [14]«Xosci l l o:A sof hatacquires data [34]«Sof tware oscill t war eSe r i alLi br ar y».>ttpJ99.arduino.ccKK Len in) usi nganArdui no oraparall ax. »(en inglés).Consultado &lGsM. 1onsultado el 22 de dicie"bre de 2013. el22dedici embrede2013. epperLi [35]«St br ar y».>ttpJ99.arduino.ccKK Len in&lGsM. [ 1 5 ] JoshuaM.Pearce(14deseptiembrede2012).«Bui lding 1onsultado el 22 de dicie"bre de 2013. pment wi Resear chEqui t hFr ee,Open-Source Hard36]«Wi r eLi br ar y» .>ttpJ99.arduino.ccKK Len in&lGsM. on) can [ UU. :Ameri ware» (en inglés). Washington, EE. sultado el 22 de dicie"bre de 2013. As s o c i a t i o n f or t heAdvancement ofScienc. p.3. ado el22dedi doi : 10 . 1 12 6/s ci e nc e . 1 22 81 83 .Consult br ar yf [37]«Wri orArdui t i ngaLi no».>ttpJ99.arduino.ccKK ci embrede2013. Len in&lGsM. 1onsultado el 22 de dicie"b re de 2013.
[ 16] Pet erKi rn( 20de agost o de 2008).«Aug 20 2008 Ar -dui nome:AnArduino-BasedMonomeCl one,Behind t he Scenes» ( e n i ng l é s ) . Co ns ul t a do e l 22 de dici embrede 2013. [17]«HumaneReader»(en i nglés).Consultadoel22dedi ci embrede2013.
13 •
[ 1 8 ]«TheHumanePC»(eni nglés).Consult adoel22dedi ci embrede2013.
noPhone» (en inglés). Consultado el22 de [ 19] «Ardui brede2013. di ci em[ 20]Est eban Zamorano( 28 de noviembre de 2013). «Const ruye tu propio cel ularporUSD$200graciasa Arduino». Consultadoel22dedici embrede2013.
•
Bi blio&ra5 ;a e Oxer,Jonathan;Blemings,Hugh(28dedici m re b de 2009). P r actical ArduinoJ 1ool Pro'ects 5or /pen Sou rce Hardare ( 1ªedición).Apress.p. 500.ISBN 1430224770. i 009).P r o& r a""in& de ul Noble,Joshua(15 j ode2
2nte r act i7ityJ A esi&nerOs +uide to P r ocessin& Ar)
1 ª edi openFra"eor ( c i ón) . O' Rei l l yMedi a.p.768.ISBN0596154143. duino
•
and
Banzi ,Massi mo (24de marzo de 2009).+ettin&
1 ªedi c i ón) .MakeBooks .p. Started it> Arduino ( 128.ISBN 0596155514.
[ 2 1 ]«I nt er f ac i ngwi t hOt herSof t war e».>ttpJ99arduino.ccKK Len in&lGsM. 1onsultado el 22 de dicie"bre de 2013.
[ 2 2 ]«LanguageRef e r e nc e ». >ttpJ99arduino.ccKK Len in&lGsM. 1onsultado el 22 de dicie"bre de 2013.
al » .>ttpJ99.arduino.ccKK [23]«Seri
Len in&lGsM. onsultado
el 22 de dicie"bre de 2013.
18 •
[ 2 4 ]«PortRegi s t er s».>ttpJ99.arduino.ccKK Len in&lGsM. on) sultado el 22 de dicie"bre de 2013.
•
[ 2 5 ]«AVRCode».>ttpJ99.arduino.ccKK Len in&lGsM. onsul) tado el 22 de dicie"bre de 2013.
no/Processing [26]«Ardui
Language
•
Compari son».
•
>ttpJ99.arduino.ccKK Len in&lGsM. onsultado el 22 de dicie"bre de 2013.
[27]«Language
•
Ref e r enc e ( API ) /Pr oc es s i ng
. 2 + »
>ttpJ99processin&.or&9KK Len in&lGsM. onsultado el 22 de dicie"bre de 2013.N
[28]«Arduino -Li br ar i es».>ttpJ99arduino.cc9KK Len in&lGsM. 1onsultado el 22 de dicie"bre de 2013.
•
•
nlaces de e#ternos SitiowebProyectoArduino(eni és ) ngl SitiowebProyectoArduino(enespañolconmenos dos) cont eni és ) ngl (blogeni
ack Exchange si t i o de preguntas y Ardui no St r e s -puestas
Comparativadelosdistintosmodelosdispo b niles ( eemAlgunosproyectosconardui nopaso apaso j ales) plosconvideotutori
DuinOS: SistemaoperativomultitareaparaArdui no desarrol ladoporR b o ot Gr oup
11 •
•
•
•
•
Biicode:Aplicación paragestionarlibreríasyproyectosdeArdui no EntornográficodeprogramaciónparaArdui no Wi nkhel:cómounproyectoArdui nopuedeconvertirseenunproductoreal(enespañol) no ScadaparaArdui
S-Remote Control:Apl icación AndroidparacontrolarArduinoporUDPoTCP
j odeArdui no yGambas:Gráficade Eempl odeus
•
datosdesensores
+rá$ca de datos de sensores conectados a Arduino pro&ra"ado en +a"bas
12
1=
6I6 A* 20A+ S/,R1S 1/*6R2B,6/RS A*
%21*SS
6e#t and i"a&e sources contributors and licenses
1=
6e#t
1=.1
t p: //es. wi ki pedi a. org/wi ki/Ar dui no?ol di d=79643310olaboradoresJ 4 am ar , l e x ,Sabbut,Tony Rotondas, R j Arduino FuenteJ ht ocool , Museo8bi t s,Ger manX,The Phot ogra pher ,J ago84, CEMbot , Chuffo,Mont gomer y, Interl o-per,Chobot,BOT-Superzer J oaqui ,Nabegando1990,Lovel J ,Commons Del i nker ,Bi as ol i ,Ci nevor o,Vol kovBot ,Synt hebot ,Shooke,Mur oBot ess , nFerrero ,AnDbot b ,BOTar at e,Yons ec a,J avi er i t o92,Ki kobot ,Bot el l í n,Leonpol anc o,Al ec s . bot ,Lor dT,Al e xbot ,Dar ki c ebot ,Cl unhai r , i ni - ot Leonaro,Dr j UA31 ,AVBOT,Luci Aruno3,Luckasbot ,Myst Bot ,Di senyo,Dani el rocaES, RaúlMi l l a,SuperBraul i o13, Xqbot ,J kbw, enBOT, Brunonar ,Fr ammm,Ma ,J aadesA,Bot arel ,Ast aBOTh15,J oebi gwheel ,Hprmedi n a,cfidy,Hal -cucal J fdrag,Kizar,Omerta-ve,Thomasl l i t us,J acki eBot, Mi ni robots , r uBOT,Rononi pluralvonglas, Pat to,Julian dasi l va,EmausBot,Savh,ZéroBot, SUPUL SINAC,Gri rtz,Rufflos,Jmdoren,KLBot Chui spast onBot ,Wi ki enshmi tanvirBot,Diamondland,DrDoof 2,Loureda,Yomal ospelos, Arthur' Two -bo t ,Tur o ar t ,J ohnb ot ,El vi s o r ,La ur efo quePi char do,Angel o9507,Angel def uego22,Makecat ,Enri Sheds’Jackson,MetroBot,I nvadi an b ga ri bot ,J s bs an,S east i bl b anco,Ri choM, Chemaper,Addbot,Arkantos13,Arkantos1997, Lagoset,Hithwen,Jerónimo Ál varez, el Mari oZuñigaCarrillo yAnónimos:108
•
"a&es
1=.2 •
•
tt p: //upl oad. wi ki medi a. org/wi ki pedi a/commons/6/6c/Ar dui no316. j pg%icenciaJ Arc>i7oJArduino31?.'p& FuenteJ h p://www. arduino.cc/Ar tista ori&inalJ NicholasZambet t i o) laboradoresJ htt
CCBYSA 3. 0
t p: //upl oad. wi ki medi a. or g/wi ki pedi a/commons/3/38/Ar dui no_Uno__ R3 . j pg%icenciaJ Arc>i7oJArduino,no)R3.'p& FuenteJ ht
c sf r om Boul der ,US CCBY2. 01olaboradoresJ Ardui noUno-R3Ar tista ori&inalJ SparkFunElectroni A Arc>i7oJArduinodani2.pn& FuenteJ htt p://upload. wikimedia. org/wikipedia/commons/7/7a/Arduino_dani2. png %icenciaJ GPL . ner ei olabo) radoresJ Scre enshotbyDani elrocaES Ar tista ori&inalJ Ardui nodevelopers.CodesamplebyHans-Chri st ophSt Arc>i7oJArduinoindos.-P+ FuenteJ ht tp://upload.wikimedia. org/wikipedia/commons/7/75/Ardui no_windows. JPG %icenciaJ GPL 1olaboradoresJ ScreenshotbyDaniel rocaES Ar tista ori&inalJ Arduinodevelopers t t p: //upl oad. wi ki medi a. org/wi ki pedi a/commons/e/eb/Bl i nk. j pg%icenciaJ CCBYSA 3 Arc>i7oJBlin.'p& FuenteJ h . 01olaboradoresJ ul i andas i l va Tr a b j aopropioArtista ori&inalJ J •
•
•
•
Arc>i7oJ+a"basarduinosensores&rá5ica.pn& FuenteJ
http://upload.wikimedia. org/wikipedia/commons/9/98/Gambas_ardui no_ s ens or es _gr %C3%A1fica . png%icenciaJ CCBYSA3. 01olaboradoresJ T b r a aopropioArtista ori&inalJ J sbsan j t p: //upl oad. wi ki medi a. org/wi ki pedi a/commons/9/96/P1040870. J PG%icenciaJ Arc>i7oJP1080@0.-P+ FuenteJ ht olaboradoresJ ul i andas i l va T b r a aopropioArtista ori&inalJ J j •
Arc>i7oJPduino.pn& FuenteJ
•
htt p://upload.wikimedia. org/wikipedia/commons/6/6a/Pduino. png
Screens -hotbyDani elrocaES Ar tista ori&inalJ Arduinodevelopers. •
GPL 1olaboradoresJ
t p: //upl oad. wi ki medi a. org/wi ki pedi a/commons/5/56/Semaf oro_PE. png%icenciaJ Arc>i7oJSe"a5oroP.pn& FuenteJ ht
3. 0
r a aopropioArtista ori&inalJ Sebastiangabrielblanco 1olaboradoresJ T b j
1=.3 •
%icenciaJ
GFDL
ontent license
0 CreativeCommonsAttribution-ShareAl ike 3.
CCBYSA