què és l' arduino · un ratolí és un dispositiu d'entrada d'un ordinador, una...
TRANSCRIPT
codi obert -
És una plataformade codi obert per aprototips electrònics.
I això què vol dir?b y J o d y C u l k i n
electrònica -
prototip -
plataforma -
"Recursos que poden ser usats, redistribuits o reescrits l l iures de càrrec.Sovint programari o maquinari."
"Tecnologia que uti l itza el corrent elèctric percontrolar quelcom automàticament."
"Model original que pot servir com a base per altres coses."
"Arquitectura de maquinari amb un sistema de programarisobre la qual es pot executar un (altre) programa."
Què és l'Arduino?
ENCÈS
un ratolí és undispositiu d'entrada
d'un ordinador,una pantalla és un
dispositiu de sortida.
Els microcontroladors uti l itzen les entrades i sortidescom qualsevol ordinador. Les entrades capten informacióde l 'usuari o de l 'entorn, mentre que les sortides fanalguna accio amb la informació que ha estat captada.
Un Arduino conté un microcontrolador, que és un ordinador en miniatura que pots programar. Li pots connectarsensors per mesurar condicions (per exemple quanta llum hi ha a l'habitació). Pot controlar com altres objectesreaccionen a aquestes condicions (si l 'habitació s'enfosqueix el LED s'engega).
O pot respondre a quelcom tan senzill comaccionar un interruptor.
microcontroladorfotocel·la
LED
placa de connexions
APAGAT
polsador
Un interruptor o un sensor poden seruna entrada per l'Arduino.
sensorde forcesresistiu motor de C.C.
Qualsevol objecte que volguem engegar o aturar icontrolar pot ser una sortida. Pot ser un motor ofins i tot un ordinador.
Les entrades i sortides poden se r digitals oanalògiques. La informació digital és binària -és o bé cert o fals-. La informació analògica éscontínua, pot abarcar un rang de valors.
Quina diferènciahi ha entre
entrades i sortidesdigitals i analògiques?
La informació digitalés discreta i finita.
Tota la informació esdescriu en dos estats,
1 o bé 0, on o bé off.
Un interruptor és una entrada digital, un sensor és unaentrada analògica. El rang d'un sensor analògic estàlimitat per la seva conversió a dades digitals.
La informació analògicaes caracteritza
per la seva naturalesacontínua. Pot terni un
infinit nombrede possibles
valors.
Abans de connectar l'Arduino revi-sarem uns conceptes i principisrelacionats amb el comportamentdel corrent elèctric (i per tantde l'electrònica). El corrent elèctric és el flux d'energia a través d'un material conductor.
tensió?intensitat?resistència?llei d'Ohm?
Tensió (U)és la mesuradel potencial
elèctric.Es mesura
en volts (V).
Intensitat (I)és la velocitat
del flux a travésd'un material
conductor.Es mesura
en ampères (A).
Resistència (R)és l'oposiciódel materialal flux del
corrent elèctric.Es mesura
en ohms ( ).
L'analogia de l'aigua s'utilitza habitualment per explicar aquests conceptes. Aquí tenim un model.
la pressió del raigve determinada per la tensió
la resistència fa decréixer ocréixer el raig
el cabal d'aigua equivala la intensitat
Ω
+
-
Hi ha una relació entre tensió, intensitati resistència, descoberta per enGeorg Ohm, un físic alemany.
Anem a veure ara un circuit senzill. Cada circuit és unrecorregut tancat que té una font d'energia (pila) i unacàrrega (làmpada). La càrrega converteix l'energia elèctricaen una altra d'útil. Aquest circuit també té un interruptor
Aquest és l'esquema del mateix circuit (representa elcircuit mitjançant símbols pels components electrònics).Quan l'interruptor és tancat, el corrent flueix des delgenerador i fa encendre la làmpada
Per exemple, si s'incrementala resistència es redueixla intensitat.
O si s'incrementa la tensióhi ha més corrent.
llei d'OHM
intensitat = tensió / resistència(I = U / R)
o béresistència = tensió / intensitat
(R = U / I)o bé
tensió = resistència * intensitat(U = R * I)
làmpada
interruptor
generador C.C.
ht t p:/ / ar du ino .c c / en / Main / S o f t war e
descàrrega:
I
II
I
H i ha dos t ipus hab i tua ls de c i rcu i ts ,e l s deCorrent Cont inu i e l s de Corrent A l tern .En un c i rcu i t de C .C . e l corrent sempre f lue i x ene l mate ix sent i t . En C .A . e l corrent f lue i x ensent i ts oposats en c i c l es regu l ars . Aquí noméspar l a rem de c i rcu i ts de C .C .
L'Ardu ino necess i ta energ ia per func ionar. L' hem deconnectar a un ord inador per programar- lo .
S ' h a d e d e s c a r re g a t i i n s t a l · l a r p ro g r a m a r ip e r p o d e r p ro g r a m a r l ' A rd u i n o . E s t ro b ad i s p o n i b l e e n l ' U R L d e d a l t g r a t u ï t a m e n t .E l p ro g r a m a r i A rd u i n o é s e x e c u t a b l e e np l a t a f o r m e s M a c O S X , W i n d o w s i L i n u x .
A l c o n n e c t a r l ' A rd u i n o a l ' o rd i n a d o r a m bu n c a b l e U S B , a q u e s t p ro p o r c i o n a r à e l s 5 Vq u e n e c e s s i t a i p o d re m p ro g r a m a r- l o .
Corrent Cont inu(C .C . )
Corrent A l tern(A .C . )
Ara que ja hem rev isat a lgunspr inc ip is bàs i cs de l corrent,
tornem a l ' A rdu ino
ht t p:/ / www.ar du ino .c c / en / Gu ide/ Mac OSX
ht t p:/ / www.ar du ino .c c / en / Gu ide/ Windows
ht t p:/ / www.ar du ino .c c / pl ayg r ound/ Lear n ing / Linux
Instruccions per instal· lar el programariArduino en un Mac:
Instruccions per instal· lar el programariArduino en Windows:
Instruccions per instal· lar el programariArduino en Linux:
A les URL de dalt hi ha instruccions detal lades per instal· larel programari en aquestes plataformes.
Després d'haver instal· lat el programariconnecteu l 'Arduino. Un LED marcat ONs'hauria d'encendre a la placa.
Executeu el programari Arduino. En el menú Toolsescol l iu la placa que estigueu uti l itzant (Tools > Board).Per exemple, Arduino UNO .
A continuació seleccioneu el port sèrie(Tools > Serial Port). En un Mac serà quelcomsemblant a /dev/tty.usbmodem . En un ordinadoramb Windows serà com3 o quelcom similar.
Què és unEntorn de
DesenvolupamentIntegrat?
Quan heu descarregat el programariArduino heu descarregat un IDE.Combina un editor de text amb uncompilador i altres funcions per ajudar alsprogramadors a desenvolupar programari.
L'IDE Arduino permet escriure Sketch o programes i carregar-los a laplaca Arduino. Obriu l'exemple Blink en el menú File:File > Exemples > 1.Basics > Blink.
Botó Upload
Per carregar l 'sketch a la placa Arduinocl iqueu el botó Upload en la tira de botonsde dalt de la finestra. Apareixeran algunsmissatges a la part de baix de la finestra ifinalment Done Uploading . El LED del pin 13 de l'Arduino començarà a parpellejar.
voi d set up( ) {
pi nMode( 13, OUTPUT) ;
}
voi d l oop( ) {
di gi t al Wr i t e( 13, HI GH) ;
del ay( 1000) ;
di gi t al Wr i t e( 13, LOW) ;
del ay( 1000) ;
}
h t t p : / / a rd u i n o . c c / e s / re f e re n c e / h o m e p a g e
voi d set up( ) {/ / i ni t i al i ze t he di gi t al pi n as an out put ./ / Pi n 13 has LED connect ed on most Ar dui no boar ds:pi nMode( 13, OUTPUT) ;
}
voi d l oop( ) {di gi t al Wr i t e( 13, HI GH) ; / / set t he LED ondel ay( 1000) ; / / wai t f or a seconddi gi t al Wr i t e( 13, LOW) ; / / set t he LED of fdel ay( 1000) ; / / wai t f or a second
}
Al web d'Arduino podeu consultar laguia de referència i molts altres recursosper aprendre el l lenguatge.
Ara mireu aquest script senzi l l l ínia a l íniaper veure que fa cadascuna.
Aquests dos són blocs de codi anomenatsfuncions que t indran tots els sketch. Estantancat per claudàtors { } .
Un sketch, com qualsevol programa escrit enun altre l lenguatge és un conjuts d' instruccionsper l 'ordinador. Si observem detingudamentl 'exemple Bl ink veurem que hi ha dues partsprincipals: setup i loop .
setup: s'executa una vegada quanel programa s'inicia
loop: es repeteix una ialtra vegada
// declara un bloc de codi
// posa el piu 13 com sortida
// finalitza el bloc de codi
// declara un bloc de codi
// posa piu 13 a nivell alt
// pausa 1 segon
//posa piu 13 a nivell baix
//pausa 1 segon//finalitza el bloc de codi
Com es controlen objectes que no estan en laplaca Arduino?. Connectarem l 'Arduino a unaplaca de prototips sense soldadura . Això enspermetrà construir i comprovar circuits ràpidament
Aquest placa de prototips té 2 files de forats verticalsa esquerra i dreta, i files de 5 forats horitzontals alscostats de la ranura central. Les tires dels costatsestan connectades verticalment, i cada tira de 5 foratsdel mig és independent de les altres.
Connectarem els 5V i la terra de la placa Arduinoa les tires connectades verticalment a esquerra idreta amb cables prims. Els components es podeninterconnectar amb els forats del mig i a 5V i terrasi és necessari.
ànode(es connecta a 5V)
càtode(es connecta a terra)
Quan circula corrent travessant un L E D (DíodeEmissor de Llum) en la direcció correcta aquests'encén. Anem a connectar un LED a la placa deprototips i l lavors a l 'Arduino per tal de podercontrolar-lo amb codi.
fo ra ts connec ta ts
hor i t zonta lment
fo ra ts connec ta ts
ver t i ca lment
L'ànode està connectat a l p iu 2 de l 'Arduino mitjançant unresistor de 220 ohms. E l càtode és connectat a terra. De lp iu 2 f ins e l 13 es poden configurar com entrades o sort idesdig ita ls. C l ica e l butó New per començar un sketch.
A setup hem configurat el piu 2 com asortida. A loop, primer hem posat el piu2 a nivel l alt. Delay atura 500 mil isegons-o mig segon-. Quan el piu 2 es posa anivel l baix el LED s'apaga, l lavors hi hauna altra pausa de mig segon.
Cl ica Verifica al menú per comprovar el codi. Sino hi ha cap errada, cl ica Carrega per enviar elprograma a l 'Arduino.
El LED s'encén durant mig segon, despréss'apaga durant un altre mig segon, i aixíuna i altra vegada.
botó Verifica (Verify)
botó Carrega (Upload)
voi d set up( ) {pi nMode( 2, OUTPUT) ;
}
voi d l oop( ) {di gi t al Wr i t e( 2, HI GH) ;del ay( 500) ;di gi t al Wr i t e( 2, LOW) ;del ay( 500) ;
}
voi d set up( ) {pi nMode( 2, OUTPUT) ;pi nMode( 4, I NPUT) ;
}
voi d l oop( ) {i f ( di gi t al Read( 4) ) {
di gi t al Wr i t e( 2, HI GH) ;}el se{di gi t al Wr i t e( 2, LOW) ;}
}
Ara afegirem un interruptor, una entradadigital, per poder encendre i apagar el LED.
C o n n e c t a u n e x t re m d e l p o l s a d o r a l p i u 4 d e l ' A rd u i n o ,i t a m b é u n e x t re m d ' u n re s i s t o r d e 1 0 k c o n n e c t a t p e rl ' a l t re e x t re m a t e r r a . C o n n e c t a l ' a l t re e x t re m a l s 5 V.D e i x a e l L E D c o n n e c t a t a l m a t e i x p i u q u e a b a n s .
A continuac ió escr iurem e l codi . A setup, dec larem e lp iu 2 com sort ida i e l p iu 4 com entrada. A loop,uti l itzarem una sentència if : s i a l comprovar e l p iu 4està a n ive l l a lt, posarem e l p iu 2 a n ive l l a lt, en cascontrar i posarem e l p iu a n ive l l ba ix tot apagant- lo. E l LED s ' encén quan e l po lsador es manté premut .
S e r i a l Moni t or
c l i c k t o o pe ns e r ia l win do w
voi d setup( ) {Ser i a l . begi n( 9600) ;
}
voi d l oop( ) {Ser i a l . pr i nt l n( ana l ogRead( A0) ) ;
}
un potenciòmetre és un resistorvariable. La seva resistència canviaquan es fa girar, tot augmentant o
disminuint segons el sentit enque es fa girar.
Ara establ irem una entrada analògica.Ut i l itzarem un potenciòmetre.
C o n n e c t a e l t e r m i n a l d e l m i g d e l p o t e n c i ò m e t re a l p i ua n a l ò g i c A 0 . C o n n e x t a u n e x t re m d e l p o t e n c i ò m e t rea 5 V i l ' a l t re a t e r r a .
Després d'haver carregat l'script a l'Arduino, clica el botóSerial Monitor per veure els valors a mesura que giresel potenciòmetre. S'obrirà una finestra i veuràs els valorsdins un rang entre 0 i 1024.
Primer mirarem el rang de valors que obtenim al girarel potenciòmetre uti l itzant el Serial Monitor . En el codiinicial itzarem l 'objecte serial al setup, configurant unavelocitat de 9600 bauds. A loop l legirem el valor delpiu analògic A0 i l ' imprimirem a l 'objecte serial amb lafunció println .
i nt sensor Val ue = 0;
voi d set up( ) {pi nMode( 3, OUTPUT) ;
}
voi d l oop( ) {sensor Val ue = anal ogRead( A0) ;anal ogWr i t e( 3, sensor Val ue/ 4) ;
}
5V
0V
5V
0V
5V
0V
Utilitzarem la modulació per amplada depolsos (PWM). És una manera de simularun valor analògic tot alterant la tensióentre el màxim i el mínim a diferent ritmeo cicle de treball. Es pot utilitzar la PWM enels pius 3, 5, 6, 9, 10 i 11.
cicle de treball del 0% - analogWrite(0)
cicle de treball del 50% - analogWrite(127)
cicle de treball del 100% - analogWrite(255)
Ara utilitzarem els valors variables que es reben del potenciòmetrecom atenuador per controlar un LED. Connecta l'ànode mitjançantun resistor al piu 3 de la placa i el càtode a terra.
Primer crearem una variable per emmagatzemar el valordel potenciòmetre. A setup definim el piu 3 com sortida.A loop emmagatzemem el valor que s'ha llegit del pin A0a la variable. Llavors escrivim el valor al piu 3, el del LED.Hem de dividir la variable entre 4 per tal de tenir un rangde valors entre 0 i 255 que és un byte.
La lluentor del LED canvia, entre completament apagati molt luent al girar el potenciòmetre.
S'ha acabat!.Aquesta és una introducciómolt breu. A les següentsvinyetes hi ha enllaços i
altres recursos. Proveu-lostots i en trobareu molts
més!.
EnllaçosProgramari
Descàrrega de programarihttp://arduino.cc/es/Main/Software
Referència del llenguatgehttp://arduino.cc/es/Reference/HomePage
On comprar
http://arduino.cc/es/Main/Buyhttp://store.arduino.cc/eu/index.php
Guieshttp://arduino.cc/es/Tutorial/HomePage
Projectes
http://arduino.cc/playground/Es/Projects
Llibreshttp://arduino.cc/playground/Es/Manuales
Traduït al català, adaptat i remaquetat per Antoni Ubieto Xirgas
Te x t i d i b u i x o s d e J o d y C u l k i nv e g e u - n e m é s a j o d y c u l k i n . c o m
Agraïments especials a Tom Igoe, Marianne Petit, Calvin Reid,al professorat i personal del Interactive TelecommunicationsProgram de la NYU, particularment Dan O'Sullivan,Danny Rozini Red Burns. Gràcies a Cindy Karasek, Chris Stein, Sarah Teitler,Kathy Goncharov i Zannah Marsh.Moltes, moltes gràcies al Arduino Team per oferir-nosaquesta plataforma de codi obert robusta i flexible.I gràcies a la animada, activa i sempre creixentcomunitat Arduino.
La traducció i adaptació d'Antoni Ubieto Xirgasés per tant també subjecta a la mateixa llicència
Introduction to Arduino by Jody Culkinestà subjecta a una llicència Creative CommonsAttribution-NonCommercial-ShareAlike 3.0Unported License.