Començant amb Arduino
- jomvi00
- 10 abr 2016
- 9 Min. de lectura
Instal·lació Entorn desenvolupament
El primer de tot és descarregar i instal·lar al teu pc l’entorn de desenvolupament Arduino (IDE). La pàgina de descàrrega oficial és aquesta:
http://arduino.cc/en/main/software
I baixem la versió més recent del IDE. Quan acabi, descomprimeix el paquet execuable allà on vulguis del disc dur.
Un cop instal·lat, executa el programa una vegada, així es crearà una carpeta on s’emmagatzemaran les teus programes. Si vols saber on és la carpeta, vés a Arxiu -> Preferències i mira el camp de text Ubicació de Sketchbook. Aquesta adreça al teu ordinador és on s’emmagatzemaran els teus programes quan facis “Desar” al menú.
En el IDE, cal seleccionar el tipus de placa que estàs utilizant:

Al moment de configurar el IDE, cal anotar el port sèrie (serial port) al que es connecta el Arduino, ja que més endavant farem referència a aquest. Segons el sistema operatiu de la computadora amfitriona (el nostre pc), el port pot ser alguna cosa així com COM3 (Windows), /dev/ttyACM0 (Linux) o /dev/tty.usbserial (MacOS).
Normalment quan la placa està connectada al PC, el IDE ja reconeix directament el port. Ho pots veure a la opció Port del menú superior Tools (Eines). SI no hi ha especificat cap port, vol dir que el nostre ordinador no està reconeixent la placa. En aquest cas, provar de connectar-lo de nou al USB o bé canviar de port USB.
Introducció a l’IDE
Descrivint els menús més importants, dins del menú Arxiu, trobem les següents opcions: Nou i Obrir, respectivament ens permet crear i obrir un codi o sketch. Projecte: ens permet obrir un conjunt de sketch que conformar un projecte determinat. Exemples: són sketchs que proporcionen exemples sobre l'ús de la placa de Arduino. Hi ha exemples bàsics que van des de fer parpellejar un led fins a fer un servidor web bàsic amb Arduino i el shield ethernet. Del menú editar, ens dóna les opcions bàsiques d'edició, a més de copiar el text com html (necessari per publicar el nostre codi). El menú programa, ens dóna l'opció de verificar i compilar el programa, incloure llibreries i mostrar la carpeta del programa (aquesta opció és útil per poder buscar els sketchs sense haver de navegar fins a trobar la carpeta dels fitxers localitzada a la carpeta de l'usuari, dins d'una carpeta anomenada ARDUINO. (En aquesta carpeta copiarem totes les llibreries, atès que és la ruta per defecte per la qual l'entorn de desenvolupament, busca els fitxers)
Les eines que ens proporciona el IDE són les següents:
Auto Format, formata el nostre codi de tal forma que sigui llegible. Per a projectes petits, és fàcil que el programador, li doni format al codi de forma senzilla, però quan porta moltes línies de codi, aquesta opció és molt útil.
Arxiu de programa, comprimeix tota la carpeta del projecte per guardar-la en un fitxer ZIP.
Reparar codificació i Recarregar, aquesta opció és útil per reparar fitxers amb diferents codificacions.
Monitor serial, és un simple monitor serial, que ens permet comunicar-nos amb la placa. Ens permet tant enviar com rebre dades del Arduino.
Placa i Port, ens permet seleccionar amb quina placa estem treballant (model) i en quin port està connectat.
Programador, en cas de disposar d'un programador de PIC´s, podem seleccionar un determinat per programar el nostre xip. En la majoria de casos amb Arduino, no ho usarem.
Cremar bootloader, ens permet tornar a carregar el bootloader (programa encarregat d'iniciar el xip i perifèrics, així com iniciar el nostre programa). No ho usarem, tret que comprem un xip en blanc.
Finalment, descrivint els botons que ens apareixen, d'esquerra a dreta, tenim: verificar codi, pujar programa a placa, nou sketch, carregar skecth i tancar sketch.
Fonts consultades:
Evans, B. W. 2007. Arduino Notebook: A Beginner’s Reference. Enllaç:
https://dl.dropboxusercontent.com/u/27471020/Arduino/Manual_Programacion_Arduino.pdf
El primer muntatge
Què necessitem per començar
Els elements mínims necessaris són els següents:

Connexió a protoboard
Per a fer els muntatges ens ajudarem d’una Protoboard. Aquest tauler s'utilitza per construir circuits temporals.

No es requereix soldadura, per la qual cosa, és fàcil de canviar les connexions i reemplaçar els components. Té un munt de forats on es poden connectar els cables o components electrònics. Això permet crear un circuit que conté múltiples components sense haver de connectar-los físicament entre si. Als laterals té dues files paral·leles que ens poden servir per connectar-hi l’alimentació de +5v (fila vermella) del nostre circuit i la presa de terra GND (fila negre). Tots els forats de la fila vermella estan interconnectats entre ells i el mateix amb els de la negra.
La placa està dividida en dos parts independents entre elles, no estan connectades. En canvi, dins de cada part, les línies marcades en groc estan connectades. El mateix a la part verda.
Per començar, necessitarem: un LED, dos cables, una resistència de 220 Ohms i un cable USB.
Connectar la placa Arduino cap al PC amb el cable USB. Amb això, aconseguim que arribi l’alimentació a la placa. Aquesta disposa de dues sortides que farem servir: una que ens proporciona +5V i una altra que ens dóna 0V i que farem servir de GND del nostre circuit.
Amb els dos cables unim la sortida de 5V del microcontrolador amb qualsevol dels forats de la línia lateral vermella. I la sortida GND amb qualsevol dels forats de la línia lateral negre. Ara, qualsevol dels forats d’aquesta línia tenen 5V que podem utilitzar per alimentar els nostre circuit que muntem a la protoboard.
Estructura d’un programa
Un programa o sketch Arduino té els següents blocs:

Bloc inicial de declaració de variables i llibreries externes.
Funció setup: Arduino el primer que fa quan arrenca és mirar la funció setup. Aquest és un dels passos essencials del funcionament del programa. És la part que inicialitza les configuracions dels diferents elements del programa de Arduino; només s'executa una vegada en l'inici i no es tornarà a executar fins que Arduino s’apagui i torni a arrencar. Aquí podràs configurar les funcionalitats dels pins, ja siguin inputs (entrades) o outputs (sortides).
Funció principal loop: Les instruccions d’aquest bloc es van executant seqüencialment fins al final, i quan acaba torna a començar de nou, és a dir, s’executa en forma de bucle infinit. Aquesta part funcionarà fins que desconnectis la font d’alimentació.
Altres funcions (no obligatori) pròpies.
Quan obrim l’ IDE d’Arduino (o fem [Menú]\Arxiu\nou) ell ens escriu ja per defecte aquestes dues funcions buides.

El principi de cada funció és indicat per l’obertura de clau “ { “ el final s’indica amb el símbol de tancar clau “ } “. El conjunt d’instruccions contingudes entre una obertura y tancament de claus s’anomena bloc. A cada obertura de clau sempre li correspon posteriorment un tancament de clau.
Cada línia d’instruccions acaba amb punt i coma ‘;’.
Qualsevol cosa que escriguem precedit per “ // “ són comentaris informatius que podem posar per aclarir el codi, i seran ignorats pel programa.
Aquesta plataforma conté exemples de codis d'una sèrie de llibreries que vénen instal·lades amb l'IDE ; per obrir-los feu clic a la barra d'eines : Arxiu > Exemples

Aspectes a tenir en compte
Les claus {} Les claus serveixen per definir el principi i el final d'un bloc d'instruccions. S'utilitzen per als blocs de programació setup(), loop(), if.., etc. Una clau d'obertura “{“ sempre ha d'anar seguida d'una clau de tancament “}”, si no és així, el programa donarà errors. L'entorn de programació d’Arduino inclou una eina de gran utilitat per comprovar el total de claus. Només has de fer clic en el punt d'inserció d'una clau oberta i immediatament es marca el corresponent tancament d'aquest bloc (clau tancada). ; punt i coma El punt i coma “;” s'utilitza per separar instruccions en el llenguatge de programació de Arduino. int x = 13; /* declara la variable 'x' com a tipus sencer de valor 13 */ Nota: Oblideu-vos de posar fi a una línia amb un punt i coma o es produirà en un error de compilació. El text d'error pot ser obvi, i es referirà a la falta d'una coma, o pot ser que no. Si es produeix un error rar i de difícil detecció el primer que hem de fer és comprovar que els punts i comes estan col·locats al final de les instruccions. /*… */ bloc de comentaris Els blocs de comentaris, o comentaris *multilínia són àrees de text ignorades pel programa que s'utilitzen per a les descripcions del codi o comentaris que ajuden a comprendre el programa. Comencen amb / * i acaben amb * / i poden abastar diverses línies. /* això és un bloc de comentari, no s'ha d'oblidar tancar els comentaris aquests han d'estar equilibrats */ A causa que els comentaris són ignorats pel compilador i no ocupen espai en la memòria de *Arduino poden ser utilitzats amb generositat. També poden utilitzar-se per "comentar" blocs de codi amb el propòsit d'anotar informacions per a depuració i fer-ho més comprensible per a qualsevol. Nota: Dins d'una mateixa línia d'un bloc de comentaris NO es pot escriure un altre bloc de comentaris (usant /*..*/). // línia de comentaris Una línia de comentari comença amb // i acaben amb la següent línia de codi. Igual que els comentaris de bloc, els de línia són ignorades pel programa i no ocupen espai en la memòria. // això és un comentari Una línia de comentari s'utilitza sovint després d'una instrucció, per proporcionar més informació sobre el que fa aquesta o per recordar-la més endavant.
Fonts consultades:
Banzi (2009)
Evans (2011)
Prometec. Curso de Arduino. Enllaç: http://www.prometec.net/
Com s’executa un programa
Cada vegada que volem executar un programa, cal seguir els següents passos:
Compilar el codi per verificar si hi ha errors clicant la icona que es mostra a la imatge.
Connectar la placa amb el PC amb el cable USB (si la connexió és correcte, es mostrarà un port a l’opció Eines>port del menú superior) i pujar el programa a la placa clicant la icona que es mostra a la imatge.

Muntatge del primer circuit i primer programa
Per començar, podem carregar el programa bàsic Blink (exemple anterior). Correspon al programa de control d’un led que s’apaga i s’encén. El circuit és el següent:

Arduino disposa de 14 pins que poden ser usats indistintament com a entrades i sortides digitals, són els numerats del 0 al 13.
En aquest cas, a través del programa demanarem a Arduino que activi el seu pin 13 per funcionar com una sortida digital y després encendrem i apagarem aquest senyal. És a dir, quan activem el pin 13 proporcionarà 5v i quan el desactivem donarà 0v. Això farà que el LED que té connectat en sèrie amb la resistència, s’encengui i s’apagui al ritme que li marquem al programa.
Anem a revisar el programa.
Per indicar al sistema que volem usar el pin 13 com sortida digital utilitzem la instrucció:
pinMode ( 13, OUTPUT ) ;
El primer paràmetre indica el pin i “OUTPUT” és per usar-lo com sortida (també podria usar el valor “INPUT” si volguéssim indicar que volem llegir el valor que arribi a aquest pin, per exemple d’un sensor extern, però aquest no és el cas).
Les definicions dels pins d’entrada i sortida es faran només una vegada al principi del programa, dins de la funció setup().
Per encendre el LED usarem la instrucció a dins de la funció principal loop():
digitalWrite( 13 , HIGH) ;
i la que li ordena apagar-lo serà:
digitalWrite( 13 , LOW) ;
El 13 indica el pin a utilitzar y HIGH, LOW indiquen el valor que volem posar en aquesta sortida, que a Arduino corresponen a 5V per HIGH y 0V perLOW.
Si dins la funció loop() escrivíssim aquestes duess instruccions seguides, Arduino canviaria els valors tant ràpid, que no percebríem canvis, així que necessitem frenar-lo una mica. El processador Arduino UNO és molt lent des del punt de vista electrònic si el comparem amb un processador d’un PC, però tot i així, és capaç de processar unes 15.000 instruccions per segon.
Per fer aquest retard entre les dos instruccions, per exemple 1 segon (1 milisegons), utilizem:
delay(1000) ;
En resum, per programar una llum que s’encén i s’apaga, hem de generar una seqüència d’ordres que fessin seqüencialment:
Informar a Arduino que anem a utilitzar el seu pin13 com a sortida (en el setup).
Dins del bucle infinit (loop):
Encendre el LED: posar valor alt (5V) al pin 13.
Esperar un segon.
Apagar el LED: posar valor baix (0V) al pin 13.
Esperar un segon.
Finalment, ens queda un codi com aquest:
void setup()
{
pinMode( 13 , OUTPUT); // usarem el pin 13 com sortida
}
{
digitalWrite(13 , HIGH); // Encen el LED
delay(1000); // Esperar un segon
digitalWrite(13 , LOW); // Apagar el LED
delay(1000); // Esperar un altre segon
}
Finalment només queda executar el programa. Abans d’això, cal compilar-lo per verificar els errors i traspassar-lo a la placa a través del cable USB, tal com s’ha explicat anteriorment.
Aspectes a tenir en compte:
Els LEDs tenen polaritat, és a dir, els dos pins són diferents l’un a l’altre. El pin llarg s’anomena ànode, i és el positiu quan el connectem al circuit: aquest ha d’estar connectat a l’extrem positiu de l’alimentador. El pin curt, o càtode, ha d’estar connectat a terra (0 volts).
Els LEDs no es fondran si els connectes amb la polaritat oposada: simplement no funcionaran. No obstant això, a través dels LEDs no hi pot circular gaire corrent. Per assegurar-te que no es cremin, els has de posar una resistència davant. En el nostre cas podem utilitzar 220 ohms o algun valor similar.
Fonts consultades:
Prometec. Curso de Arduino. Enllaç: http://www.prometec.net/
Comments