El Sistema Arduino, es una herramienta para que los ordenadores puedan
sentir y controlar el mundo fsico a travs de tu ordenador personal. INVESTIGACIN 2 INSTITUTO TECNOLGICO DE MEXICALI La tecnologa para el bien de la humanidad Interfaces y Redes Industriales Trabajo: Arduino Alumno: Ortega Garzn Francisco No. De Control: 10490606 Maestro: Ing. Ortega Nazario Alejandro ARDUINO | INVE!I"A#I$N 3 Mexicali, Baja California a 18 de Mayo de 2014 ARDUINO | INVE!I"A#I$N 4 ARDUINO Volumen 1/Nmero 1 ARDUINO, QU ES, !ARA QU SIR"E Es una plataforma o multiplataforma de hardware lire de dise!os de productos electr"nicos al alcance de todos los ususarios. #asada en una placa con un microcontrolador y un entorno de desarrollo, dise!ada para facilitar el uso de la electr"nica en proyectos multidisciplinarios. Co surgio la idea de A!"#INO$ Esta plataforma de hardware lire multidisciplinario naci" en $talia, en el $nstituto $taliano de %ise!o $nteractivo Ivrea, una escuela donde los proyectos estudiantiles se asaan en microcontroladores en su mayora. Arduino sur&i" de una necesidad, la de contar con un dispositivo de a'o coste, para utili(ar en clase con los alumnos, y que funcionase a'o cualquier sistema operativo. En el a!o 2))*, en Ivrea coincidieron todos los actores de esta historia. Despus de que Hernando desarrollara Wirin pensamos en !omo "a!er #oda la pla#a$orma m%s simple& m%s 'ara#a ( sen!illa de usar) Se !omen*+ a reimplemen#ar #odo !omo un pro(e!#o open sour!e para que #odo el mundo pudiera ,enir ( a(udar& !on#ri'uir). Casey Reas. M#S $ISTORIA El len&ua'e de pro&ramaci"n de Arduino es una implementaci"n de +irin& que a su ve( se asa en ,rocessin&, Actualmente ya se han creado oficialmente m-s de .2) mil placas Arduino. En cuanto a ventas, /athan Seidle, 0E1 de spar2fun.com dice que han vendido 4).))) unidades de la versi"n Arduino 3S# 4montada, proada y lista para funcionar5. ARDUINO | INVE!I"A#I$N %A NUE"A !%ACA DE ARDUINO &ERO Es una placa de 32 its asada en un microcontrolador A67E8 0orte9:7) SA7%2. que adem-s incorpora la tecnolo&a E%#;. Es muy similar al peque!o Arduino 3/1 salvo la incorporaci"n de 2 conectores de tipo 7icro 3S#. 3no se utili(ara para deu& y otro para pro&ramaci"n y muy proalemente como puerto 16; o 3S# host. Microprocesador SAMD21 a !M"# con $ecnolo%&a 'D() de A$M'*. * 'AMA DE !%ACAS S, arduino es una &ama de placas. <,orqu sur&i" arduino= Arduino sur&i" hace al&unos a!os en $talia cuando los estudiantes de in&eniera no podan costear las placas que se utili(aan en ese entonces. %ichas placas eran placas #AS$0 que costaan m-s de .)) d"lares cada una. Si tenas que hacer un proyecto que llevaa 3 o m-s placas f-cilmente te &astaas m-s de 4)) euros en tu proyecto. 0on esto en mente naci" arduino, placas de c"di&o aierto a un precio asequile. ,ara que te ha&as una idea, tu placa de partida, la arduino 3/1 cuesta en torno a .> euros mientras que placas m-s sofisticadas se quedan en la lnea de los 4) euros, mucho m-s aratos. QU SE $ACE CON ESTAS !%ACAS 8o &enial de arduino es que las placas en cuesti"n vienen con una memoria flash a la que tu le car&as un pro&rama. El pro&rama se lo car&as por 3S# y puede ser cualquier cosa. ,or e'emplo puedes pro&ramar tu placa para encender una lu(, activar un ventilador o incluso ir tan le'os como para crear tu propio root. 0on un poco de creatividad y conocimientos verdaderamente mnimos de arduino puedes crear pr-cticamente cualquier cosa. CARCTER(STICAS 'ENERA%ES DE %A !%ACA Se trata de una placa open hardware por lo que su dise!o es de lire distriuci"n y utili(aci"n, que incluso podemos construirnos nosotros mismos 4En la ?i&ura . se oserva el aspecto de la placa5. En la si&uiente we puede encontrarse mucha informaci"n relativa a la placa. El pro&rama se implementar- haciendo uso del entorno de pro&ramaci"n propio de arduino y se transferir- empleando un cale 3S#. Si ien en el caso de la placa 3S# no es preciso utili(ar una fuente de alimentaci"n e9terna, ya que el propio cale 3S# la proporciona, para la reali(aci"n de al&unos de los e9perimentos pr-cticos s que ser- necesario disponer de una fuente de alimentaci"n e9terna ya que la alimentaci"n proporcionada por el 3S# puede no ser suficiente. El volta'e de la fuente puede estar entre @ y 2* Aoltios. ENTORNO DE DESARRO%%O ,ara pro&ramar la placa es necesario descar&arse de la p-&ina we de Arduino el entorno de desarrollo 4$%E5. Se dispone de versiones para +indows y para 7A0, as como las fuentes para compilarlas en 8$/3B. En la ?i&ura 2 se muestra el aspecto del entorno de pro&ramaci"n. En el caso de disponer de una placa 3S# es necesario instalar los drivers ?6%$. Estos drivers vienen incluidos en el paquete de Arduino mencionado anteriormente. E9isten en la we versiones para distintos sistemas operativos. ARDUINO | INVE!I"A#I$N a+ Co,pilar -ro%ra,a, .+ (oton de Reset, c+$ransferir -ro%ra,a a la placa @ 8o primero que tenemos que hacer para comen(ar a traa'ar con el entorno de desarrollo de arduino es confi&urar las comunicaciones entre la placa Arduino y el ,0. ,ara ello deeremos arir en el menC D$ools/ la opci"n DSerial -ort/. En esta opci"n deeremos seleccionar el puerto serie al que est- conectada nuestra placa. En +indows, si desconocemos el puerto al que est- conectado nuestra placa podemos descurirlo a travs del Administrador de dispositivos 4,uertos 017 E 8,6F 3S# Serial ,ort5. El primer paso para comproar que todo lo que hemos hecho hasta ahora est- ien y familiari(arnos con el interfa( de desarrollo, es arir uno de los e'emplos. Se recomienda arir el e'emplo D#lin2D. ,ara ello deemos acceder a travs del menC ?ile 4 S2etchoo2 4 E9amples 4 %i&ital 4 #lin2. El e'emplo D#lin2D lo Cnico que hace es parpadear un 8E% que est- colocado en el pin nCmero .3 de la placa. Aamos a ver qu hay que hacer para suir el pro&rama a la placa Arduino. ,rimero comproamos que el c"di&o fuente es el correcto. ,ara ello pulsamos el ot"n de verificaci"n de c"di&o que tiene forma de tri-n&ulo inclinado G) &rados 4?i&ura 3.a5. Si todo va ien deer- aparecer un mensa'e en la parte inferior de la interfa( indicando D%one compilin&D. 3na ve( que el c"di&o ha sido verificado procederemos a car&arlo en la placa. ,ara ello tenemos que pulsar el ot"n de reset de la placa 4?i&ura 3.5 e inmediatamente despus pulsar el ot"n que comien(a la car&a 4?i&ura 3.c5. %urante la car&a del pro&rama, en la placa 3S#, se encender-n los 8E% que indican que se est-n enviando y reciiendo informaci"n por el puerto serieH 6BFIB. Si todo se ha reali(ado correctamente dee aparecer el mensa'e D%one uploadin&D. Ahora tan s"lo queda esperar unos J se&undos apro9imadamente para comproar que todo ha salido ien. Si el led colocado en el pin .3 de la placa se enciende y se apa&a cada se&undo entonces todo ha ido ien. ,or fin tenemos todo listo para empe(ar a traa'ar con la placa Arduino. ESTRUCTURA )#SICA DE UN !RO'RAMA 8a estructura -sica de pro&ramaci"n de Arduino es astante simple y divide la e'ecuci"n en dos partesH setup y loop. Setup45 constituye la preparaci"n del pro&rama y loop45 es la e'ecuci"n. En la funci"n Setup45 se incluye la declaraci"n de variales y se trata de la primera funci"n que se e'ecuta en el pro&rama. Esta funci"n se e'ecuta una Cnica ve( y es empleada para confi&urar el pin7ode 4p. e'. si un determinado pin di&ital es de entrada o salida5 e iniciali(ar la comunicaci"n serie. 8a funci"n loop45 incluye el c"di&o a ser e'ecutado continuamente 4leyendo las entradas de la placa, salidas, etc.5.
void setup() { inMode(pin, OUTPUT); // Establece 'pin' como salida } void loop() { digital!ite(pin, "#$"); // %ctiva 'pin' dela&('(((); // Pausa un segundo ARDUINO | INVE!I"A#I$N > digital!ite(pin, )O); // *esactiva 'pin' dela&('(((); } 0omo se oserva en este loque de c"di&o cada instrucci"n acaa con K y los comentarios se indican con FF. Al i&ual que en 0 se pueden introducir loques de comentarios con FL ... LF. *UNCIONES Se&mentar el c"di&o en funciones permite al pro&ramador crear pie(as modulares de c"di&o que reali(an una tarea definida y vuelven a la (ona del pro&rama en la que fueron llamadas. El caso tpico para crear un funci"n es cuando uno necesita reali(ar la misma acci"n mCltiples veces dentro de un mismo pro&rama. ,ara pro&ramadores acostumrados a utili(ar #AS$0 las funciones en Arduino permiten 4y e9tienden5 la utilidad de usar surutinas 4;1S3# en #AS$05. 8a estandari(aci"n de fra&mentos de c"di&o en funciones tiene diversas venta'asH 8as funciones ayudan al pro&ramador a ser or&ani(ado. Adem-s ayudan a conceptuali(ar el pro&rama. 8as funciones codifican una acci"n en un lu&ar, as que s"lo deen ser depuradas de errores una ve(. Ieducen las posiilidades de error en modificaciones, si el c"di&o dee ser camiado. 8as funciones hacen el s2etch mas peque!o y mas compacto por que las secciones de c"di&o se reutili(an varias veces. Macen mas f-cil la reutili(aci"n de c"di&o en otros pro&ramas por hacerlo mas modular y, como efecto paralelo, usando funciones se otiene un c"di&o mas le&ile. May dos funciones necesarias en un s2etch de ArduinoH setup45 y loop45. El resto de funciones dee ser definido fuera de las llaves de estas dos funciones. 0omo e'emplo vamos a crear una funci"n muy simple que multiplica dos nCmeros. ARDUINO | INVE!I"A#I$N J E%emplo Al DinvocarD a nuestra peque!a funci"n le pasamos parametros del tipo de dato que ella espera. void loopN int i O 2K int ' O 3K int 2K 2 O my7ultiply?unction4i, '5K FF 2 ahora contiene @ P /uestra funci"n necesita ser declarada fuera de cualquier otra funci"n, por ello Dmy7ultiply?unction45D puede ir antes o despues de la funci"n Dloop45D. El s2etch completo podra ser al&o como estoH void setup45N Serial.e&in4G@))5K P void loopN int i O 2K ARDUINO | INVE!I"A#I$N G int ' O 3K int 2K 2 O my7ultiply?unction4i, '5K FF 2 ahora contiene @ Serial.println425K delay4*))5K P int my7ultiply?unction4int 9, int y5N int resultK result O 9 L yK return resultK P Otro e%emplo& Esta funci"n leer- un sensor cinco veces con analo&Iead45 y calcular- la media de las cinco lecturas. Escala los datos a J its 4):2**5, los invierte y devuelve el resultado invertido. int IeadSensQandQ0ondition45N int iK int svalK for 4i O )K i R *K iSS5N sval O sval S analo&Iead4)5K FF sensor en pin anal"&ico ) P sval O sval F *K FF media sval O sval F 4K FF escala a J its 4) : 2**5 sval O 2** : svalK FF invierte el resultado return svalK FF devuelve el resultado ARDUINO | INVE!I"A#I$N .) P ,ara llamar a nuestra funci"n solo tenemos que asi&narla a una variale. int sensK sens O IeadSensQandQ0ondition45K ARDUINO | INVE!I"A#I$N