TEKNOLOGIA DBH 4 Orioko Herri Ikastola
Ikaslea: Gela: Ikasturtea:
Egilea: I単aki Zarauz Leoz
OHI
DBH 4. maila
DBH 4.maila Teknologia Aurkibidea 1. Marrazketa teknikoa I: Sketch Up
2. or
2. Marrazketa teknikoa II: Layout
14. or
1. Elektronika digitala
28. or
2. Programazioa I: Scratch
68. or
3. Txertatutako sistemak I: Arduino
80. or
4. Txertatutako sistmak II S4A: Scratch for Arduino
151. or
5. Programazioa II: ArduBlock
159. or
6.G programazioa II: MyOpenLab
185. or
7. Arduino eta MyOpenLab
209. or
1 I単aki Zarauz Leoz
OHI
1.1.
DBH 4. maila
MARRAZKETA TEKNIKOA I: Sketch Up
1. gaia: MARRAZKETA ORDENAGAILUZ
1. gaia: “SKETCH UP” Ikaslea: Data: Irakaslea: Iñaki Zarauz Leoz
2 Iñaki Zarauz Leoz
OHI
DBH 4. maila
Erreferentzia gida
3 I単aki Zarauz Leoz
OHI
DBH 4. maila
Marrazketa teknikoa: “SKETCH-UP” programa Marrazketa teknikoa: “SKETCH-UP” programa 1. . ariketa 1. Programa ireki eta 5 cm-tako aldea duen karratua marraztu, erdigunean 2 cm-tako diametroa duen zirkunferentzia inskribatuaz.
2. Irudia marraztu eta “03_adib_3_SkechUp” izenaz gorde ezazu. 3. “Kota lerroak” marraztu itzazu.
4 Iñaki Zarauz Leoz
OHI
DBH 4. maila Marrazketa teknikoa: “SKETCH-UP” programa
2. ariketa 1. Programa ireki eta ondorengo pieza marraztu eta “04_adib_4_SkechUp” izenaz gorde ezazu.
2. “Kota lerroak” marraztu itzazu. 3. Piezaren bistak Portu itzazu, bisten barra-tresna eragiliz.
5 Iñaki Zarauz Leoz
OHI
DBH 4. maila
Marrazketa teknikoa: “SKETCH-UP” programa 3. ariketa 1. Programa ireki eta ondoko irudia marraztu.
2. “05_adib_5_SkechUp” izenaz gorde ezazu. 3. “Kota lerroak” marraztu itzazu. 4. “Pintura potea” erabiliz irudiak duen “textura” marraztu ezazu
6 Iñaki Zarauz Leoz
OHI
DBH 4. maila
Marrazketa teknikoa: “SKETCH-UP” programa 4. ariketa 1. Programa ireki eta ondoko irudia marraztu.
2. “06_adib_6_SkechUp” izenaz gorde ezazu. 3. “Kota lerroak” marraztu itzazu. 4. “Pintura potea” erabiliz piezaren “pisu” bakoitza kolore batez marraztu ezazu.
7 Iñaki Zarauz Leoz
OHI
DBH 4. maila
Marrazketa teknikoa: “SKETCH-UP” programa 5. ariketa 1. Programa ireki eta ondoko bistak dituen irudia marraztu “cavalieri” perspektiban.
2. “07_adib_7_SkechUp” izenaz gorde ezazu. 3. “Kota lerroak” marraztu itzazu.
8 Iñaki Zarauz Leoz
OHI
DBH 4. maila Marrazketa teknikoa: “SKETCH-UP” programa
6. ariketa 1. Programa ireki eta ondoko irudia eraiki: 10 mm x 20 mm x 30 mmtako “regleta” bat eraiki.
2. Irudia “bloke” bihurtu ezazu
3. Crtl eta
agindua erabiliz
“higitu” agindua erabiliz 3 aldiz kopiatu ezazu.
4. Graduatzailea erabiliz 2. alea 90 º biratu OZ ardatzaren inguruan 5. Graduatzailea erabiliz 3. alea 90º biratu OX ardatzaren inguruan. 6. Eskala agindua erabiliz 4. alea neurriz bikoiztu eta akotatu ezazu.
7. “08_adib_8_SkechUp” izenaz gorde ezazu. 8.
9 Iñaki Zarauz Leoz
OHI
DBH 4. maila
Marrazketa teknikoa: “SKETCH-UP” programa 7. ariketa: Eraikinen marrazketa 1. Skecht-up programa ireki. Aldiberean GoogleEarth programa ireki. 2. Marraztu beharreko erakinaren teiltua ikusgai duen irudia kokatu herraminta erabiliz.
3. Fatxada eraiki “adaptar fotografia” aukera erabiliz
10 Iñaki Zarauz Leoz
OHI
DBH 4. maila
4. “09_adib_9_SkechUp” izenaz gorde ezazu. 5. Ardatz lerroak modu egokian kokatu.
6. Eraikina marraztu “eredua” eta “argazkia” aldiberean erabiliz. 7. “Proyectar texturas desde foto” aukeraz fatxada zure eraikinaren gainean marraztu. 8. Eraikin “munduan” kokatu.
11 Iñaki Zarauz Leoz
OHI
DBH 4. maila Marrazketa teknikoa: “SKETCH-UP” programa
8. ariketa 1. DBHko eraikinaren egitura eraiki eta Google earth erabiliz, dagokion lekuan kokatu ezazu..
Eraikuntzarako oinarri gisa, ereikinaren plamoak erabili itzazu.
12 Iñaki Zarauz Leoz
OHI
DBH 4. maila
13 I単aki Zarauz Leoz
OHI
DBH 4. maila MARRAZKETA TEKNIKOA II: Layout
2. gaia: LAYOUT
2. gaia: “LAYOUT” Ikaslea: Data: Irakaslea: Iñaki Zarauz Leoz
14 Iñaki Zarauz Leoz
OHI
DBH 4. maila
Marrazketa teknikoa paperean eta ordenagailuan
“Layout” programa 1. ariketa 1. Programa ireki eta ondorengo irudia marraztu. a. Irudia marraztu. “01_adib_1_SkechUp” izenaz gorde ezazu.
b. “Equidistancia” agindua erabiliz, eta 1 cm-tako tartea utziaz, barrua hustu. c. Kota marrak erabiliz, neurriak ipini.
15 Iñaki Zarauz Leoz
OHI
4. ariketa
DBH 4. maila
Marrazketa teknikoa paperean eta ordenagailuan
“Layout” programa 2. ariketa 1. Programa ireki. 2. Irudia marraztu eta “02_adib_2_SkechUp” izenaz gorde ezazu. Kanpoko karratuak 100 cm neurtzen ditu eta barruko ziurkunferentziak 75 cm.
16 Iñaki Zarauz Leoz
OHI
DBH 4. maila
Marrazketa teknikoa paperean eta ordenagailuan
“Layout” programa 3. ariketa
1. Layout programa ireki eta ondorengo bistak marraztu leku egokietan.
17 Iñaki Zarauz Leoz
OHI
DBH 4. maila
Marrazketa teknikoa paperean eta ordenagailuan
“Layout” programa 4. ariketa
1. Layout programa ireki eta ondorengo bistak marraztu leku egokietan.
18 Iñaki Zarauz Leoz
OHI
DBH 4. maila
Marrazketa teknikoa paperean eta ordenagailuan
“Layout” programa 5. ariketa
1. Layout programa ireki eta ondorengo bistak marraztu leku egokietan.
19 Iñaki Zarauz Leoz
OHI
DBH 4. maila
Marrazketa teknikoa paperean eta ordenagailuan 6. ariketa
“Layout� programa
1. Layout programa ireki eta ondorengo piezaren bistak marraztu leku egokietan.
20 IĂąaki Zarauz Leoz
OHI
DBH 4. maila
Marrazketa teknikoa paperean eta ordenagailuan
“Layout� programa 7. ariketa
1. Layout programa ireki eta ondorengo piezaren bistak marraztu leku egokietan.
21 IĂąaki Zarauz Leoz
OHI
DBH 4. maila
Marrazketa teknikoa paperean eta ordenagailuan
“Layout” programa
8. ariketa
1. Sketch Up programa ireki eta ondorengo pieza marraztu. 2. Layout programa ireki eta dagozkion bistak marraztu.
22 Iñaki Zarauz Leoz
OHI
DBH 4. maila
Marrazketa teknikoa paperean eta ordenagailuan
“Layout” programa 9. ariketa
1. Sketch Up programa ireki eta ondorengo pieza marraztu. 2. Layout programa ireki eta dagozkion bistak marraztu.
23 Iñaki Zarauz Leoz
OHI
DBH 4. maila Marrazketa teknikoa paperean eta ordenagailuan
“Layout” programa
10. ariketa 1. Sketch Up programa ireki eta ondorengo pieza marraztu. 2. Layout programa ireki eta dagozkion bistak marraztu.
24 Iñaki Zarauz Leoz
OHI
DBH 4. maila Marrazketa teknikoa paperean eta ordenagailuan
“Layout” programa
11. ariketa 1. Sketch Up programa ireki eta ondorengo pieza marraztu. 2. Layout programa ireki eta dagozkion bistak marraztu.
25 Iñaki Zarauz Leoz
OHI
DBH 4. maila Marrazketa teknikoa paperean eta ordenagailuan
“Layout” programa 12. ariketa 4. Sketch Up programa ireki eta ondorengo pieza marraztu. 5. Layout programa ireki eta dagozkion bistak marraztu.
26 Iñaki Zarauz Leoz
OHI
DBH 4. maila
27 I単aki Zarauz Leoz
OHI
DBH 4. maila
Elektronika digitala
“ELEKTRONIKA DIGITALA” Ikaslea: Ikasturtea: Data: Irakaslea: Iñaki Zarauz Leoz
28 Iñaki Zarauz Leoz
OHI
DBH 4. maila
ELEKTRONIKA DIGITALA 1. Proiektua 2. Seinale motak a. Analogikoak
3. orr 5. orr
b. Digitalak c. Informazio unitateak: bit, byte, kb, Mb, ... d. Sistema bitarra e. ASCII kodea 3. Automatismoak a. Automatismo baten atalak b. Eskema elektronikoak 4. Boole-ren aljebra a. Boole-en aljebraren erabilera b. Ate logikoak 5. Ate logikoak a. And atea b. Or atea c. Not atea d. Nor atea e. Nand atea f. Xor atea g. Xnor atea 6. Egi taula 7. Oinarrizko ate logikoak 8. Ebatzitako zirkuikuak 9. Ariketak 10.Simuladoreak 11. Simulatzeko ariketak 12. Ebazteko ariketak
12.orr
15. orr
17. orr
22. 22. 24. 26. 28. 32. 37.
orr orr orr orr orr orr Orr
29 I単aki Zarauz Leoz
OHI
DBH 4. maila
1. jarduera 1. PROIEKTUA: a) “Diseinatu eta garagu ezazu bi etengailu dituen markagailua. A etengailua sakatzean markagailuak 1 (“bat”) zenbakia adieraziko du, eta B etengailua sakatzean, 2 zenbakia (“bi”) adierazi beharko du”.
30 Iñaki Zarauz Leoz
OHI
DBH 4. maila
0 2
1 3
b) “Aurreko zirkuitua egokitu ondorengo baldintzetan ere bete ditzan: A eta B sakatzen ez direnean 0 (“zero”) zenbakia adierazi beharko da A eta B aldiberean sakatzen direnean 3 (“hiru”) zenbakia markagailuan adierazi beharko da.
31 Iñaki Zarauz Leoz
OHI
DBH 4. maila 2. jarduera
2. Seinale motak Aldagi batek hartu ditzazkeen balioak, orokorrean, jarraiak edo ez-jarraiak izan daitezke. Jarraiak (analogikoak) dira denboran zehar edozein balio hartu dezaketenean eta ez jarraiak (digitalak), denboran zehar soilik balio mugatua hartu dezaketenean.
Analogikoa
Digitala
a. Seinale analogikoak Magnitude bat analogikoa da bi balioren artean edozein balio hartu dezakeenean. Adibidez, irudiko adibidean, 15ºC eta 16ºC artean, aldagaiak edozein balio hartu dezake: 15.01ºC, 15.02ºC, ...15.36ºC, ...etab... Naturako magnitude gehienak analogikoak dira: tenperatura, denbora, hezetasuna, argitasuna, korrontearen intentsitatea, boltaia, ... Aldameneko adibidean, denboraren zehar tenperaturaren aldaketa irudikatzen da. Magtitude analogikoa dela garbi ikusten da.
32 Iñaki Zarauz Leoz
OHI
DBH 4. maila
b. Seinale digitalak Aldagai batek hartu ditzazkeen balioak ez jarraiak direnean, hau da, balio multzo bateko bakioak hartzen dituenean, aldagaia digitala dela esaten da. Adibideako irudian, “T” aldagaiak soilik bi balio hartu ditzazke denboraren zehar: “0” edo “4, 5”
Beste adibide honetan, txirrinak tentsioa jasoko du sakagailuak aktibatzen direnean. Ondorioz, bere muturretako tentsioa pilak emandako 4,5 v izango da batzuetan eta 0 beste batzuetan.
Seinalea badago=1 Seinalea ez badago=0
George Boole (1815-1864) Funtzio logikoak matematika berri batez aztertu zitezkela proposatu zuen. “Boolen algebrak” jasotzen ditu erlazio guzti hauek, gaur egungo digitalizazioaren sorrera izan zena.
33 Iñaki Zarauz Leoz
OHI
DBH 4. maila
Ariketa_1: Ondoko seinalea, zein balio bitar sekuentziar dagokio? Adib1: 1100111101
Adib2:
Ariketa_2:
Datuak 1110
c. Informazio unitateak: bit, byte, kb, Mb, ... a) Bit: Oinarrizko informazio unitatea “bit”-a da, datu bitar batez adierazten dena: n=1 edo n=0 “1” bita
34 Iñaki Zarauz Leoz
OHI
DBH 4. maila
b) Byte: 8 bitez osatutako informazio unitateari esten zaio
c) Kb=Kilobyte: 1024 bytez osatutako unitateari deritzo. d) Mb= Megabyte: 1024 Kb-tez osatutako informazio unitatea. e) Gaur egun handiagoak ere erabiltzen dira: Gigabyte ( Gb), terabyte (Tb), ‌
d. Sistema bitarra George Boole matematikariak, zenbaki sistema berri bat bat aurkeztu zuen, gure zenbaki sistema hamartarraren ezaugarri berdinak dituena: sitema bitarra. Zenbaki sistema honetan, soilik bi dira erabiltzen diren zifrak ( 0 eta 1) eta gai da edozein zenbaki adierazi eta edozein eragiketa matematiko kalkulatzeko. Formalismo matematiko honi esker, gizakia gai da edozein informazio bit zerrenda baten modura adierazteko: soinua, irudia, boltaia, ... Adibidez:
Zein erlazio dago zenbaki sistema hamartarraren eta bitarraren artean?
35 IĂąaki Zarauz Leoz
OHI
DBH 4. maila
Sistema bitarrak 0 eta 1 zifrak erabiltzen ditu eta 2 zenbakian oinarritutako berredurak erabiltzen ditu edozein zenbaki adierazi ahal izateko. Bainan nola erlazionatzen dira zenbaki sistema hamartarra eta zenbaki sistema bitarra? Adib: 27 = 16+8+2+1 = 24+23+21+20 = 1·24+1·23+0·22+1·21+1·20 = 11011 110012 = 1·24+1·23+0·22+0·21+1·20 = 16+8+1 = 25 Ariketa_3: Nola adierazten dira bi zenbaki hauek beste sisteman? 18= 101012= Hamartarra
Bitarra
0 1 2 3 4 5 6 7
000 001 010 011 100 101 110 111
Ariketa 4: 4 digitu erabilita adierazi itzazu 8-tik 15ra bitarteko zenbaki hamartar guztiak
Ariketa_5: Zein zenbaki hamartar adierazten du ondoko kode bakoitzak?
36 Iñaki Zarauz Leoz
OHI
DBH 4. maila
Ariketa_6: Zein zenbaki hamartar adierazten du ondoko seinaleak?
Ariketa_7: Informazioa 4 digitunaka garraiatzen den sistema honeta, zein zenbaki zerrenda hari gara igortzen?
e. ASCII kodea Informatikaren munduan erabiltzen den kodea da, hizki, zenbaki eta bestelako ikurrei zenbaki bana atxekitzen dion kodea. ASCII kodearen bidez, hizkiak honela kodifikatzen dira:
37 I単aki Zarauz Leoz
OHI
DBH 4. maila
Ariketa_8: Zein hitz ari da argi sistema hau adierazten?
Ariketa_9: Nola esaten da “bit” ASCII kodean?
Ariketa 10: Zer dio seinale honek?
38 Iñaki Zarauz Leoz
OHI
DBH 4. maila
3.
jarduera
3. Automatismoak Automatismoa bat makina bat gobernatzeko erabiltzen den kontrolsistema da, behin eta berriz errepikatzen diren lanetan gizakia ordezkatzen duena. Automatismoa erabilitako teknologiaren araberakoa da ( elektrikoa, neumatikoa, hidraulikoa edo elektronikoa) Gaur egun gehien eraikitzen diren automatismoak elektronikoak dira, eraikitzeko sinpleenak, merkeenak eta txikienak direlako. Beste motatako automatismoak garestiagoak, mantenu zailagokoak, leku gehiago okupatzen dute eta zuhurtasun txikiagokoak dira, bainan hala ere ezin dira baztertu, hainbat lan esparrutan ezinbestekoak direlako. Automatismoaren eraikuntza erbilitako teknologiaren araberakoa bada ere, automatismoaren diseinua berdina da teknologia guztietarako. Beraz, lehenik automatismoa diseinatuko dugu, edozein teknologia erabili nahi bada ere (elektronikoa, hidraulikoa, neumatikoa, etab...), bigarrengo fase batetan, teknologia hauetako bat aukeratu eta diseinatutakoa eraikitzeko. Gai honen bukaeran honelako buruketak askatzeko gai izango gara:
“ 5 etengailu dituen logela batetan, argia piztea nahi da aktibatutako etengailu kopurua bakoitia denean, eta itzalita mantenduko da aktibatutako etengailu kopurua bikoitia denean�
39 IĂąaki Zarauz Leoz
OHI
DBH 4. maila
a. Automatismo baten atalak Automatismo baten osagaiak ondorengo eskemari jarraituz sailkatu daitezke: 1. Sarrerako osagaiak: Kanpotiko informazioa jaso eta automatismora bidaltzeko ardura duten osagaiak dira ( etengailuak, mikroruptoreak, argi sentsoreak, tenperatura sentsoreak, ...), eta automatismoaren ingurua nolakoa den eta nola aldatzen den adieraziko dute.
2. Automatismoa: Sarrerako osagaiek emandako informaziao bildu eta irteerako aginduak zein izango diren kalkulatzeaz arduratzen den gailua da. Gehienetan automatismoa elektriko edo elektronikoa izango da. Gaur egun, industri mailan PLC edo automata programagarriak dira gehien erabiltzen diren automatismoak, bainan lan honetarako gero eta garrantzi gehiago hartzen ari dira ordenagailuak. 3. Irteera osagaiak: Aginduak betetzeko helburua duten gailuen multzoari esaten zaio (motoreak, argiak, led-ak, txirrinak, ...), automatismoak esandakoa bete eta lana egiteko helburua dutenak. S a rr e r a
Automatismoa
ir t e e r a
Sarrerako seinaleak hizki xeheaz adierazten dira (a, b, c, ...) eta irteerako seinaleak hizki larriaz (A, B, C, ...) 40 I単aki Zarauz Leoz
OHI
DBH 4. maila
a Automatismoa
A
b
B
c
C
d Orokorrean, irteerako seinale batzu lortu nahi dira sarrerako seinaleen arabera. Informazio honen arabera diseinatu egiten da automatismoa, ondoren teknologia bat aukeratu ( elektrikoa, neumatikoa, ...) eta automatismoa eraikitzeko.
Ariketa 11: Aurreko sailkapenaren arabera ondorengo osagai elektronikoak sailkatu: 1) 3. LDR fotoerresistentzia 4. Motorea 2)
5. Led diodoak
6. Errelea
41 I単aki Zarauz Leoz
OHI
DBH 4. maila 4. jarduera
4. Boole-ren aljebra a. Boole-en aljebraren erabilera Boole-ren aljebra soilik bi egoera adierazten dituzten eragileekin egiten du lana: “0” eta “1” (Egia ala gezurra; Irekita ala itxita; Piztuta ala itzalita; ...) Honela bi egoeratan egon daitezkeen gailuetan erabili ahal izango da: 1 = aktibatuta = konektatuta= piztuta= martxan= ... 0 = desaktibatuta= konektatu gabea= itzalita= geldirik=...
=1 =1
=0 =0 121lgjisdf=1=1=
0
=
1
=
b. Ate logikoak Edozein zirkuitu elektriko, elkar loturiko hainbat osagaiez eratzen dela ikusi genezake. Irteerako osagai bat elikatzeko asmo soila duten osagai desberdinen arteko lotura hiru modutara gauzatu daiteke: serie, paralelo eta elkarketa mistoa.
42 Iñaki Zarauz Leoz
OHI
DBH 4. maila
Adibidez:
Irudiko zirkuituan, lotura mistoa duten hiru osagai ditugu (a, b eta c), argi bat ( L) pizteko helburua dutenak. Etengailu horietako bakoitza bi egoeratan aurkitu daiteke: itxita ( 0) ala irekita (1). Sortzen diren konbinaketa guztietatik, batzuk argiaraino korrontea iristea posible egingo dute (orduan argiaren egoera 1 izango da), bainan beste batzuk ordea ez (argiaren egoera 0 izango da une horietan). Zenbat konbinaketa posible dira sarrerako gailu kopuruaren arabera? n= sarrerako gailu kopurua m= 2n = irteerako aukera posibleak Adib: n=3
m= 23= 8
Adibideko 3 etengailuak (a,b,c) 8 aukera desberdin sortzen dituzte argia piztu ala itzaltzeko ( L=0 ala L=1), alegia 8 zirkuitu desberdin daude hauek elkarrekin lotzeko (serie, paralelo eta misto) Ondorioz, edozein zirkuitu elektriko, sarrerako aldagai binario multzo batez (kontaktuaz) eta irteerako aldagai binanio multzo batez (eragileaz) osatutako konbinaketa izango da. Adibidean, argiaren egoera aldaketa ( itzalita=0 ala piztuta=1) sarrerako etengailuen egoerak gobernatuta etorriko da ( a, b eta c) eta hauek elkarri lotzeko moduaren arabera (serie, paralelo edo misto). Lotura hau ekuazio matematiko batez adierazi ahal izango dugu, “funtzio logikoa� deritzona. Zirkuituaren xehetasun guztiak funtzio honen bitartez aztertu ahal izango ditugu modu garbiago batetan.
43 IĂąaki Zarauz Leoz
OHI
DBH 4. maila
5. Ate logikoak: And, or, not, nor, xor, xnor
Hauek dira definitzen diren funtzio logikoak:
Ate logikoak “txip”-etan datoz integratuta, hainbat hanketako silizio “pastiletan” txertatuta
a. And atea (Y=eta, biderkadura,·) Eragiketa honek bi edo aldagai gehiago erlazionatu ditzazke. Honela definitzen da: Eta ( “ Y ” ) eragiketaren emaitza 1 izango da aldagai edo konstante guztiak 1 balioa dutenean. Bestelako kasuetan 0 balio izango du. 0x0=0 0x1=0 1x0=0 1x1=1
a
b
B
0 0 1 1
0 1 0 1
0 0 0 1
44 Iñaki Zarauz Leoz
OHI
DBH 4. maila
Funtzio honi ere “biderkaketa logikoa” izana ere ematen zaio. “x” ikurraz edo “ · “ ikurraz adierazten da, nahiz eta gehienetan ikurrik ere ez da erabiltzen. Adibidez: a x b x c = a·b·c = a b c Gaur egun irudiko zirkuitu elektroniko integratu batetan eraikitzen da “txip” modura
Bi sarrera seriean daudenean funtzio hau betetzen dute.
Hainbat ate logiko txipetan bilzen dira. Irudian 7400 serieko txip bat duzue. 14 hanka ditu eta 4 and ate logiko integratzen ditu bere baitan.
45 Iñaki Zarauz Leoz
OHI
DBH 4. maila
b. Or atea (O=or= “edo”, + batura) Aldagai edo konstante bat baino gehiagori aplika dakioke eta honela definitzen da: Edo ( “ O ” ) eragiketaren emaitza 1 izango da aldagai edo konstanteetako edozeinek 1 balioa hartzen duenean. Bi aldagaien kasuan, adibidez, honera eragiten du: 0+0=0 0+1=1 1+0=1 1+1=1
a
b
B
0 0 1 1
0 1 0 1
0 1 1 1
Edo eragiketa adierazteko “+” ikurra erabiltzen da eta “batura logikoa” izenaz ere ezagutzen da. Gaur egun irudiko zirkuitu elektroniko integratu batetan eraikitzen da “txip” modura Bi sarrerako seinale paralelon daudenean funtzio hau betetzen dute.
46 Iñaki Zarauz Leoz
OHI
DBH 4. maila
c. Not atea ( “ a ”=, aurkakoa ) Eragiketa hau aldagai bati, konstante bati edo hauen konbinaketa bati aplikatu dakioke. “Not” eragiketa adierazteko aldagaiaren gainean lerro bat marrazten da. Adib: not(a) = a Honela definitzen da:
a
B
10
0
1
0 1
1
0
Aldagaiak “1” balio badu, “not” eragiketak “0” balioan bihurtze du. Aldagaiak “0” balio badu, not eragiketak “1” balioan transformatzen du. Bi dira funtzio hau betetzen duten operadore elektriko/elektronikaok: “N.C” motako sakagailuak eta “Not” inbertsoreak, zirkuitu integratu modura “txip”-etan saltzen direnak.
d. “Nor” atea Bi sarreretarako “Nor” funtzioa honela definitzen da: a
b
S
0 0 1 1
0 1 0 1
1 0 0 0
Irteera aktibatu egingo da soilik sarrera guztiak desaktibatuta daudenean (Or funtziaren aurkakoa da)
47 Iñaki Zarauz Leoz
OHI
DBH 4. maila
e. “Nand” atea Bi sarreretarako “Nand” funtzioa honela definitzen da: a
b
S
0 0 1 1
0 1 0 1
1 1 1 0
And funtzioaren aurkakoa izanik, sarrera guztiak aktibatu ezik beti aktibatuko da .
f. XOR atea
a
b
S
0 0 1 1
0 1 0 1
0 1 1 0
“a” eta “b” sarrerak desberdinak direnean aktibatuko da
g. XNOR funtzioa a
b
S
0 0 1 1
0 1 0 1
1 0 0 1
“a” eta “b” sarrerak berdinak direnean aktibatuko da
48 Iñaki Zarauz Leoz
OHI
DBH 4. maila
6. Egi taula Funtzio logiko bat adierazteko modu desberdinak daude. Ikasturte honeta bi modu aztertuko ditugu: “Egi-taula” eta “Karnaught-en mapa”. Egi-taula oso erabilia da sarrerako aldagaien balioaren arabera irteerako aldagaiaren balioa zein den jakiteko. Egi-taulak bi atal ditu: Ezkerreko zutabeetan sarrerako aldagaiak idazten dira eta eskuineko zutabeetan irteerako aldagaiek hartzen dituzten balioak adierazten dira. Adibidez:
Ondorioz: L= a· b· c
a
b
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
c L 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 1
7. Oinarrizko ate logikoak Ondorengo orrialdeetan zirkuitu elektriko sinpleak erabiliz funtzio desberdinak adieraziko dira, lanpara baten adibidean, noiz piztuko den (1) eta noiz itzaliko den (0) adieraziko delarik zirkuituaren egoeraren arabera. Logikaren esparruan oinarrizko lau funtzio daude: “Berdintza”, “aurkakoa”, “eta” , “edo”.
49 Iñaki Zarauz Leoz
OHI
DBH 4. maila
5. jarduera
8. Ebatzitako zirkuikuak 1) Ondoko zirkuitua aztertu dezagun:
Zirkuituaren egi taula idatzi 2)
Ondoko zirkuitua aztertu dezagun:
Zirkuituaren egi taula idatzi 3) Ondoko zirkuitua aztertu dezagun:
i) ii)
Egi taula idatzi Zein egoeratan piztuko da argia?
50 I単aki Zarauz Leoz
OHI
DBH 4. maila
4) Ondoko zirkuitua aztertu dezagun:
i) Zirkuituaren egi taula idatzi ii) Zein egoeratan piztuko dira bi bonbilak? 5) Ondoko zirkuitua aztertu dezagun:
Zirkuituaren egi taula idatzi 6) Ondoko zirkuitua aztertu dezagun:
i) Zirkuituaren egi taula idatzi ii) Noiz piztuko da lanpara? 7) Ondoko zirkuitua aztertu dezagun:
i) Egi taula idatzi ii) Ekuazioa idatzi 51 I単aki Zarauz Leoz
OHI
DBH 4. maila
8) Ondoko zirkuitua aztertu dezagun
i) Egi taula idatzi ii) Noiz egongo da L1 lampara piztuta? iii) Eta noiz egongo da itzalita? 9) Ondoko zirkuitua aztertu dezagun:
i) Zirkuituaren ekuazioa idatzi ii) Noiz piztuko da lanpara? 10) Ondoko zirkuitua aztertu dezagun:
i) Zein da zirkuituaren ekuazioa? ii) Noiz piztuko da lanpara?
52 I単aki Zarauz Leoz
OHI
DBH 4. maila
6. jarduera 9. Ariketak 1. ariketa:
http://joshblog.net/projects/logic-gate-simulator/Logicly.html helbidean sartu eta simulatzailea erabili ondorengo zirkuituak nola funtzionatzen duten aztertzeako:
1. Ondoko zirkuitua eraiki:
i) ii) iii)
Zirkuituaren egi taula marraztu Zein baldintzetan piztuko da bonbila? “Krokodrile clips” programa ireki eta zirkuitu honi dagokion zirkuitu elektronikoa eraiki.
53 Iñaki Zarauz Leoz
OHI
DBH 4. maila
iv) Ondoko osagaiak erabiliz zirkuitua osatu ezazu:
2. ariketa: “Lantegi batetan kanpoko dei sistema bat ipini nahi da, kanpokaldean dagoen sakagailu batez aktibatuko dena edo atea aktibatzen denean konektatuko dena�. a) Egi taula idatzi. b) Funtzioa idatzi c) Zirkuitua marraztu d) Ate logikoak erabiliz simulatu ezazu (http://joshblog.net/projects/logic-
gate-simulator/Logicly.html) a b Lantegia
a
b
0 0 1 1
0 1 0 1
F 0 1 1 1
54 IĂąaki Zarauz Leoz
OHI
DBH 4. maila 7. jarduera
10. Simuladoreak. i) Igogailua “Aszensore baten aginte automatismoa diseinatu nahi dugu. Aszensore honek 15 kg eta 75 kg bitarteko objetuak altza behar ditu egoera desberdinetan. Aszensoreak pisuak neurtzeko bi malgukiren gainean dago mantenduta, eta hiru karrera amaierako etengailuen arabera pisuen neurriak hartuko ditu, irudian ikusten den modura. Pisuaren arabera, “a”, “b” eta “c” sakagailuak aktibatuko dira eta honen arabera, baldintza hauek beteko ditu aszensoreak igotzeko ala ez erabakitzeko:
a) Aszensore hutsik dagoenean funtzionatuko du. b) 5 eta 15 kg bitarteko pisuentzako ez du funtzionatu beharko (“a” aktibatutakoan” c) 15 kg eta 75 kg bitarteko pisuentzako funtzionatu beharko du (“a” eta “b” aktibatuta) d) 75 kg baino gehiagoko pisuentzako ez du funtzionatu beharrik ( “a”, “b” eta “c” aktibatuta) 1) Egi taula idatzi, 2) Zirkuitua irudikatu.
55 Iñaki Zarauz Leoz
OHI
DBH 4. maila
a
b
c
M
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
1 0 1 0
56 I単aki Zarauz Leoz
OHI
DBH 4. maila
ii. Prentsatzeko makina
Ondoko baldintzak bete behar dituen prentsatzeko makina baten aginte mandua diseinatu ezazu sakagailuak erabiliaz. o Makina isolaturiko lokal batetan kokatzen da, langile bakar batek erabiltzeko helburuaz giltzatutako ate bat zeharkatuta erabili daitekeena soilik. o Makinak bi etengailu ditu ( “a” eta “b”) , istripuak ekiditeko biei eraginda jartzen delarik makina martxan. o Nahi izanez gero, aldameneko gelan dagoen “c” sakagaluari eraginda ere jarri liteke martxan.
a. Egi–taula idatzi b. Zirkuitua marraztu a
b
c
P
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
0 1 0 0 1 -
57 Iñaki Zarauz Leoz
OHI
DBH 4. maila
iii) Ondorengo zirkuitua eraiki. Zein baldintzetan piztuko da bonbila bakoitza?
58 I単aki Zarauz Leoz
OHI
DBH 4. maila 8. jarduera
11. Simulatzeko ariketak 1go ariketa: Andonik bi lekutatik piztu nahi du haizegailua: lurrean etzanda dagoela edo mahaian eserita dagoela. Ikasitakoa aztertuz, bi etengailu horiek “edo” funtzioaren arabera elkartuz helburua beteko dela ikusiko dugu, beraz, paraleloan lotuz eraikiko dugu zirkuitu elektrikoa
2.ariketa: Banketxe bateko diru kutxan, bi lekuetatik aldiberean bi etengailuz irekitzeko sistema ipini nahi dute, segurtasun neurri modura lapurretak saiezteko. Ikasitakoaren arabera, bi etengailuak “eta” funtzioaren arabera egon beharko dute konektatuta: kutxa irekitzen duen motorea aktibatuko da etangailu bat eta bestea aldiberean aktibatzen direnean.
a
b
M
0 0 1 1
0 1 0 1
0 0 0 1 59
Iñaki Zarauz Leoz
OHI
DBH 4. maila 9. jarduera
12. Ariketak 1. Ariketa: “ESA Europako espazio agentziak a,b, c, d eta e kandidatuetatik martitzera joango den misio batetarako astronautak hautatu behar ditu, ondoko baldintza hauek kontutan harturik:” a eta a: edo biak dihoazte edo ez dira joango. a edo/eta b joan behar dute, bainan biak elkarrekin ez. c edo e joan behar dute, bainan biak elkarrekin ez. d baldinbadoa, orduan b ere joan beharko du. e baldinbadoa, orduan c eta d ere joan beharko dute. Zein joango da? Ebazpena: a 0 0 0 0 0 0
b
c
d
e
F
0 0 0 0 0 0
0 0 0 0 1 1
0 0 1 1 0 0
0 1 0 1 0 1
0 0 0 0 0 0
2. Ariketa 60 Iñaki Zarauz Leoz
OHI
DBH 4. maila
“3 etengailu dituen logela batetan, argia piztu nahi da aktibatutako etengailu kopurua bikoitia denen.� a) egi taula idatzi b) Zirkuitua marraztu a
b
c
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
F 0
1
61 IĂąaki Zarauz Leoz
OHI
DBH 4. maila
3. Ariketa “ Hiru etengailu dituen logelan, argiak piztu nahi dira aktibatutako etengailu kopurua bakoitia denean” a) egi taula idatzi b) Zirkuitua marraztu a
b
c
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1
0 1 0 1 0
F
0
62 Iñaki Zarauz Leoz
OHI
DBH 4. maila
4. Ariketa “Aszensore baten hutsegite sistema diseinatuko dugu. Motorea, atea eta erabiltzailearen deia hartuko dira kontutan. Sistemak txirrina jo beharko du aszensorea gaizki dabilenean�. a) egi taula idatzi b) Zirkuitua marraztu m
a
e
0 0 0 0 1 1 1 1
0 0 1 1 0
0 1
F
63 IĂąaki Zarauz Leoz
OHI
DBH 4. maila 10. jarduera
13. Zirkuituak eraiki 1. Ondoko zirkuituak eraiki
Osagaiak:
1. 2. 3. 4. 5. 6.
Board plaka Sorgailua Bi konmutadore 7400 txipa Erresistentzia Led diodoa
64 I単aki Zarauz Leoz
OHI
DBH 4. maila
2. Ondoko zirkuitua eraiki
65 I単aki Zarauz Leoz
OHI
DBH 4. maila
3. Ondoko zirkuitua eraiki
66 I単aki Zarauz Leoz
OHI
DBH 4. maila
67 I単aki Zarauz Leoz
OHI
DBH 4. maila
SCRATCH ARIKETAK
“SCRATCH” Ikaslea: Ikasturtea: Data: Irakaslea: Iñaki Zarauz Leoz
68 Iñaki Zarauz Leoz
OHI
DBH 4. maila
AURKIBIDEA I. DESKRIBAPEN OROKORRA
3. or
II. PROIEKTUAK: 1.
ARIKETA: ARRAIN ONTZIA
5. or
2.
ARIKETA: ROBOT HIGIKARIA
6. or
3.
ARIKETA: SEMAFOROA
7. or
4.
ARIKETA: PACKMAN BIDEOJOKUA
8. or
5.
ARIKETA: PONG BIDEOJOKUA
9. or
6.
ARIKETA:
ERAGIKETA MATEMATIKOAK
10. or
7.
ARIKETA:
BIGARREN MAILAKO EKUAZIOAK
11. or
8.
ARIKETA:
MARTZIANITOAK
12. or
69 I単aki Zarauz Leoz
OHI
DBH 4. maila
I. DESKRIBAPEN OROKORRA
1) HISTORIA PIXKA BAT
Scratch informatika-aplikazio bat da nagusiki haurrei zuzendua, interfaze grafiko sinple baten erabileraren bitartez ordenagailuen programazioaren kontzeptuak esploratzea eta saiakuntzak egitea baimentzen diena. Scratchek LOGO lengoaia erabiltzen du, lengoaia autonomoa errazten duen programazio-lengoaia. MITeko (Massachussets Institute of Tecnology) Media_lab laborategiko "the Lifelong Kindergarten group" taldeak garatzen du, Mitchel Resnick-ek zuzendua. 2007ko udan agertu zen lehen aldiz. Scratch instalatu eta birbanatu ahal da modu askean edozein ordenagailutan Windowsekin,MAC OS X, edo, Linux. Scratch izena scratching-aren teknikatik eratorria da, eta hizkuntzari zein haren aplikazioari dagokio. "Scratching" musikalaren antzekotasuna piezen berrerabilpen errazean datza: Scratchen objektu guztiak, grafikoak, soinuak eta komandoen sekuentziak modu errazean inportatu ahal dira 70 I単aki Zarauz Leoz
OHI
DBH 4. maila
programa berri batean eta hainbat eratan konbinatu daitezke, hasiberriei emaitza azkarrak lortu eta gehiago saiatzeko eragiten diena. Programa hau erabili ahal dugu, haren lema esaten duenez, programatu, sortu eta jokatzeko. Scratch mundu osoan erabiltzen da ingurune diferente askotan: eskolak, museoak, komunitate zentroak eta etxeak. 6-16 urtekoentzat zuzenduta dago baina adin guztietako jendeak erabili du Scratch. Adibidez, haur txikiek proiektuak sortu ahal dituzte haren gurasoekin edo anai nagusiagoekin, eta unibertsitateko ikasleek zientzietako edo konputaziosarrerako eskolaren batean. Diseinuan, lehentasun nagusia lengoaia eta ingurune intuitiboa egitea zen, programazioan aurretiko esperientzia ez zuten haurrentzat. Kontraste handia dago funtzio multimedia zein hari anitzeko programazio-estiloa ahaltsuaren eta Scratch programazio-lengoaiaren irismen mugaturen artean. Erabiltzaile-interfazeak pantaila zatitzen du zenbait paneletan Scratchen garapenaren ingurunerako: ezkerrean blokeen paleta, kolore diferenteekin funtzioaren arabera, informazioaren erdian momentuko sprite-a eta scripten area, eskuinean agertokia eta sprite-en (ordenagailugrafikoen mota) zerrenda Erlaitz diferenteak dauzka hainbat elementu atzitzeko: programak (animazioetako aginduekin) eszenatokiak (animazio beraren era desberdinak) eta soinuak . Gure Scratch sorkuntza partekatu ahal dugu bere web-orrian: http://scratch.mit.edu. Sorkuntza programatik gorde daiteke, web-orrian kontu bat sortu eta gero. Scratchen kontu bat edukita sorkuntza partekatu ahal izango dugu Scratch beste erabiltzaile batzuek ikusi ahal izan dezaten. Scratch.mit.edu orritik animazioa partekatu ahal izango dugu beste orri batzuetan.
71 I単aki Zarauz Leoz
OHI
DBH 4. maila
II. PROIEKTUAK 6. ariketa: ARRAIN ONTZI BIRTUALA “Diseinatu eta eraiki ezazu arrainontzi birtual bat, non, gorako, beherako, ezkerreko eta eskuineko geziei sakatzerakoan, arraiak gora-behera-ezkerrara eta eskuinera higituko diren.”
72 Iñaki Zarauz Leoz
OHI
DBH 4. maila
7. ariketa: LERRO JARRAITZALEA “Diseinatu eta eraiki ezazu agertokian marraztutako ibilbide bat jarraitzeko gain den robot higikaria. Robotak bi “antena” izango ditu: Ezkerreko antena=gorria Eskuineko antena=urdina. Ezkerreko antenaz ibilbidea ukitzean, esquinera higituko da Eskuineko antenaz ibilbidea ukitzean, ezkerrera higituko da. Ibilbidea ukitzen ez duenean, aurrera higituko da.”
73 Iñaki Zarauz Leoz
OHI
DBH 4. maila
8. ariketa: “SEMAFOROA” “Diseinatu eta eraiki ezazu semaforo batez gobernatutako gurutzebidea. Semaforoaren egoera 10 segundura aldatuko da. Semaforoa gorria denan, ibilgailuak gelditu eta oinezkoak zebrabidetik igaroko dira.”
74 Iñaki Zarauz Leoz
OHI
DBH 4. maila
9. ariketa: “PACKMAN BIDEOJOKUA” “Diseinatu eta eraiki ezazu PackMan bideojokua. Joku baldintzak:
Packmana ezker/eskuin/gora/behera geziez gobernatuko da.
Ibilbidean zehar topatutako puntito horiak jatean, puntu bana irabaziko da.
Mamuak ukitzean, jokua amaitutzat emango da.”
75 Iñaki Zarauz Leoz
OHI 10.
DBH 4. maila ariketa: “PONG BIDEOJOKUA”
“Diseinatu eta eraiki ezazu Pong bideojokua, non, pelota ezker/eskuin higitzen den bitartean, bi teklaz, jokalariek (gora/behera teklaz, adibidez) mugituko dute dagokien pala.”
76 Iñaki Zarauz Leoz
OHI
DBH 4. maila
11. ariketa: “BATUKETAK, KENKETAK, BIDERKETAK ETA ZATIKETAK” “Proiektu honek 3 joku desberdin eraikitzea proposatzen ditu: a) Diseinatu eta eraiki ezazu bi batugaien balioa eskatu eta baturaren emaitza kalkulatuko dituen bideojokua.
b) Diseinatu eta eraiki ezazu biderketak egiten dituen bideojokua. c) Diseinatu eta eraiki ezazu zatiketak egiten dituen bideojokua. i) Zatiketa osoa bada, zatidura pantailan adieraziko da. ii) Zatidura osoa ez bada, zatidura osoa eta hondarra adieraziko dira. iii) Eta zatitzailea 0 bada, zatiketa ezinezkoa dela adieraziko da.”
77 Iñaki Zarauz Leoz
OHI
DBH 4. maila
12. “
ariketa: “BIGARREN MAILAKO EKUAZIOAK”
Diseinatu eta eraiki ezazu bigarren mailako ekuazioak ebazten
dituen joku bat., non, jokuak ekuazioaren a, b eta c koefizienteen balioak eskatuko dituen, eta dagokion formula erabiliz, ekuazioaren bi soluzioak aurkeztuko ditu, baldin eta errokizuna positiboa bada, zeren, negatiboa izanezkero, ekuazioak soluziorik ez duela adieraziko da.”
78 Iñaki Zarauz Leoz
OHI 13.
DBH 4. maila ariketa: “MARZIANITOAK”
“Diseinatu eta eraiki ezazu marzianitoen bideojoku klasikoa.”
79 Iñaki Zarauz Leoz
OHI
DBH 4. maila
ARDUINO
“Arduino”
Ikaslea: Gela: Ikasturtea: Data: Irakaslea: Iñaki Zarauz Leoz
80 Iñaki Zarauz Leoz
OHI
DBH 4. maila
81 I単aki Zarauz Leoz
OHI
DBH 4. maila “Can't buy what I want because it's free”- Pearl Jam
ARDUINOA IKASTETXEAN 0. HITZAURREA
1
1. KAPITULUA: 1.1. Zer da Arduinoa? ARDUINO FENOMENOA
2
1.2. Arduinoa ikastetxean
3
1.3. Zergatik Arduinoa?
5
2.1. Arduino Uno-a 2. KAPITULUA: HARDWAREA
7 6
2.2. Sumarioa
8 7
2.3. Eskemak eta planoak
8
2.4. Elikadura
9
2.5. Sarrera-irteerak 2.5.1. I/O digitalak (eta PWM irteera analogikoa) 2.5.2. Sarrera analogikoak 2.5.3. Beste konexio-pinak 2.6. Komunikazioa
9
9 11 12
13
3.1. Arduinoa SOFTWAREA instalatu 3. KAPITULUA:
14 14
3.2. Arduino IDEa 3.2.1. Erreminta-barra 3.2.2. Menuak
19
4. KAPITULUA: PROGRAMAZIOA 4.1. Egitura 4.1.1. setup() 4.1.2. loop() 4.1.3. Funtzioak () 4.1.4. Giltzak {} 4.1.5. Puntu eta koma ; 4.1.6. Iruzkinak // 4.2. Aldagaiak 4.2.1. Aldagaien erabilera-eremua 4.2.1.1. Aldagai lokalak 4.2.1.2. Aldagai globalak
19 20
26 26 26 27 27 28 28 29 29 29
82 Iñaki Zarauz Leoz
OHI 4.2.2. Aldagai motak 4.2.2.1. Char 4.2.2.2. Byte
DBH 4. maila 30
83 I単aki Zarauz Leoz
OHI 4.2.2.3. Integer 4.2.2.4. Long 4.2.2.5. Float 4.2.2.6. Array 4.2.3. Konstanteak 4.2.3.1. True/flase 4.2.3.2. High/low 4.2.3.3. Input/output 4.2.4. Eragiketak 4.2.4.1. Konposizio-eragiketak 4.2.4.2. Konparaketa-eragiketak 4.2.4.3. Eragiketa logikoak 4.2.4.4. Eragiketa matematikoak 4.2.5. Zenbaki aleatorioak 4.2.5.1. randomSeed() 4.2.5.2. random() 4.2.6. Denbora-funtzioak 4.2.6.1. delay() 4.2.6.2. millis() 4.2.7. Fluxu-kontrola 4.2.7.1. if(){} else {}
4.2.7.2. for(){} 4.2.7.3. while(){} 4.2.7.4. do...while(){} 4.2.8. I/O digitalak 4.2.8.1. pinMode() 4.2.8.2. digitalRead() 4.2.8.3. digitalWrite() 4.2.9. I/O analogikoak 4.2.9.1. analogRead() 4.2.9.2. analogWrite() 4.2.10. Serie-funtzioak 4.2.10.1. Serial.Begin() 4.2.10.2. Serial.Print() 5. KAPITULUA: ARDUINOA KONEKTATU 5.1. Sarrera digitalak 5.1.1. Pull Up konexioa 5.1.2. Pull Down konexioa 5.2. Sarrera analogikoak 5.2.1. Hiru hariko sentsoreak 5.2.2. Bi hariko sentsoreak 5.3. Irteera digitalak 5.4. Irteera analogikoak 5.4.1.1. Kontsumo txikikoak < 40mA 5.4.1.2. Kontsumo handiagokoak > 40 mA 5.5. Kontrolagailuak
DBH 4. maila
33
34
38 39 39
42
43 44
47 47 48 48 49 49 49 50
51 51
51 52 84
I単aki Zarauz Leoz
OHI
DBH 4. maila
6. KAPITULUA: ARDUINOAREKIN PRAKTIKAK 6.1. Blink
54 55
6.2. Alarma bisuala
58
6.3. Inklinazio-detektorea
61
6.4. DYAko anbulantzia
64
6.5. Kandela
67
6.6. Potentziometro baten irakurketa
69
6.7. Kontatzailea
72
6.8. Solfeo de Morfeo
76
6.9. Led-a ordenagailutik agindu
79
6.10. Errelea
80
6.11. Motorraren kontrol digitala
83
6.12. Motorraren kontrol analogikoa
85
6.13. Serbomotor baten kontrola
88
6.14. Stepper-a
91
6.15. LCD pantaila
95
6.16. FSR presio sentsorea irakurtzen
98
6.17. Termometro digitala
102
6.18. Proiektua: Joystic batekin bi serbo eta laserra kontrolatu.
105
7. ERANSKINA
109
8. BIBLIOGRAFIA
110
85 I単aki Zarauz Leoz
1. Arduino fenomenoa HITZAURREA Eta guztiek jartzen didate aurpegi bera. “Arduinoa?” Eta, noski, pixka bat desanimatzen nau zer den sinple esaten ez jakiteak. Hala, bada, kontu sakonagoetan sartu aurretik, arnasa firme hartzen dut, tartetxo bat egin, eta “ezer ez” diot ahopean, “honelako gauza bat baino ez da”, eskuarekin parafina pusketa baten tamainako karratutxo bat marraztuz. Liburu honek irakurlea Arduinoaren erabilerara hurbiltzea du helburu. Elektronikaren nahiz programazioaren oinarrizko ezagutzak dituenarentzako gida gisa sortu da, prototipoak diseinatu eta eraikitzeko garaian lagungarri izango zaiona. Funtsean, hardware libreak niregan sortu duen esperimentatzen jarraitzeko gogoa azaleratzen du, baliabide gutxi dituztenei ere zientzia eta teknologia eskuragarri egiteko Arduinoak sortu duen bideari euskaraz adar txiki bat irekitzeko ilusioa. Arduinoa ikastetxean erabiltzeko gida hau osatzeko garaian, Interneten aurki daitekeen informazio amaigabea antolatu, funtzionalena hartu, eta sinple eta labur azaltzen saiatu naiz zer den Arduinoa eta zertarako erabil litekeen azaltzeko. Ia informazio guztia http:/www.arduino.cc webgunetik edo bertan inspiraturiko manualetatik aterea dago, eta, Creative Commons AttributionShareAlike 3.0 License. lizentziapekoa izaki, berriz ere lizentzia horrekin argitaratua izan da.
94
1. Arduino fenomenoa
1. KAPITULUA: ARDUINO FENOMENOA 1. Zer da Arduinoa Arduinoa prototipo elektronikoen oinarri izango den kode irekiko hardware- eta software- plataforma bat da. Artista, diseinatzaile eta ikasleirakasleentzat pentsatua dago, baita hobby gisa objektu nahiz ingurune interaktiboak sortzea helburu duen edozeinentzat ere. Nolabait esatearren, Arduinoa ingurunea senti dezakeen elementua da. Alde batetik, sentsoreak eta hartzaileak erabiltzen ditu horretarako. Bestetik, erabiltzaileak bertan irauliriko programaren aginduak jarraituko ditu; eta horren ondorioz, ingurunean eragingo du, bere kontrolpean dituen argi, motor edo beste edozein eragile elektriko martxan jarriz. Beste era batera esanda, Arduinoa gure begiak kontrolatzen dituen burmuina izan liteke; ikusteko gaitasuna du, eta edonora begiratzeko ahalmena ematen digu. Oinarrian, ATMEGA etxeko xx8 mikrokontrolagailua du. Hori plataformaren burmuina litzateke, eta Arduino Programing Language (Wiring-en oinarritua) nahiz Arduino Development Enviroment (Processingen oinarritua) erabiliz programatzen da. Arduinoan oinarrituriko proiektuak nahiz prototipoak guztiz autonomoak izan litezke, edota PC edo memoriaren batean ejekuzioan dagoen edozein sofwarerekin komunika litezke (Flash, Processing, MaxMSP, edo baita OpenOffice-ekin ere). Horrek prototipo ibiltariak, estatikoak edo adierazleak osatzeko aukera eskaintzen du. Zirkuitu inpresoa osatzen duten plakak aurrez fabrikan mihiztatuak eska daitezke, edo, sarean zintzilikatua dagoen informazioa erabiliz, norberak ere mihizta ditzake. Erreferentziako hardware-diseinua (CAD artxiboak) eskuragarri dago sarean; beraz, edonork du aukera hardwarea bere kabuz eraikitzeko, baita dagoenaren gainean nahi dituen berrikuntzak garatzeko ere. Software eta hardware libreko plataforma honek mundu oso bat ireki dio prototipoak laborategitik nahiz enpresetatik kanpo eraikitzeari.
95
1. Arduino fenomenoa
2. Arduinoa ikastetxean Ikastetxeetan prototipo elektronikoen eraikuntza aurrera eramateko zegoen hardware askearen gabezia zela medio sortu zen Arduinoa. Bereziki Hezkuntzan erabiltzeko sortu zela esan liteke, nahiz eta urte gutxian bilakaera askoz ere zabalagoa izan duen. Gida honek Arduinoa ikastetxeetan erabiltzeko baliagarri nahi luke izan, eta, bide batez, irakaslea PBLra (Project Based Learning proiektuetan oinarrituriko irakaskuntza) hurbildu. Liburuari jarraiki, ikasleak proiektu praktikoak gauzatuz garatuko du bere ikasketa, eta irakaslearen lana proiektu horiek proposatzen, ebazten eta muntatzen laguntzea izango da. Horretarako, Arduinoa erabiltzeko beharrezkoak izango ditugun kontzeptu teorikoez aparte, liburuak Arduinoarekin eginiko oinarrizko muntaia sorta bat aurkezten du. Horien laguntzaz, ikasleak nahiz irakasleak, muntaia horiek edo antzekoak eginez, ikasketa eta proiektu berriak gara ditzakete. Arduinoa hardware irekiko plataforma izaki, 300 pertsonatik gorako garatzaile taldea du, eta milioika erabiltzaile mundu guztian zehar. Gida hau ikasgelarako erreminta bat baino ez da, bere baitan Arduinoak duen potentzialaren argazki bat baino gordetzen ez duen gidaliburua. Erabiltzeko interesa duenari bide bat eskaintzen dio, hasierako pausoetan sortuko zaizkion arazoak konpontzeko. Ondoren, mundua zabala da, proposamenak amaigabeak, eta sarean informazio preziatua aurki daiteke, automatikoa den ia edozer Arduino bitartez muntatzeko. Aztertzea eta imajinatzea norberaren esku geratzen da, eta baita sortutakoa berriz sarean banatzea ere. Liburuak PBL irakaskuntza-metodologia hiru puntu hauetan garatzen du: Arduinoa. Ikasle bakoitzak Arduino erreminta eskuragarri izango du. Horretarako, ikastetxeak aurrez mihiztatuta saltzen diren prezio baxuko Arduinoak eskuratu beharko ditu, edo, liburuan agertzen den informazioari jarraituz, Arduino propioak muntatu. Horrela, ikasleak, ardura bere gain hartuta, ekipoa etxera eraman ahal izango du, eta, ordenagailura duen konexioa erraza izaki, auto-ikasketa indartu. 96
1. Arduino fenomenoa Esperimentazioa. Ikaskuntza esperimentazioan oinarritzen da, non ikasleak nahiz irakasleak akatsak izatea ia ezinbestekoa bilakatzen den eta akats horietatik denek ikasten duten. Ez da azterketa baterako lan egiten –nahiz ebaluazioa ikastetxe bakoitzaren esku geratzen den–, proiektu, maketa edo prototipo funtzional bat eraikitzeko baizik. Eginez ikasten da – Asthangaren sortzaile Pathavi-k dioen bezalaxe–. Ikastean, % 1 teoria da, eta % 99 praktika eta mugimendua. Librea, forman eta funtzioan. Erreminta digitaletako hardwarea eta softwarea gure orainaren eta geroaren parte dira, eta, neurri handi batean, horien erabilerak pertsona nahiz gizarte moduan izango dugun bilakaera markatuko digu. Softwarea nahiz hardwarea erabiltzeak gure bizitzan zehar egunero aurkituko ditugun elementu horiek hobeto ulertzen lagunduko digu, baina, guztiaren gainetik, hardware eta software libreak erabiltzeak guztioi luzatuko digu hori egiteko aukera, eta ahalbideratuko gure ideiak prototipatzea inongo traba legalik gabe. Amaitzeko, esan beharrekoa da Arduinoa ez dela irakaskuntzan hardware- edo software-plataforma soil gisa txertatzen. Hainbat irakasgaitan (teknologia, diseinua, matematika, fisika eta arte digitala) kontzeptu konplexuak aztertu eta praktikara eramango dituen irakaskuntza-metodologia gisa ere agertuko zaigu.
97
1. Arduino fenomenoa
3. Zergatik arduinoa Merkatuan, beste mikrokontrolagailu-plataforma ugari daude, eta antzeko funtzionalitatea eskain dezakete gehienek. Aukerak anitzak direla jakinda, ordea, hauek dira nire arrazoiak ikastetxean erabiltzeko aukera egokiena Arduinoa dela pentsatzeko. Merkea da. Beste mikrokontrolagailuekin alderatuta, prezio xumeagoa du. Aurrez mihiztatua, Arduinorik erabilienak (Uno) 25 eurotik beherako kostua du, eta norberak muntatutako Arduinoaren prezioa are merkeagoa da. Merkatua. Taxuzko lan-baldintzetan muntatua izan da. Lizentzia librekoa izanik, lizentzia-gasturik ez du, eta irabaziak lan egiten duenarentzat bideratzen dira, eta ez, elektronikan askotan pasatzen den moduan, lizentziaren jabe diren enpresentzat. Arduinoan egiten den edozein aldaketa merkaturatu daiteke, eta onura ekonomikoa lortu, baldin eta berriz ere lizentzia irekian saltzen bada. Multiplataforma da. Arduino softwarea Windows, Mac, OSX eta Linux sistema eragileetan ejekutatzen da. Beste mikroprosezagailuplataforma gehienak Windows edo DOS sistema eragileetara mugatuta daude. Programazio-ingurune sinple eta argia dauka. Arduino programazio-ingurunea hasiberrientzat oso erabilerraza da, eta, aldi berean, ahalmentsua, erabiltzaile aurreratuek zukua atera diezaioten. Kode irekiko software garagarria du. Arduino softwarea edozein programatzailek garatzeko irekia da. C++ lengoaian oinarrituriko liburutegiak garatuz, Arduinoaren kapazitateak muga gutxi ditu. Kode irekiko hardware garagarria du. Arduinoa ATMEGA xx8 mikrokontrolagailuetan oinarritua dago, eta gainerako modulu guztien CAD planuak, Creative Commons Attribution-ShareAlike 3.0 License lizentziapean, sarean argitaratuak daude. Diseinatzaile ausartenek Arduinoaren bertsio propioa diseina dezakete, eta baita, betiere lizentzia irekian, saldu ere; honela, Arduinoaren prestazioak 98
1. Arduino fenomenoa nahiz garapena bultzatuko dituzte. Arduinoaren plataformari hamaika funtzionalitate gehitu dizkio erabiltzaileen komunitateak oraingoz (wifia, GPSa, GRSMa, Irudi detekzioa, Android konexioa...), eta kontaezinak dira oraindik garatu dakizkiokeenak.
99
2. Hardwarea
2. KAPITULUA: HARDWAREA Arduino asko aurki ditzakegu merkatuan. Gure Arduino propioa ere munta dezakegu, horretarako jakintza nahikoa badugu. Baina badaude Arduino guztiak antzeko egiten dituen zenbait ezaugarri, eta horiek aipatuko ditugu, nola eginda dauden ikustean.
100
2. Hardwarea
Arduinoaren hardwarea aztertzeko, Arduino Uno-a aztertuko dugu. Hau da azkena atera duten modeloa, eta oraingoz prezio baxuan prestaziorik onena ematen duena. Ondoren, erabiltzailearen esku geratzen da erabakitzea zein Arduino datorkion ondoen bere proiekturako, tamaina, konplexutasuna, memoria edo diseinua kontuan izanda.
1. Arduino Uno-a Arduino Uno-a Atmega 328(datasheet) mikrokontrolagailuan oinarrituriko sarrera-irteera plaka programagarri bat da. Uno-a Arduinoetan azkenekoa da, eta Arduino plataformaren erreferentzia bihurtu da, Arduino softwarearen 1.0 bertsioarekin batera.
101
2. Hardwarea 14 sarrera-irteera digital ditu (horietako 6 PWM irteera analogiko gisa erabil daitezkeenak), 6 sarrera analogiko, 16 MHz-eko maiztasuna duen kristal oszilatzailea, USB konexioa, jack elikadura, ICSP header-a, eta Reset pultsagailu bat. Funtsean, mikroa kontrolatu, elikatu eta
102
2. Hardwarea ordenagailura erraz konektatzeko beharrezko guztia dauka.
2. Sumarioa Mikrokontrolagailua
ATmega328(datasheet)
Lan-tentsioa
5V
Elikadura-tentsioa 7-12 V Elikadura-tentsioa (onargarriak) 6-20 V I/O (sarrera-irteera) pin digitalak 14 (horietariko 6k PWM irteera ematen dute) Sarrera analogikoak 6 I/O (sarrera-irteera) korronteak 40 mA 3.3V-eko pinaren korrontea 50 mA Flash memoria erabiliak)
32 kB (horietatik 2 kB, bootloaderrak
SRAM
2 kB
EEPROM
1 kB
Erloju-maiztasuna
16 MHz
Tamaina
2,7 eta 2,7 hazbete
3. Eskemak eta planuak EAGLE artxiboak Eagle_Desing.zip Arduino UNO REV3 plakaren eskema
103
2. Hardwarea
104
2. Hardwarea
4. Elikadura Arduinoa USB bitartez edo kanpoko elikadura-iturri bitartez elika daiteke, eta berak igartzen du automatikoki zein duen konektatua. Kanpo-elikadura bitartez konektatzean, bi aukera ditugu. Plakak bistan duen 2.2 mm-ko jack elikadura erabili, AC/DC (220v/9V) bihurgailu batez, edo bateria sorta bat erabili, horren konexioak plakan dauden GND eta Vin pinetara konektatuta. Kontuan izan plaka gehienez 6-20 V-era elika daitekeela, baina egokiena 712 V bitartean elikatzea dela.
Elikadura-pinak hurrengoak dira: VIN. Arduinora kanpo-elikadura bat konektatzeko pina da. Arduinoa pin honetatik edo jack konexiotik elika daiteke, eta, azken horretatik elikatuz gero, Vin pina elikadura gisa balia daiteke. Berezitasun bat besterik ez da, baina erabilgarri suerta liteke zenbaitetan. 5V. Plakak berak erregulaturiko 5V-eko irteera bat ematen digu. Tentsio- irteera hau oso erabilia da plakara konektatuko ditugun sentsoreak elikatzeko garaian. Eroalea gorriz kableatzea gomendatzen dut beti. Pin hau elikadura-sarrera gisa erabiltzeak plakaren erregulatzailea bypasseatzen du, eta plaka erre dezake. Ez esan, gero, abisatu ez nuenik! 3V3. Plakak berak erregulaturiko 3.3 V-eko tentsioa ematen digu. Gehienez, 50 mA-ko korrontea hornitzen du.
5. Sarrera-irteerak 1. I/O Digitalak (nahiz PWM irteera analogikoa) 105
2. Hardwarea 14 pin digitalak irteera nahiz sarrera digital gisa erabil daitezke, aurrez nola deklaratzen ditugun. 5 V-ean lan egiten dute guztiek, eta pin bakoitzak GEHIENEZ 40 mA- ko korrontea jaso nahiz eman dezake. Oso ideia ona da IRTEERA gisa erabiltzen den edozein pinetan seriean 470 Ohm edo 1 k立 -eko erresistentzia bat jartzea. Pin bakoitzak 20-50 k立 bitarteko Pull Up erresistentzia bat dauka, baina berez deskonektatua dago. Sarrera guztiak Pull Up erresistentzia bitartez kableatzea gomendatzen
106
2. Hardwarea da. Aurrerago, liburuan zehar, kableatze modu hori ikusiko duzue. Ezaugarri horiek komunak dira pin guztientzat, baina, horietaz aparte, pin batzuek ezaugarri bereziak dituzte, eta ondoren zerrendatzen dizkizuet: Serial: 0(RX) eta 1(TX). TTL serie-datuak hartzeko (RX) nahiz bidaltzeko (TX) erabil daitezke pin hauek, Arduinoa edozein serie-dispositiborekin komunikatu nahi denean. Kanpo-interrupzioak: 2 eta 3. Pin hauek, trigger pultsu batez, interrupzio bat programatzeko konfigura daitezke. PWM: 3, 5, 6, 9, 10 eta 11. Pin hauek 8 biteko PWM irteera analogiko bat programatzeko aukera ematen digute, analogWrite() funtzioa erabiliz. OHARRA: PWM (pulse-width modulation) PWMren funtzioa seinale periodiko baten pultsuen zabalera modulatzea da, hau da, seinale horren lan-zikloa aldatzea. Oso baliagarria da, adibidez, DC motore baten abiadura-kontrola egiteko. Seinale periodiko baten lan-zikloa edo Duty Cycle-a seinale horren parte positiboak periodo osoarekiko duen zabaleraerlazioa da. analogWrite() funtzioak, 8 bit izaki, 0 eta 255 bitarteko zenbakiak onartzen ditu sarrera- aldagai gisa. Arduinoak guk analogWrite() aginduan emaniko zenbakiaren proportzionala den 5V- eko seinale karratu bat emango digu. Hurrengo taulan aurki dezakezue analogWrite() funtzioaren aldagaia eta irteerako tentsioaren batez bestekoaren arteko erlazioa. analogWrite(pin, 0) -> Duty Cycle 0 (Bat ere ez) -> 0 V (Irteerako batez bestekoa) analogWrite(pin, 64) -> DutyCycle 0,25 (Laurdena) -> 1,25 V (Irteerako batez bestekoa) analogWrite(pin, 128)-> Duty Cycle 0,5 (Erdia) -> 2,5 V (Irteerako batez bestekoa) analogWrite(pin, 256)-> Duty Cycle 1 (Osoa) -> 5 V (Irteerako batez bestekoa)
107
2. Hardwarea Hona hemen adibide bat, seinale karratu batentzat:
Duty Cycle=Ton/
Tof f
Toff
x 100
-> 0 V (Irteerako batez bestekoa)
To n Tof f Ton
Ton
-> 1,25 V (Irteerako batez bestekoa)
Toff -> 2,.5 V (Irteerako batez bestekoa)
Ton
Toff
-> 3,75 V (Irteerako batez bestekoa) -> 5 V (Irteerako batez bestekoa)
Ton
LED: 13. pina. Plakan bertan txertaturiko led bat 13. pin digitalera konektaturik dago. Pin horren balioa altua (HIGH) denean, led-a piztuta ikusiko dugu, eta balioa baxua (LOW) denean, aldiz, itzalita. Aurrerago ikusiko dugun bezala, oso erabilgarria egingo zaigu, Arduinoa ongi konektaturik dagoen jakiteko. 2. Sarrera analogikoak Arduinoak 6 sarrera analogiko ditu, A0 eta A5 artean izendatuak, eta bakoitzak 10 biteko bereizmena ematen digu. A0-A5 pinetan sartzen dugun balio analogikoa balio digital bihurtzen dute. Normalki, sarrerako tentsio maximoa 5 V-era erreferentziatua dute, eta horretan oinarrituta egiten dute digitalerako barne-konbertsioa, analogRead() komandoa erabiliz.
108
2. Hardwarea 5V
->
1023
3,75 V -> 918 2,5 V -> 612 1,25 V -> 306 0V
->
0
10 biteko bereizmenak 1024 digituko irakurketa ahalbideratzen dio sarrera analogiko bakoitzari. analogRead() komandoak, automatikoki, sartzen zaion tentsio-maila bakoitzari 0 tik 1023ra bitartean dagoen balio bat bueltatuko dio, eta zenbaki hori erabiliko dugu programatzaileok sarreran dagoen tentsioa interpretatzeko.
109
2. Hardwarea Esate baterako, analogRead(3) komandoak hirugarren pina irakurri ondoren, 611 balioa bueltatzen baldin badigu, badakigu 2,5 V dauzkagula lehenengo pinean. OHARRA. Sarrera analogikoaren erreferentziako tentsio maximoa 5 V da normalean, baina, zenbait kasutan, tentsio-maila desberdina emango diguten sentsoreak konektatuko ditugu, eta erreferentziako tentsio maximoa txikiagoa izango da.. Kasu horietan, etaAREF pina eta analogReference () funtzioa erabiliz, aldatu egin daiteke balio-maila hori. 3. Beste konexio-pinak AREF: Sarrera analogikoetarako erreferentzia-tentsioa konektatzeko pina, erreferentzia 5 V EZ den guztietan.
Reset: Pin hau LOW baliora eraman behar da mikrokontrolagailua erreseteatzeko. Normalki, berez duen Reset botoia tapatzen duen Shield-en bat konektatzen baldin badiogu soilik erabiltzen da..
110
2. Hardwarea OHARRA: Atmega328-aren pinen mappeoa begiratzea ondo etorriko litzaioke bere Arduinoa muntatu nahi duenari edota emanikoari zuku gehixeago atera nahi dionari.
6. Komunikazioa ATmega328-ak UART TTL (5 V) komunikazioa ahalbidetzen du bere 0 (RX) eta 1 (TX) pinetan, baina Arduinoak integratua duen ATmega16U2 txipak seriekomunikazio hori USB komunikazio gisa bideratzen du, eta Arduinoa COM portu estandarrera konektatzea ahalbideratzen. Hau da funtsean Arduinoaren eta beste mikrokontrolagailuen arteko desberdintasun nabarmenena: Arduinoa edozein ordenagailutako USB portutik programatu daitekeela. Birtute horretan sakonduz, Arduino softwareak serie-monitore bat dakar integraturik, eta, bertan, denbora errealean,Arduinoarekin komunikazioa bidera daiteke, hala nola Arduinoaren sarrera-irteeren balioa PCan ikusi edota PCtikArduinora informazioa edo aginduak bidali. OHARRA: Arduinoak USB portua babesteko fusible bat dauka plakan integraturik.500mA-tik gorako kontsumoa duenean, eta USB portua babeste aldera,Arduinoa deskonektatu egingo da PCtik.
111
3. Softwarea 3.
KAPITULUA: SOFTWAREA
1. Softwarea instalatu Arduino programazio-inguruneak (IDE) erraza egiten du kodea idaztea eta, ondoren, I/O plakara bidaltzea. Windows, Mac OS X eta Linux-pean egiten du lan. Java lenguaian garatua dago, eta Proccessing software irekian oinarritua. Saretik jaitsi daiteke, beti bezala eskuragarri www.arduino.cc webgunean.. Uneko azken bertsioa erabiliz egin dut ondorengo instalazioa.. Jarraian, azalduko dut Arduino programa nola instalatu, ondoren zuen Arduino plaka nola konektatu eta lehen programa nola jarri funtzionamenduan. Gida hau Arduino Uno-a Windows XP-pean instalatzeko dago prestatua. Barianteak asko izan daitezke sistema eragileetan; hala, bada, instalatzeko garaian beste sistema-eragile baten aurrean aurkitzen bazarete, informazioa hurrengo esteketan duzue: Linux-en instalatu -> http://www.arduino.cc/playground/Learning/Linux Mac OS Xen instalatu -> http://arduino.cc/en/Guide/MacOSX Windows-en instalatu
-> http://arduino.cc/en/Guide/Windows
a) LortuArduino plaka bat eta USB kablea (begiratu konektoreak!)
b) Jaitsi Arduino softwarearen azken bertsioa, eta instalatu. Softwarea jaitsi ostean, deskonprimatu artxiboa.
112
3. Softwarea Ondoren, eraman Arduinox.x karpeta osoa C:/Archivos de programa/ karpetara. Azkenik, eginArduino exekutagarriari lasterbide bat mahaigainean.
d) Konektatu Arduino plaka, eta instalatu Driverrak. Arduino plakaren funtzionamendua egokia izan dadin, Driverrak instalatu beharra dago. Ondoren, irudi bidez, Driver horiek instalatzeko pausoak listatuko ditut.
d) Ireki Arduino IDEa, eta kargatu Blink programa. Arduinoa USB portura konektatzean, hardware berriaren morroia abiatuko zaigu. Driverrak eskuz instalatuko ditugunez, esan â&#x20AC;&#x153;ezâ&#x20AC;? windows updatera konektatzeari. Aukeratu, ondoren, instalazioa kokaleku jakin batetik egitea.
113
3. Softwarea Arakatu Arduinoa instalatu dugun karpeta, eta aurkitu haren barruan Drivers karpeta. Kontuan izan EZ dudala FTDI USB Drivers karpeta aukeratu. Hori bertsio zaharragoentzat erabiltzen da.
â&#x20AC;&#x153;Ezikusiarena eginâ&#x20AC;? zertifikatua eskatzen duen leihoari, eta instalatu Driverrak.
114
3. Softwarea Azkenik, kontuan izan Arduino softwareak ez duela COM portua automatikoki aurkitzen eta, beraz, eskuz sartu behar diogula Arduinoa konektaturik dagoen portuaren zenbakia. Bestela, komunikazio-errore oso ohiko bat emango digu.
Arduinoa zein COM portutan dagoen konektaturik jakiteko, aurkitu gailu- kudeatzaile menuan COM/LPT portuen lista, eta begiratu zein den gure Arduinoaren portua.
115
3. Softwarea Behin jakinda gure Arduinoari COM4 portua egokitu zaiola, joan Arduino IDEra,
eta aukeratu portu hori Tools / Serial Port sailean. Orain, ongi konpilaturiko edozein programa karga genezake Arduinoan. Nik BLINK (dir-dir) programa kargatzea aholkatzen dut. Aurrerago, sakonago azalduko dut programa hori. Programa Arduinora ondo kargatu den edo ez jakiteko, nahikoa da hurrengo pausoak jarraitzea. Plakako Led-ak dir-dir egin behar du 1000 milisegundoko maiztasunaz. Programan delay(100) konstantea 100era jaitsi, eta, kargatu ondoren, plakako Led- ak dir-dir egin behar du 100 milisegundoko maiztasunarekin. Azkarrago, alegia.
116
3. Softwarea
2. Arduino IDEa
Arduino IDEa (Integrated development environment) programaziosoftware bat da. Programazio-software gehienak bezala, argia izatea du helburu, eta bertan idatziko diren Arduinorako programek duten zailtasuna ez areagotzea. Hori horrela, nahiko azkar egingo dugu software hau erabiltzeko gida labur bat. 1.
Erreminta-barra
Verify/Compile Idatziriko kodea aztertzen du, akats bila. Konpilatzaileak erroreren bat aurkitzen badu, ezin izango da kodea Arduinora igo. 117
3. Softwarea Upload to I/O Board Idatziriko kodea Arduino plakara igotzen du. Gogoratu igo aurretik gordetzea. OHARRA: Arduinora programak igotzea erraza bada ere, behin Arduinoan dagoen programa ordenagailura jaistea EZINEZKOA da. Horrek kargatzen ditugun programa guztiak aurrez gordetzea zein garrantzitsua den erakutsi beharko liguke. Ez esan, berriz ere, abixatu ez nuenik! Ne w Errutina edo programa berri bat kargatzen du. Sketchbook (programa lista) bistaratzen du, han dagoen adibideren bat kargatu nahi izanez gero.
Sav e Uneko programa gordetzen du.
Serial Monitor Arduino plakatik USB bitartez ordenagailura bidaliriko datuak bistaratzen ditu. Aldiz, ordenagailutik Arduinora datuak bidali nahi izanez gero, testua idatzi, eta SEND botoia sakatu behar da.
2.
Menuak
Import Library. Idazten ari garen programari liburutegi bat gehitzeko erabiltzen dugun komandoa da. Programa-errutinari funtzionalitate berriak ematen dizkio, baina, aldi berean, haren tamaina handiagotzen du. Liburutegia inportatu ondoren, kodearen hasieran 118
3. Softwarea #include gehitu behar da. OHARRA: Liburutegi-kode bat programa nagusiago bat garatzeko erabiliko den azpiprograma talde bat da. Liburutegiek programaren atal edo egiteko berezi baten kodea eta datuak gordetzen dituzte. Horrek programa nagusitik liburutegiek duten kodeari deiak egitea ahalmentzen du, programa nagusian guztia programatzen ibiltzen jardun beharrean. Adibide nabarmena dira aparailu desberdinekin komunikatzeko sortzen diren kode- liburutegiak. Demagun GPS berezi batekin komunikatzeko protokoloa nahiz kodea liburutegi batean gordeta dugula. Norbaitek GPS horrekin komunikazio-errutina bat osatu nahi badu, ez dauka kode guztia idazten hasi beharrik. Nahikoa luke liburutegia inportatu eta
119
3. Softwarea haren funtzioak erabiltzearekin. http://www.ladyada.net/library/arduino/libraries.html
Show Sketch Folder. Programa edo errutina direktorioa bistaratzen du. Hor gordetzen dira guk aurrez eginak ditugun programa guztiak. Add File. Gure programa nagusiari errutina bat gehitzen dio. Horrek proiektuei artxiboak gehitzea ahalbideratzen du. Errutina berria fitxa berri batean irekitzen da. Hurrengo adibidean, lau artxiboko programa nagusi bat duzue.
120
3. Softwarea
121
3. Softwarea Auto Format. Honek gure kodea formateatzen du.
OHARRA: Zer da kodea formatu onean mantentzea? Beharrezko oharrak jartzea, edo gehiegi ez jartzea, eta funtzio edo atal desberdinak egoki tartekaturik edukitzea da. Denboran atzera egindako kodea edo beste norbaitek eginikoa egoki formateaturik ez izateak burukomin handiak sor liezazkiguke, eta sortzen dizkigu sarritan. Kodea formatu onean edukitzea azpiko arropa egokia izatea bezalakoa da; ez da ezinbestekoa, ezinbestekoa bihurtzen den arte.
Archive Sketch. Kodea gorde, karpetaratu eta konprimatu egiten du; eta edozein foro, blog edo tutorialetan zintzilikatzeko modu egokian paketatzen du.
Board. Erabiltzen ari garen Arduinoa aukeratu behar da lista honetan. Arduino softwareak ez du berak bakarrik ezagutzen plaka; hortaz, plaka desberdin bat konektatzen dugun bakoitzean, kontu izan behar da egokia aukeratzeko. Bestela, ez da komunikaziorik izango .
122
3. Softwarea
123
3. Softwarea Serial Port. Gure ordenagailuak dituen serie-konexioko Arduino guztiak bistaratzen ditu.Tools menua luzatzen dugun bakoitzean, bere kasa aktualizatzen da. Windows-en COM1 edo COM2 balioa hartzen du serie-konexioa duten gailuentzat, eta COM4, COM5, COM6 edo handiagoa USB konexioa duten gailuentzat. Kontuan izan programa kargatzeko garaian portu egokia aukeratu behar dela; horretarako, gailu-kudeatzailea erabili.
Programmer. Gure Arduino plakaren bootloaderra grabatu nahi dugun kasuan bakarrik erabiliko dugu aukera-lista hau. Kasu oso aurreratua izaki, kontzeptu batzuk gainetik aipatuko ditut, eta kasu praktiko batera mugatuko dut azalpena.
Gehiagorako, kontsultatu; http://www.ladyada.net/learn/avr/programmers.h tml Arduino mihiztatuak erabiltzen ari zaretenok ez duzue tarte honen beharrik. 124
3. Softwarea Mikro batekin komunikatu nahi dutenek beharrezko dute â&#x20AC;&#x153;programmerâ&#x20AC;? bat. Beraz, oso garratntzitsua izango da mikroak eta Arduinoak izango duten konexio mota (Serie TTL, USB, portu pareloa, etab.). Programmer mordoa daude aukeran, baina nagusienen ezaugarriak aztertuko ditut. ISP (In sistem Programming) â&#x2020;&#x2019; Programazio mota honekin txipa zirkuitutik atera gabe programa daiteke. Sistema honetan oinarritzen dira Arduinoa programatzaile gisa erabiltzeko aukera guztiak; bai AVRa, bai USBtiny-a ere. Horiek komunikazio-protokoloan eta -bidean bakarrik desberdintzen dira; batean TTL seriea, eta bestean USB. Guk hau guztia ez dugu sumatuko; izan ere, plakak berak du USB-SerieTTL bihurgailu bat, eta, beraz, ez dugu Arduinoa programatzean programmer funtziorik erabiliko. Baina bada kasu bat, nahiko orokorra gainera, Arduinoa Txip programatzaile gisa erabiliko duguna. Hori Arduino berriak geuk egiterakoan da. Baldin eta Arduinoa geronek mihiztatu nahi badugu, bi aukera ditugu Atmega 168-a, adibidez, erosteko garaian: bootloaderra dakarrena erosi edo bootloader gabekoa erosi. OHARRA: Bootloaderra abio-gestore bat da, programa nagusia martxan jarri dadin baimentzen duena, eta guztiz aparte programatu eta grabatzen da. Gehienetan babes-neurriak izaten ditu, aparailuaren martxa desegokiak edo aldaketak ekiditeko.
125
3. Softwarea Baldin eta bootloader gabeko Atmega 168 txipa erosten badugu (kasurik orokorrena eta merkeena), abio-gestorea grabatu beharko diogu lehenengo, eta, horretarako, gure Arduino Uno-a erabil dezakegu. Arduino Uno-a erabili beharrean beste programatzaileren erabili nahi badugu, egoki aukeratu behar dugu.
bat
Arduinoa, gure kasuan, programatzaile gisa erabilita, gai izango gara guk sortu nahi dugun Arduino berriaren txipari bootloaderra grabatzeko.
Burn bootloader. Aurreko kasuari jarraiki, guk mihiztatu beharreko arduinoaren txipari (Atmega 168 da orokorrena) bootloaderra grabatzeko agindua ematen dion komandoa da. Gogoratu kasu honetan board atalean plaka egokia aukeratu behar duzuela. Arduino Uno-a kasu honetan programatzaile gisa ariko da lan egiten, eta helburuko plaka Atmega 168-a izango da (Diecimila) gure kasuan.
126
4. Programazioa
4. KAPITULUA: PROGRAMAZIOA Arduinoaren programazioa ez da C lengoaiatik asko desberdintzen. Hortaz, lengoaia honetara ohituta zaudetenoi ezagunak egingo zaizkizue hurrengo kontzeptutatik asko; eta besteoi, berriz, animo. Programazioak ez du oinarrizko ezaguera handirik behar, logika nahiz kuriositate pixka bat nahikoa dira ia edozer aparatu martxan jartzeko. Arduinoa programazio-jakintza gutxi duten erabiltzaileentzat egin zen bereziki, baina, C lengoaian oinarriturikoa izaki, garatzeko bideak infinituak dira.
1. Egitura Arduino programazioaren lengoaiaren egitura nahiko sinplea da. Bere barruan instrukzioak gordetzen dituzten bi funtzio nagusitan banatzen da: void setup() eta void loop(). Adibidea
1.
setup()
Programan exekutatzen den lehen funtzioa da, eta BEHIN bakarrik exekutatzen da. Hurrengo lanak hartu behar dira funtzio honetan. Programan erabiliko diren aldagaiak deklaratu. pinMode()-a sarrera
erabiliz,
irteera(OUTPUT).
pinei
beren
egitekoa
finkatu: edo (INPUT) edo
Serie-komunikazioak abiatu. Serial.begin(abiadura baudio/s) Adibidea: Programa honek serie-komunikazioaren abiadura 9600 baudio/s-ra mugatzen du, eta 13. pina irteera-pina izango dela adierazten du.
127
4. Programazioa OHARRA: Serie-komunikazioak abiatzeko garaian (Arduinoaren datuak ordenagailura pasatzeko ezinbestekoa), konstante bat pasatzen zaio abiadura gisa. Baudioak komunikazio-egoera baten aldaketa kopurua adieraziko digu, eta, beraz, baudi/s-ak ez dira bit/s -en berdinak, komunikazio-saio bakoitzean bit bat baino gehiago bidali edo har baitaiteke. Hori horrela, esan beharra dago 9600 baudio/s-ko abiadura dela ia beti erabiltzen dena, serie- komunikazio azkar nahiz eraginkor bat bermatzen baitu. 2.
loop()
Programan ondoren exekutatzen den funtzioa da. Funtzio honen kodea behin eta berriz exekutatzen da, bukaerarik gabe. Funtzio hau da Arduino programa guztien nukleoa, eta berak egiten du lanik handiena. Hemen joango dira idazketa, irakurketa, konparazio, eragiketa eta antzeko akzio guztiak. Adibidea
3.
funtzioak()
Deia egindakoan (void) exekutatzen diren kodeak dira. Programan errepikatzen den kodea ez erabiltzeko sortzen dira. Funtzio bat deklaratzean, lehenengo, bueltatuko duen balioa deklaratzen da (int, foat, ..); gero, funtzioaren izena deklaratzen da, deitzean pasa beharko dizkiogun parametroekin batera. Adibidea
Aurrerago, programan zehar funtzio hau nahi adina aldiz deitu daiteke. 128
4. Programazioa Adibidea
4.
Giltzak {}
Giltzek funtzio-blokearen hasiera eta bukaera markatzen digute. Giltza guztiek bikotean etorri behar dute; irekierako giltza guztiek, beraz, itxierako bat behar dute eduki. Arduino IDEak badu giltza-balantzea txekeatzeko modu berezi bat ere. Aukeratu irekierako giltza bat, eta softwareak berak argituko du non duen itxierakoa. Adibidea
5.
Puntu eta koma ; .
Deklarazio bakoitzaren ondoren jarri beharreko sintaxia da.. Programaren elementuak banatzeko erabiltzen da. Puntu eta koma bat ahazteak konpilazioakatsa emango dizu, eta ezingo duzu programa Arduinora igo. Ohartu iruzkinen ondoren ez dagoela (;) puntu eta koma jarri beharrik. Adibidea
129
4. Programazioa 6.
Iruzkinak //
Programa guztiek behar dituzte iruzkinak. Horiek programaren nondik norakoak esplikatuko dituzte, eta nahiz eta ez izan kodea â&#x20AC;&#x201C;ez, behintzat, ondoren konpilatuko den kodea â&#x20AC;&#x201C; ezinbestekoa da programa ongi estrukturatzeko garaian. Etorkizunerako, memoria gisa oso baliagarriak suertatzen dira. Zenbait programatzailek â&#x20AC;&#x201C;gehienek esango nuke nikâ&#x20AC;&#x201C; iruzkinik gabeko kodea ilargirik gabeko eguzkia bezalakoa dela diote; argituko gaitu gehienetan, baina gehien behar dugunean, beste nonbaitera egingo du argia, eta ez dugu jakingo nora, ilunpetan utzi gaitu eta. Iruzkinak beharrezko ikusten ditugun aginduetan bakarrik jarriko ditugu; programaren helburuaz ezer ez dakien baina kodea uler dezakeenak laguntzarako izango lituzkeen tokietan bakarrik. Iruzkin gehiegik iruzkinen balioa ezerezean uzten dute. Zentzuak, praktikak eta beste iruzkinak irakurtzeak erakusten dute, azkenean, nola egokitu iruzkinak programari. Adibidea
2.Aldagaiak Aurrerago programak erabiliko duen balio numeriko bat gordetzeko forma bat da aldagaia. Izenak ongi adierazten duen moduan, balioz aldatuz doazen zenbakiak dira, konstanteak ez bezala, horien balioa ez baita inoiz aldatzen. Aldagaiak deklaratua izan behar du beti, eta, ondoren, programatzailearen esku geratzen da hasierako balio bat ematea. Aldagai bat deklaratzeak bere baitan gordeko duen balioa zein motatakoa izango den esatea dakar (int, long, float,...), lehenengo, eta aldagaiari izen bat ematea, ondoren. Deklarazio hori programa guztian zehar behin bakarrik egin behar da, eta aldagaiaren balio-aldaketa, aldiz, programan nahi adina aldiz gerta daiteke.
130
4. Programazioa 1.
Aldagaien erabilera-eremua
Aldagaiak, non deklaratzen diren, bi motatakoak izan daitezke, globalak edo lokalak. Aldagaia deklaratzeko garaian, kontuan izan non erabiliko duzuen, eta, horren arabera, era globalean edo era lokalean deklaratu. Dudak baldin badituzue, emaiozue pasaporte anitza; egin aldagai globala, eta arazo gutxiago izango duzue. 1.Aldagai globalak Programa bateko edozein tokitan kontsultatu nahiz erabil daitezkeen aldagaiak dira aldagai globalak. Programaren hasieran deklaratzen dira, setup() funtzioaren aurretik.
131
4. Programazioa Adibidea
2.Aldagai lokala Aldagai lokalak funtzio baten barruan edo for lazo baten barruan deklaratzen diren aldagaiak dira.. Deklaratu diren funtzioaren barruan bakarrik irakur edo erabil daitezke. Horrek programa berean, funtzio desberdinen barruan, izen berdineko baina balio desberdineko bi aldagai izatea ahalbidetzen digu. Adibidea
2.
Aldagai motak 1. char
132
4. Programazioa Karaktere bat gordetzen du bere barnean. Karaktere hori ASCII kodeko karaktere bat izango da (Adibidez: a, b,c, H, &, Ă&#x2018;, ....). Oso egokia da hitzak gordetzeko.
Aldagaiaren ASCII karakterea bi eratara gorde daiteke: karaktere bera emanez kakotx artean edota karaktereari dagokion balio dezimala emanez.
char aldagaiak erabiltzerakoan, oso baliagarria izango zaizueASCII taula:
133
4. Programazioa 2. byte Komarik gabeko eta 8 biteko balio numeriko bat gordetzen du. Beraz, 0 tik 255 arteko zenbakia behar du izan, ez handiagoa ez txikiagoa. byte angelua = 180; // angelua aldagaia byte motakoa dela deklaratzen du 3. int -OSOAKomarik gabeko 16 biteko (2 byte) balio numeriko bat gordetzen dute, zenbaki
134
4. Programazioa OSOA deiturikoa. Beraz, -32768 tik 32767 arteko zenbakia behar du izan, ez handiagoa ez txikiagoa.
dela deklaratzen du
int luzera = 1550; // luzera aldagaia int motakoa
OHARRA: Zenbaki osoek ez dute komarik. Sentsoreen irakurketak (int) batean gordetzean koma galtzea ekarriko du. Demagun tenperatura-sentsore batek 3,8 V-eko balioa ematen digula. Balio hori int = tenperatura; aldagaian sartzen baldin badugu, automatikoki 3 bihurtuko dela jakin behar dugu. Oso aldagai erabiliak dira, memorian espazio gutxi erabiltzen dutelako, eta beren arteko eragiketak oso azkar egiten direlako.Aldiz, sentsibilitate handiagoa behar dugun kasuetan, float aldagaiak erabiltzen ikasi beharko dugu. 4. long Komarik gabeko 32 biteko (4 byte) balio numeriko bat gordetzen dute. Beraz , -2 146 483 648 tik 2 147 483 647 arteko zenbakia behar du izan, ez handiagoa ez txikiagoa. long segundoak = 900050; // segundoak aldagaia long motakoa da 5. float Komadun zenbakiak gordetzeko erabiliko dira aldagai hauek. Koma flotante gisa deklaratzen ditu, eta programak beharrezko prozesua emango die eragiketak egiteko garaian. 32 biteko (4 byte) balio moduan gordetzen dira. Beraz, 3.4028235 E-38 tik 3.4028235 E38 arteko zenbakia behar du izan, ez handiagoa ez txikiagoa. float tenp = 18.14; // tenp aldagaia float motakoa dela deklaratzen du Adibidea
135
4. Programazioa
6. array arrayak zenbaki-zerrenda bat dira.Arrayaren barneko zenbakiak byte, int, long edo float motakoak izan daitezke. Zenbaki-lista bat izatean, oso garrantzitsua da bai zein balio sartu dugun zenbaki bakoitzean, baita zenbaki horrek zerrendan duen posizioa ere. arraya deklaratzeko garaian, zein zenbaki motaz osatua dagoen esango dugu, eta zenbat zenbakiz osaturik dagoen, ondoren. Kontuan izan â&#x20AC;&#x201C; eta honek nahaste askotara bideratzen gaitu â&#x20AC;&#x201C; 0 posizioa lehenengo posizioa dela.Alegia, num[4] array batek 5 zenbaki izango ditu bere barnean, 0-12-3-4 posizioetan.
int num[4] = {0, 0, 0, 5, 0} // num aldagaia 5 posizioko array gisa deklaratzen du, eta balioak eman. arrayari balioak emateko nahiz bertako balioak lortzeko, nahitaezkoa da zein posizioz ari garen esango digun indizea adieraztea.
num[2] =10; // num arrayaren 3. posizioan 10 zenbakia sartzen du. Honela geratuko zaigu, beraz, gure arraya.
136
4. Programazioa
arrayetik balioak irakurtzeko garaian ere, indizea erabiliko dugu. x = num[3];
// x aldagaiaren
balioa 5 izango da orain( x=5 ). 3.
Konstanteak
Arduino programak aurrez definituriko zenbait konstante ditu. Programak irakurterrazagoak egiteko erabiltzen dira. 1. TRUE/FALSE Egoera logikoak adierazten dituzten konstante BOOL-earrak dira. FALSE - 0 - gisa definitzen da, eta TRUE - 1- gisa.. Adibidea
2. HIGH/LOW Konstante hauek pinen egoera altua edo baxua adierazten digute. HIGH egoera altu gisa definitua dago, eta LOW egoera baxu gisa. Bakoitzak tentsio elektriko bat dauka berari lotua. Oso erabiliak dira programazioan. HIGH-> ON (5V) -> 3V â&#x20AC;&#x201C; 5V artean LOW-> OFF (0V) -> 0V - 1,5V artean Kontuan izan sarrera digital baten irakurketa egiten ari garenean arduinoak HIGH moduan hartzen dituela 3V-etik gorako tentsioak, eta LOW gisa 1,5V-etik beherakoak. Tartean geratzen diren tentsioak (1,5V-3V) ezezagun moduan hartzen 137
4. Programazioa ditu, eta ez ditu ulertzen balio logiko gisa. Erantzuna edozein izan daiteke kasu horietan. Adibidea
3. INPUT/OUTPUT pinMode() funtzioak erabiltzen dituen konstanteak dira, pin digitalek SARRERA edo IRTEERAgisa lan egingo duten definitzeko. Adibidea
4.Eragiketak Arduinoa programatzeko garaian, hurrengo eragiketa aritmetikoak erabiltzen dira.
138
Kontuan izan eragiketaren erantzuna oso baldintzatua dagoela eragiketan erabiltzen diren eragile motekin. OHARRA: Eragiketaren emaitza erabiltzen diren eragileen mota berekoa izango da. Demagun 9/4 eragiketa egiten dela. Erantzuna 2 izango da, eragileak 9 eta 4 zirelako (OSOAK) eta erantzuna ere OSOA izango delako , (2), eta ez float (2.25). Eragileak zenbaki mota desberdinetakoak baldin badira, erantzuna zenbaki kota luzeenekoa izango da. Demagun 9/2.4 eragiketa dugula. Erantzuna float modukoa izango da, hots, (3.75), bietatik luzeena (4 byte). bat. Aldagai baten izatea aldatzeko, cast operazioa erabiliko dugu. Hona hemen float bat int bihurtzeko era erraz Adibidea
1.
Konposizio-eragiketak
Oso erabiliak dira for() {} lazoetan, kontrol-aldagaiaren aldaketa progresiboa egiteko.
Arduino
DBH 4. maila
2.
Konparaketa-eragiketak
Oso erabiliak dira if() {} deklarazioetan, kondizio jakin bat egiazkoa ala gezurrezkoa den jakiteko.
3.
Eragiketa logikoak
ETA(&&), EDO( | | ) eta NOT( ! ) eragiketa logikoak dira. Konparaketa taldeetan erabiltzen dira gehienetan, bi kondizio batera, biak bakanean, edo bietatik bat ere betetzen ez den ziurtatzeko.
4.
Matematikoak
Eragiketa matematiko ohikoenak ditugu, lehenengo.
I単aki Zarauz Leoz
141
Arduino
DBH 4. maila
Balio-tartea aldatzeko eragiketak, ondoren; oso erabiliak SENTSOREEN irakurketak egitean. Lehenengo, mappeo-a ikusiko dugu, balio-tartea aldatzeko oso eragiketa erabilia.
Ondoren, estutzea, constrain() ikusiko dugu, balio-tarte jakin batetik kanpora irteten diren balioak mespretxatzeko oso erabilia.
OHARRA: Sentsore bat irakurtzen dugun unean, Arduinoak bere barnean duen konbertsore analogiko- digitalak 10biteko balio-tartean dagoen balio bat ematen dio, alegia, 0tik 1023 arteko zenbaki bat. Horrek 5mV-eko sentsibilitatea ematen dio irakurketari, baldin 5V-eko erreferentziarekin lanean ari bagara. Hori da kasurik ohikoena.
I単aki Zarauz Leoz
142
Arduino
DBH 4. maila
Ondoren, zenbaki hori tratatu eta irteera analogiko batera eraman nahi baldin badugu, oso presente izan behar dugu irteera analogikoek duten balio-tartea 8 bitekoa dela, alegia, 0tik 255 arteko zenbakiak bakarrik onartzen dituztela. Beraz, bi balio-tarteen arteko konbertsio bat egitea ezinbestekoa da; bestela, okerreko irakurketa-idazketa bat egiten ariko gara!! Badira eragile batzuk konbertsio hau egiteko, eta aurrerago aztertuko ditugu; baina bada oso erabilia den konbertsio azkar bat ere. Bi balio-tarteen maximoak 1024 eta 256 direla jakinda, nahikoa da balio-tarte altuko irakurketa guztiak /4 egitea, eta listo izango dugu 10 bitean egin dugun irakurketaren 8 biteko proportzionala.
5.
Zenbaki aleatorioak
Zenbait aplikaziotan beharrezko izango ditugu zenbaki aleatorioak. Demagun loteria-makina bat diseinatu nahi dugula, edota kolore aleatorioz piztuko den Led argi bat. Kasu horietan, programaz sortu behar ditugu zenbaki aleatorioak, eta, ondoren, irteeretara transmititu. Arduinoak ez du zenbaki aleatorioak sortzeko erreminta propiorik, baina haren bi funtzio jakin erabil ditzakegu zarata elektrikoa neurtzeko, eta horiek emango digute zenbaki aleatorioa (random) sortzeko hazia (seed). analogRead() funtzioa da horretarako gehien erabiliko duguna. Konektatu GABEKO edozein sarrera analogiko hartuko dugu, eta bertan dagoen zarata elektrikoa erabiliko dugu zenbaki aleatorioak sortzeko. Hori bezalaxe, milis() funtzioa ere erabil genezake, eta zenbaki aleatorioen sekuentzia errepikatua nahi dugunean, baita konstante bat ere.
I単aki Zarauz Leoz
143
Arduino
DBH 4. maila
Bi funtzio erabili behar dira hori aurrera eramateko: lehenengo, randomSeed() funtzioa, hazi aleatorioa sortzeko; ondoren, random() funtzioa, zenbaki aleatorioa sortzeko. 1. randomSeed() randomSeed(analogRead(1)); //Zenbaki aleatorioa sortuko du 1. sarrera analogikoko zaratarekin. //Parametro gisa hazia sartu behar zaio; analogRead(), edo milis() //edo konstante bat. 2. random() random(100,200); //Parametro gisa zenbaki aleatorioa zein zenbaki tartetan nahi dugun //esan behar diogu; kasu honetan 100 eta 200 arteko zenbaki aleatorioa //bueltatuko digu. 6.
Denbora-funtzioak
Oso erabilia, lehenengoa behintzat, bi akzioren artean denbora-tarte bat itxarotea nahi dugunean. Ikus ditzagun, bada, delay() eta millis() funtzioak. 1. delay() Gure programa pausatuko du parametroan adierazten dizkiogun milisegundoetan zehar. delay(1000);
// 1sg itxarongo du
2. millis() Arduinoa programa exekutatzen hasi denetik zenbat milisegundo pasatu den adieraziko digu. Zenbaki hau gainezkatu egingo zaigu, 9 bat ordu pasa ondoren. value = millis(); // Sartu value aldagaira programa hasi denetik pasatu den denbora 7.
Fluxu-kontrola
I単aki Zarauz Leoz
144
Arduino
DBH 4. maila
1. if ( baldintza) { } .... else { } if sententziak pasa zaion baldintza egiazkoa den begiratzen du, eta, hala bada, giltza artean dauden aginduak betetzen ditu. Bestela, else-n kakotxen artean dagoena egiten du. else gabeko sententzia bada eta if-en baldintza ez baldin badu betetzen, ezer egin gabe programan aurrera egingo du hurrengo pausura arte. else sententzia guztiz hautazkoa da, beraz. if edo else baten barruan beste nahi adina if .. else sententzia jar genitzake. 2. for ( aldagaia hasieratzea, baldintza, aldagaiaren aldaketa ) { } for sententzia giltzen artean{ }gorderiko agindu talde bat zenbaitetan errepikatzeko erabiltzen da. Bira bakoitzean aldatuko den aldagai bat erabiltzen da gehienetan, harik eta baldintza bete eta lazoa geratzen duen arte.
Aldagai lokal baten edo gehiketa kontatzaile baten hasieratzea egiten da, lehenbizi, eta behin bakarrik, gainera.Aginduak betetzen ditu, eta lazoa amaitzen duen bakoitzean, baldintza betetzen ote den begiratzen du. Baldintza TRUE den bitartean, aginduak egiten ditu behin eta berriz, eta kontrol-aldagaia aldatzen du. Baldintza FALSE den kasuan, lazoa amaitu egingo da, eta sententziatik atera. Hurrengo adibideak plakan integraturiko led-a 20 aldiz piztuitzaltzea ekarriko du. Kasu egin nola hasieran i kontrol aldagaia =0 gisa hasieratu eta integer gisa deklaratzen duen. Ondoren, 20 baino txikiagoa den artean jarrai dezala esaten dio, eta buelta bakoitzean (
I単aki Zarauz Leoz
145
Arduino
DBH 4. maila
i++ ), i-ren balioari bat gehitu diezaiola. Ondorioz, giltzen artean duen guztia 20 aldiz errepikatuko du, eta, kasu honetan, 13. pina piztu eta itzali.
3. while ( baldintza ) { } while lazoa etengabe errepikatuko da, parentesi artean duen baldintza FALSE bihurtzen den arte. Zerbaitek lazo barruan kontrolaldagaia aldatu beharra dauka; bestela, while lazoa ez da inoiz amaituko, eta programa blokeatuta geratuko da.Aldaketa hori kodean egin daiteke, while bukaeran aldagaiari balioa igoz, adibidez, edota kanpoko egoera bati baldintzatua izan daiteke, sentsore baten irakurketa, esaterako. Hurrengo adibidean, 200 aldiz idatziko du gauza bera serie-monitorean. Lehenengo, baldintza gisa, i<200 den artean giltza artean dagoena egin dezala esaten zaio. Ikusi nola giltza arteko azken agindua kontrol aldagaiari bat gehitzea den. Adibidea
4. do......while ( baldintza ) { } do lazoa errepikatuko du, while baldintza betetzen den artean. while lazoaren oso antzekoa da. Desberdintasun bakarra dago. Kasu honetan, baldintza lazoaren amaieran begiratzen da.
I単aki Zarauz Leoz
146
Arduino
DBH 4. maila
Horrek esan nahi du nahiz eta baldintza FALSE izan lazoaren barruan dauden aginduak behin behintzat egin egingo direla. Hurrengo adibidean, sentsore baten irakurketa x aldagai batean gordetzen da; ondoren, berdina egiten jarrai dezala esaten zaio, irakurketa 100 baino txikiagoa den bitartean.
8.
I/O digitalak
Irteera-sarrera digitalen berezitasuna bi eratara lan egin ahal izatea da. Hori dela medio, lehengo zein lan egingo duten deklaratzea tokatuko zaigu. Ondoren, zerrendatuak daude sarrerairteera digitalak kudeatzeko erabilienak diren funtzioak 1. pinMode(pin,Modua) void setup () funtzioan deklaratzen dira sarrera-irteera moduan. Hor esango zaio pin berezi bati ea INPUT (sarrera) edo OUTPUT (irteera) gisa lan egingo duen. Adibidea
OHARRA: Arduinoaren pin digitalek INPUT gisa lan egiten dute, deklaratzen ez baldin badira. Pull Up erresistentziak ere badituzte integraturik, baina deskonektatuta daude, berez. Bada Pull Up erresistentziak softwarez konektatzeko modu bat ere. Normalki, fisikoki konektatu ohi dira, kanpo-kableatu gisa â&#x20AC;&#x201C;aurrerago ikusiko dugun bezalaâ&#x20AC;&#x201C; baina erresistentzia faltan baldin bazaudete, trikimailu hau ongi etorriko zaizue,Arduinoaren sarrera erre ez dezazuen. Adibidea (Pull Up erresistentziak softwarez aktibatu)
IĂąaki Zarauz Leoz
147
Arduino
DBH 4. maila
2. digitalRead(pin) Pin bateko balioa irakurtzen du, HIGH edo LOW moduan. Gehienetan, aldagai baten barnean sartu ohi da irakurketa. Zein pinetako balioa irakurri nahi dugun esan behar diogu funtzioari, eta hori zenbaki bitartez edo aldagai bitartez esan diezaiokegu.
3. digitalWrite(pin) Pin jakin bati HIGH edo LOW balioa ematen dio. HIGH balioa emanez gero, pin horrek 5V izango ditu; LOW balioa emanez gero, berriz, 0V. Adibidea
9.
I/O analogikoak
Sarrera-irteera analogikoek, digitalek ez bezala, ez dute programaren hasieran zein egoeratan lan egingo duten deklaratu beharrik. Sarrera eta irteera analogikoak fisikoki pin desberdinak dira. 1. analogRead(pin) Pin analogiko bateko balioa irakurtzen du, eta 10 biteko konbertsore analogiko-digital baten bitartez 0-1023 arteko balio bat ematen dio irakurketari. Normalki, irakurketa aldagai batean gorde ohi da. Adibidea
I単aki Zarauz Leoz
148
Arduino
DBH 4. maila
2. analogWrite(pin,value) Balio seudo-analogiko bat idazten du esango diogun pinean. Balio hori PWM modulazioan oinarrituta idatziko du. Kontuan izan balioa 8 bitean emango diogula.Alegia, irakurketa analogiko baten balioa (10 bit) zuzenean irteera analogiko batean idatzi nahi dugun kasuetan, balio-tarte konbertsio bat egin beharko dugu. PWM irteera analogikoa onartzen duten irteerak hurrengoak dira Arduino Uno-an; 3, 5, 6, 9, 10 eta 11. Adibide honetan, 5. irteera analogikoan, 8biteko balio-tartetik (0 - 1023 arteko zenbakiak) erdikoa pasa diogu, alegia, 127. PWM pultsu-modulazioa erabiliz 5. irteeran 5V balio maximoaren erdia jarriko digu, 2,5V, alegia.
I単aki Zarauz Leoz
149
Arduino
I単aki Zarauz Leoz
DBH 4. maila
150
Arduino
DBH 4. maila
S4A: Scratch for Arduino
“S4A: Scratch for Arduino” Ikaslea: Ikasturtea: Data: Irakaslea: Iñaki Zarauz Leoz
Iñaki Zarauz Leoz
151
Arduino
DBH 4. maila
S4A: Scratch for Arduino 1. ariketa: SARRERA ANALOGIKOAREN IRAKURKETA “Diseinatu eta eraiki ezazu 0 eta 1. sarrera analogikoan konektaturiko sentsoreen balioak irakurtzen duen S4A programa. Sarrerako balioaren arabera, puntu gorria aurrera/atzera eta gora/behera higituko da.”
Iñaki Zarauz Leoz
152
Arduino
DBH 4. maila
S4A: Scratch for Arduino 2. ariketa: SARRERA ANALOGIKOAREN IRAKURKETA
“Diseinatu eta eraiki ezazu Orioko kaleetarik zehar higituko den ibilgailu bat gobernatuko duen S4A bideojokua. Ibilgailuaren biraketa angelua potentziometro batez aldatuko da”
Iñaki Zarauz Leoz
153
Arduino
DBH 4. maila
S4A: Scratch for Arduino
2. ariketa: PONG JOKUA SENTSOREEKIN
3. ariketa: Pong jokua “Diseinatu eta eraiki ezazu 2 eta 3. sarrera analogikoetan
konektaturiko sentsoreen balioen arabera gobernatzen den Pong jokua.” EBAZPENA:
OY ardatzaren eta A0 sentsorearen arteko erlazioa
Iñaki Zarauz Leoz
154
Arduino
DBH 4. maila
S4A: Scratch for Arduino 4. ariketa: Termometroa “Diseinatu eta eraiki ezazu 1. Sarrera analogikotik jasotako NTC termistentzia baten balioa erabiliz logela baten temperatura zein den adierazten duen bideojokua. Adierazle gisa semáforo bat erabili. Tenperaturaren semaforoa ondoko taulari jarraituz egokituko da. 0<A1<400: Semaforo berdea. 400<A1<800: Semaforo horia. 800<A1<1023. Semaforo gorria. Oharra. NTC termistentziaren balioa gutxitu egiten da temperatura igo ahala.”
Iñaki Zarauz Leoz
155
Arduino
DBH 4. maila
S4A: Scratch for Arduino 5. ariketa: Domotika
â&#x20AC;&#x153;Diseinatu eta eraiki ezazu etxeko logelaren aldagaiak kudeatuko dituen algoritmoa eta zirkuitua. Hauek dira kudeatu beharreko aldagaiak: a. Argiteria b. Berogailua. Bi adierazleek argiteri eta tenperatura balio bi finkatuko dituzte. Sentsoreen balioak hauen azpitik daudenean, bai argiteria eta baita berogailua ere piztuko ditu.â&#x20AC;?
IĂąaki Zarauz Leoz
156
Arduino
DBH 4. maila
S4A: Scratch for Arduino 6. ariketa: Termometroak eta temperatura eskalak “Diseinatu eta eraiki ezazu temperatura LM35 sentsorearen bitartez neurtuko duen algoritmoa eta programa. Ondoren, jasotako balioa temperatura eskala desberdinetan adierazi beharko da: a) Celsius eskala. Erreferentzia baliaok: (0 ºC, 100 ºC) b) Fahrenheit eskala. Erreferentzia baliak: (32 ºF, 212 ºF) c) Kelvin eskala. Erreferentzia baliak: (273 ºK, 283 ºK)” A4 sarrera analogikoan jasotzen da LM35 sentsorearen balioa A4: (0, 1023) LM35 eta Celsius eskalaren arteko erlazioa: Tenperatura (ºC) = 0.488 * A4 EBAZPENA:
Iñaki Zarauz Leoz
157
Arduino
DBH 4. maila
S4A: Scratch for Arduino 7. ariketa: Serbomotoreen kontrola “Diseinatu eta eraiki ezazu serbomotore baten mugimendua kontrolatuko duen programa, ondorengo baldintzak beteaz: a) A0 potentziometroaren arabera biratuko du serbomoteak. b) A0 eta serbomotorearen angelua lotzen dituen erlazioa.
α Biraketa angelua. α =(0º,180º)
A0 Potentziometroa A0=(0, 1023)
c) Serbomotoreen sarrera ataza MSE Arduino I/O oskolan: D3 edo D5. d) S4A programaren irteerak serbomotoreentzat: D8 eta D12
Iñaki Zarauz Leoz
158
Arduino
DBH 4. maila
ArduBlock
“ArduBlock”
Ikaslea: Gela: Ikasturtea: Data: Irakaslea: Iñaki Zarauz Leoz
Iñaki Zarauz Leoz
159
Arduino
DBH 4. maila
TEKNO 4. maila Txertatutako sistemak “ARDUBLOCK”
Iñaki Zarauz Leoz
160
Arduino
DBH 4. maila
AURKIBIDEA 1. ARIKETA: IRTEERA DIGITALAK 2. ARIKETA: AGINDU ERREPIKAKORRAK 3. ARIKETA: SEMAFOROA 4. ARIKETA: SARRERA ANALOGIKOAK 5. ARIKETA: SENTSOREAK. Potentziometroak eta termstentziak 6. ARIKETA: DOMOTIKA. Aldagaien kudeaketa 7. ARIKETA: SARRERA DIGITALAK 8. ARIKETA: KONTAGAILUAK 9. ARIKETA: IRTEERA PROGRESIBOAK 10. ARIKETA: FUNTZIO LOGIKOAK 11. ARIKETA: SERBOMOTOREENKONTROLA 12. ARIKETA: SERBOMOTOREEN KONTROLA POTENTZIOMETROAZ 13. ARIKETA: SERBOMOTORE JARRAIEN KONTROLA
I単aki Zarauz Leoz
161
Arduino
DBH 4. maila
1. ariketa: IRTEERA DIGITALA “Diseinatu eta eraiki ezazu 0,5 segunduro led bat piztu eta itzaliko duen sketcha.” 1) ZIRKUITUA
2) ARDUBLOCK ALGORITMOA
3) ARDUINO SKETCHA
Iñaki Zarauz Leoz
162
Arduino
DBH 4. maila
2. ariketa: AGINDU ERREPIKAKORRAK “Diseinatu eta eraiki ezazu 20 aldiz, led bat, segundero, piztu eta itziliko duen programa. Ondoren zirkuitua eraiki eta funtzionamendua konprobatu.” 1) ZIRKUITUA
2) ARDUBLOCK ALGORITMOA
3) ARDUINO SKETCHA
Iñaki Zarauz Leoz
163
Arduino
DBH 4. maila
3. ariketa: “SEMAFOROA” “Hiru led erabilita, diseinatu eta eraiki ezazu semaforo bat gobernatuko duen zirkuitua eta programa.” 1) ZIRKUITUA
2) ARDUBLOCK ALGORITMOA
Iñaki Zarauz Leoz
3) ARDUINO ALGORITMOA
164
Arduino
DBH 4. maila
4. ariketa: “SARRERA ANALOGIKOA. Potentziometroa sentrore gisa” “Diseinatu eta eraiki ezazu potentziometro baten aginduak jarraituz leda piztu ala itzaliko duen zirkuitua eta algoritmoa. Sarrera 250-eko balioa gainditzen duenean leda piztuko da eta azpitik dagoenean itzali egingo da.” 1) ZIRKUITUA
2) ARDUBLOCK ALGORITMOA
Iñaki Zarauz Leoz
3) ARDUINO ALGORITMOA
165
Arduino
DBH 4. maila
5. ariketa: “SENTSOREAK: Potentziometroak eta termistentziak” “Diseinatu eta eraiki ezazu bi sentsore analógico dituen zirkuitua: Potentziometroa eta termistentzia. Termistentziak potentziometroak baino balio handiagoa duenean leda piztu egingo da eta itzali egingo da kontrako egoeran ” 1) ZIRKUITUA
3) ARDUINO ALGORITMOA
2) ARDUBLOCK ALGORITMOA
Iñaki Zarauz Leoz
166
Arduino
DBH 4. maila
6. ariketa: “DOMOTIKA: Aldagaien kudeaketa” “Diseinatu eta eraiki etxe bateko 3 argi eta berogailu elektriko bat kontrolatuko dituen sistema. Kanpoko argitasunaren arabera eta tenpraturaren arabera piztu/itzaliko dira logelako hiru lanparak eta berogailu elektrikoa. Sarrerako seinale analogikoak:
Sarrerako seinale digitalak:
A1= s-tenp =Tenperatura sentsorea A2= s-argi= Argitasun sentsorea
PIN PIN PIN PIN PIN
13= 12= 11= 05= 04=
Lanpara 1 Lanpara 2 Lanpara 3 Bentiladorea Berogailu elektrikoa
Argitasunaren kontrolerako algoritmoa: i) s-argi (A2)< 100 Lanpara 1 piztuta (PIN 13=HIGH) ii) s-argi (A2)< 150 Lanpara 2 piztuta (PIN 12=HIGH) iii) s-argi (A2)< 200 Lanpara 3 piztuta (PIN 11=HIGH) Tenperatura kontrolerako algoritmoa: i) s-tenp (A1)< 100 Berogailua piztu (PIN 4=HIGH) Bentiladorea itzali (PIN 5=LOW) ii) s-argi (A1)>180 Berogailua itzali (PIN 4=LOW) Bentiladorea piztu (PIN 5=HIGH) 1) ZIRKUITUA
Iñaki Zarauz Leoz
167
Arduino
DBH 4. maila
2) ARDUBLOCK ALGORITMOA
I単aki Zarauz Leoz
168
Arduino
DBH 4. maila
3. ARDUINO SKETCHA
I単aki Zarauz Leoz
169
Arduino
DBH 4. maila
7. ariketa: “SARRERA DIGITALAK” “Diseinatu eta eraiki ezazu sakagailu batek agintzen duenean, argi bat, 2 segunduro, piztu eta itzaliko duena, efektua 17 aldiz errepikatuko delarik”. Sakagailua A0 sarreran konekatuko dugu. Irteera 13. irteeran konektatuko dugu” 1) ZIRKUITUA
2) ARDUBLOCK ALGORITMOA
Iñaki Zarauz Leoz
170
Arduino
DBH 4. maila
3) ARDUINO ALGORITMOA
I単aki Zarauz Leoz
171
Arduino
DBH 4. maila
8. ariketa: “SARRERAKO SEINALEEN KONTAGAILUA” “Diseinatu eta eraiki ezazu 2.sarreran (A2) jasotzen den seinalea zenbatuko duenzirkuitua eta algoritmoa. Kont izeneko aldagai bat definituiko dugu, kontagailu gisa jokatuko duena sarrerako pultsuak zenbatuz. Behin 10 zenbatuta, led bat piztuko da eta kontaketa berriz ere zerotik hasiko da ” Algoritmoak honako agindu logika jarraituko du: Sarrerako egoera jasoko da eta kont=10 baldintzarekin konparatuko da. Baldintza Egia bada, argia piztuko da, eta ez bada, kont aldagaia unitate batetan handiagotuko da (kont=kont+1) 1) ZIRKUITUA
2) ARDUBLOCK ALGORITMOA
Iñaki Zarauz Leoz
172
Arduino
DBH 4. maila
3) ARDUINO ALGORITMOA
I単aki Zarauz Leoz
173
Arduino
DBH 4. maila
9. ariketa: IRTEERA PROGRESIBOAK. Led bat progresiboko piztu/itzali. “Diseinatu eta eraiki ezazu PIN10 irteerara 0-tik 255-ra bitarteko balio analogikoak igorriko dituen programa.” Kont izeneko aldagai batek irteerako balioa handiagotzen edo txikiagotzen joango da, eta dagokion balioa, irteeran adieraziko du, balio desberdineko irteera seinaleak igorriz.
1) ZIRKUITUA
2) ARDUBLOCK ALGORITMOA
Iñaki Zarauz Leoz
174
Arduino
DBH 4. maila
3) ARDUINO ALGORITMOA
I単aki Zarauz Leoz
175
Arduino
DBH 4. maila
10.
ariketa: FUNTZIO LOGIKOAK. AND, OR, NAND eta NOR. “Diseinatu eta eraiki ezazu sarrerako bi agindu digitalen arabera, irteerako lau led piztu/itzaliko dituen zirkuitua eta programa, aginduak ondorengo funtzio digitalei jarraituz: Sarrera digitalak: D4 eta D7 Irteera digitalak: D11 (gorria); D10 (horia); D09 (berdea); D06 (zuria)” a) AND FUNTZIOA PIN D4 Sarrera 1 0 0 1 1 b) OR FUNTZIOA
PIN D7 Sarrera 2 0 1 0 1
PIN 11 AND 0 0 0 1
PIN D4 Sarrera 1 0 0 1 1
PIN D7 Sarrera 2 0 1 0 1
PIN 10 OR 0 1 1 1
PIN D12 Sarrera 2 0 1 0 1
PIN 09 NAND 1 1 1 0
PIN D12 Sarrera 2 0 1 0 1
PIN 06 NOR 1 0 0 0
c) NAND FUNTZIOA PIN D8 Sarrera 1 0 0 1 1 a) NOR FUNTZIOA PIN D8 Sarrera 1 0 0 1 1
Iñaki Zarauz Leoz
176
Arduino
DBH 4. maila
1) ZIRKUITUA
2) ARDUBLOCK ALGORITMOA
I単aki Zarauz Leoz
177
Arduino
DBH 4. maila
3) ARDUINO ALGORITMOA
I単aki Zarauz Leoz
178
Arduino
I単aki Zarauz Leoz
DBH 4. maila
179
Arduino
11.
DBH 4. maila
ariketa: SERBOMOTOREEN KONTROLA.
“Diseinatu eta eraiki ezazu lau sakagailuei eragiterakoan, serbomotore baten kokapena kontrolatuko duen zirkuitua eta programa. Motorearen kokapena, argi desberdinen erabilerarekin adieraziko da, ondorengo taulari jarraituz: Motorea 3. irteeran konektatuko da (D03)” Sakagailua D4 D7 D8 D12
Angelua 0º 45º 90º 180º
D11 D10 D09 D06
Argia (Gorria) (Horia) (Berdea) (zuria)
1) ZIRKUITUA
Iñaki Zarauz Leoz
180
Arduino
DBH 4. maila
2) ARDUBLOCK ALGORITMOA
I単aki Zarauz Leoz
181
Arduino
DBH 4. maila
3) ARDUINO SCRATCHA
I単aki Zarauz Leoz
182
Arduino
DBH 4. maila
12. ariketa: SERBOMOTOREEN KONTROLA POTENTZIOMETROAZ “Diseinatu eta eraiki ezazu serbomotore baten kokapena kontrolatuko duen ArduBlock algoritmoa eta zirkuitua. Serbomotorearen angelua potentziometro batez gobernatuko da, ondorengo taulari jarraituz: Potentziometroaren seinalea (0-1023)
Serbomotoaren angelua (0º-180º)
0
0º
128
22,5º
256
45º
512
90º
768
135º
1023
180º
Formuala matematikoa: y=y0+m(x-xo) x= Potentziometroa (0-1023) y= Serbomotorea (0º-180º)
m
180 0.1759 1023
y 0.1759 A0
ARDUBLOCK ALGORITMOA
Iñaki Zarauz Leoz
183
Arduino
DBH 4. maila
13. ariketa: SERBOMOTORE JARRAIEN KONTROLA
“Diseinatu eta eraiki ezazu serbomotore jarrai baten higidura kontrolatuko duen ArduBlock programa. Serbomotorearen jarrai baten biraketa abiadura, adierazitako angeluaren balio kontrolatuz gobernatzen da, ondorengo balioei jarraituta:
Serbomotorearen abiadura
Abiadura
Balio analogikoa
Adierazitako angelua
Abiadura maximoa kontrako
V = -max
V=0
α = 0º
norantzan α = 85º
Abiadura geldoa kontrako norantzan Abiadura minimoa
V=0
V=127
α = 95º
Abiadura geldoa Abiadura maximoa
α = 90º
V = max
V=255
α = 180º
Biraketa abiadura sentsore baten baliorekin erlazionatu nahi bada, ondorengo erlazioa eraiki beharko da: ARDUBLOCK ALGORITMOA
Iñaki Zarauz Leoz
184
Arduino
DBH 4. maila
MYOPENLAB
“MyOpenLab”
Ikaslea: Gela: Ikasturtea: Data: Irakaslea: Iñaki Zarauz Leoz
Iñaki Zarauz Leoz
185
Arduino
DBH 4. maila
Egilea: I単aki Zarauz Leoz
I単aki Zarauz Leoz
186
Arduino
DBH 4. maila
AURKIBIDEA
III.
PROIEKTUA: Sarrera digitalak: AND
2. PROIEKTUA: Funtzio logikoak: AND, OR, NAND, NOR 3. PROIEKTUA: Hesia 4. PROIEKTUA: Konparaketa digitala 5. PROIEKTUA: Konparaketa analogikoak 6. PROIEKTUA: Konparaketa bikoitza 7. PROIEKTUA: Denboraren kontrola 8. PROIKETUA: Motoreen kontrola 9. PROIEKTUA: Garajeko atea 10. PROIEKTUA: Serie eta paraleloko zirkuituak 11. PROIEKTUA: Fluxu diagramak 12. PROIEKTUA: Bigarren mailako ekuazioak 13. PROIEKTUA: Jangelako argiteria. 14. PROIEKTUA: Zinta garaitzailea 15. PROIEKTUA: Termometroa (ªC ºK eta ºF) 16. PROIEKTUA: Fluxu diagramak. Semaforoa 17. PROIEKTUA: Fluxu diagramak. Aldagaien konparaketa 18. PROIEKTUA: Fluxu diagramak. Segundu kontagailua. 19. PROIEKTUA: Fluxu diagramak. Gasolindegia 20. PROIEKTUA: Fluxu diagramak. Igogailua
Iñaki Zarauz Leoz
187
Arduino
DBH 4. maila
1. PROIEKTUA: “Sarrera digitalak: AND” “Diseinatu ezazu sarrerako bi etengailu eta irteerako argi bat dituen makina birtuala, AND funtzioaz lana egingo dutelarik, ondorengo taulari jarraituz:” Sarrera Sarrera AND I1 I2 O1 0 0 0 0 1 0 1 0 0 1 1 1
SOLUZIOA
Iñaki Zarauz Leoz
188
Arduino
DBH 4. maila
2. PROIEKTUA: “Funtzio logikoak: AND, OR, NAND, NOR” “Diseinatu ezazu sarrerako bi etengilu eta irteerako lau argi dituen makina birtuala. Irteerak AND, OR, NAND eta NOR funtzioei erantzungo diete ondoko taulari jarraituz:”
Sarrera Sarrera AND I1 I2 O1 0 0 0 0 1 0 1 0 0 1 1 1
OR O2 0 1 1 1
NAND NOR O3 O4 1 1 1 0 1 0 0 0
SOLUZIOA
Iñaki Zarauz Leoz
189
Arduino
DBH 4. maila
3. PROIEKTUA: “Hesia” “Diseinatu ezazu sarre gisa bi etengilu izanik, hesi bat igo eta jeitsiko duen makina birtuala. III. A etengailuari sakatzean, hesia eskubiruntz jeitsiko da. IV. B etengailua sakatzean, heria ezkerreruntz jeitsiko da. V. Hesia mugimenduan dagoenean, argi gorri batez ere adierazi beharko da.”
SOLUZIOA
Iñaki Zarauz Leoz
190
Arduino
DBH 4. maila
4. PROIEKTUA: Konparaketa digitalak “ Diseinatu eta eraiki ezazu bi etengailuen konparaketa egingo duen makina birtuala (VM-a). D1 etengailua D2 etengailuarekin alderatzean, led bat piztuko da D1>D2 egoera gertatzean denean.” Ebazpena:
Iñaki Zarauz Leoz
191
Arduino
DBH 4. maila
5.PROIEKTUA: Konparaketa analogiakoak “Diseinatu eta eraiki ezazu A eta B etengailu analogikoak dituen VMa. A>B denean, irteerako leda piztu egingo da.” SOLUZIOA
Iñaki Zarauz Leoz
192
Arduino
DBH 4. maila
6. PROIEKTUA: “Konparaketa bikoiza: Magnitude boolearrak eta double motako magnitudeak” “Diseinatu eta eraiki ezazu bi magnitude konparatuko dituen makina birtuala. II. Bi magnitude boolear konparatu eta D1>D2 kasuan, led berde bat piztu. III. Bi magnitude oso konparatu eta D1>D2 kasuan, led gorri bat piztu
SOLUZIOA
Iñaki Zarauz Leoz
193
Arduino
DBH 4. maila
7. PROIEKTUA: Denboraren ordulari-egutegia “Diseinatu eta eraiki ezazu ordu, minutua eta segundua adierazten dituen ordularia eta eguna, hilabetea eta urtea adieraziko dituen egutegia”.
SOLUZIOA
Iñaki Zarauz Leoz
194
Arduino
DBH 4. maila
8. PROIEKTUA: Motoreen kontrola “ Diseinatu eta eraiki ezazu motore baten kontrola gauzatzen duen VMa. a. Lehen sakagailuak abian jarriko du motorea. b. Bigarren sakagailuak motorea gelditu egingo du. c. Hirugarren sakagailuak motorearen alarma abiaraziko du matxuraren berri emateko. d. Laugarren sakagailuak motorea berriabiaraziko du.”
SOLUZIOA
Iñaki Zarauz Leoz
195
Arduino
DBH 4. maila
9. PROIEKTUA: Garajeko atea “Diseintu eta eraiki ezazu garaje bateko atea ireki eta itxiko duen VMa. a. Sakagailu batek irekitze prozesua abian jarriko du. b. Bi ledek irekitze/ixte egoerak adierazkiko dituzte. c. Hirugarren ledak prozedua eteteko aukera emango du.”
SOLUZIOA
Iñaki Zarauz Leoz
196
Arduino
DBH 4. maila
10. PROIEKTUA: Serie eta araleloko zirkuituaK “Diseinatu eta eraiki ezazu pareleloan bi bonbila piztu eta itzaltzeko gai den zirkuitua. Etengailu batek zirkuitua ireki edo itxi egingo du.”
SOLUZIOA
Iñaki Zarauz Leoz
197
Arduino
DBH 4. maila
11. PROIEKTUA: Fluxu diagramak. “Diseinatu eta eraiki ezazu led bat piztu eta itzaliko duen makina birtuala. Leda, i aldagaiak 50ko balioa gainditzen duenean piztuko da eta itzalita mantenduko da i aldagaiak 50ko balioa gainditzen ez duenean.”
SOLUZIOA:
Iñaki Zarauz Leoz
198
Arduino
DBH 4. maila
12. PROIEKTUA: Bigarren mailakok ekuazioak “Diseinatu eta eraiki ezazu bigarren mailako ekuazioak askatzen dituen makina birtuala. i) Sarrera gisa a, b eta c koefizienteak jasoko ditu. ii) Irteera gisa X1 eta X2 erroak kalkulatuko ditu.”
SOLUZIOA:
Iñaki Zarauz Leoz
199
Arduino
DBH 4. maila
13. PROIEKTUA: Jangelako argiteria â&#x20AC;&#x153;Diseinatu eta eraiki ezazu jangelako argiteria eta sukaldeko ontzigarbigailua martxan jarriko dituen sistema domotikoa. a. Lehen etengailuak lehenengo argi piztu/itzaliko du. b. Bigarren eta hirugarren etengailuak paraleloan piztu/itzaliko dute bigarren argia. c. Hirugarren etengailuak labea piztuko jarriko du. d. Ordulariak uneko ordua adieraziko du.
SOLUZIOA:
IĂąaki Zarauz Leoz
200
Arduino
DBH 4. maila
14. PROIEKTUA: Zinta garaitzailea â&#x20AC;&#x153; Diseinatu eta eraiki ezazu ezkerretik eskuinera poteak garraitatuko dituen makina birtuala. a) Makinak bi kontrol izango ditu: i) Zinta abian jarriko duen etengailu bat. ii) Zinta berriz ere abiaraziko duen etengailua. 9. Makinak lau adierazle izango ditu. 10. Zinta martxan dagoela adieraziko duen leda. 11. Zintaren hasiera, erdigunea eta amaiera adieraziko duten hiru led.
SOLUZIOA:
IĂąaki Zarauz Leoz
201
Arduino
DBH 4. maila
15. PROIEKTUA: Termometroa (ªC ºk eta ºF) “ Diseinatu eta eraiki ezazu tenperatura Celsius eskalan jasoko duena eta Kelvin eskalara eta Fahrenheit eskalara moldatu eta gero, bi adierazleetan adieraziko duen termometroa. 3) Sarrera gisa gurpil motako kontrol bat izango du tenperatura adierazteko. 4) Irteera gisa bi adierazle izango ditu tenperatura ºC-tan eta ºFetan adierazteko.
SOLUZIOA:
Iñaki Zarauz Leoz
202
Arduino
DBH 4. maila
16. PROIEKTUA: Fluxu diagramak. Semaforoa â&#x20AC;&#x153;Diseinatu eta eraiki ezazu semaforo bat gobernatzen duen makina birtuala. a) Argi gorria bost segunduz piztuko da. b) Argi berdea sazpi segunduz piztuko da. c) Argi laranja bi segunduz piztuko da.
SOLUZIOA:
IĂąaki Zarauz Leoz
203
Arduino
DBH 4. maila
17. PROIEKTUA: Fluxu diagramak. Aldagaien konparaketa “Diseinatu eta eraiki ezazu bi aldagaien konparaketa egingo duen makina birtuala. i) “a” aldagaia “b” aldagaia baino handiagoa denean argi berde batez adieraziko da. ii) “a” aldagaia “b” aldagaia baino txikiagoa denean, argi borri batez adierazikoa da. Programak fluxu diagrama batez gobernatuko da, non “arg” izeneko aldagai bat erabiliko den.”
SOLUZIOA:
Iñaki Zarauz Leoz
204
Arduino
DBH 4. maila
18. PROIEKTUA: Fluxu diagramak. Segundu kontagailua. “Diseinatu eta eraiki ezazu 30 segundu zenbatuko dituen kontagailua. Zenbaketa markagaikuan adieraziko da, eta helmugara iristean programa gelditu egingo da.”
SOLUZIOA:
Iñaki Zarauz Leoz
205
Arduino
DBH 4. maila
19. PROIEKTUA: Fluxu diagramak. Gasolindegia “Diseinatu eta eraiki ezazu gasolindegi baten surtidorea gobernatzen duen makina birtuala. i) Adierazle batek (“litroak” )zenbat litro erosi nahi diran adieraziko du. ii) Beste adierazle batek (“bolumena”) kontxearen deposituak zenbat gasolina litro dituen adieraziko du. iii) “Bete” sakagailuari sakatzean, kontagailu batek zenbat litro gasolina ixurtzen ari direngaren adieraziko du. iv) Bi leden bitartez lan egoera adieraziko da. a) Led gorriak gasolindegia abian dela adieraziko du. b) Led berdeak gasolina isurtzen ari garela adieraziko du.
Iñaki Zarauz Leoz
206
Arduino
DBH 4. maila
SOLUZIOA:
I単aki Zarauz Leoz
207
Arduino
DBH 4. maila
20. PROIEKTUA: Fluxu diagramak. Igogailua “Diseinatu eta eraiki ezazu hiru pisutako igogailu automatiko bat. a) Zenbakiko adierazle batek igogailua zein pisutan dagoen adierazik o du. b) Argizko adierazle batek atea ireki egin dela adieraziko du. c) Jarraitu beharreko sekuentzia: 1-3-1-2-1-3-1-2-1-3-1-2-1-3...”
SOLUZIOA:
Iñaki Zarauz Leoz
208
Arduino
DBH 4. maila
MYOPENLAB eta Arduino
“MyOpenLab eta Arduino” Ikaslea: Gela: Ikasturtea: Data: Irakaslea: Iñaki Zarauz Leoz
Iñaki Zarauz Leoz
209
Arduino
DBH 4. maila
Arduino MyOpenLab
Egilea: I単aki Zarauz Leoz
I単aki Zarauz Leoz
210
Arduino
DBH 4. maila
ARDUINO eta MYOPENLAB
AURKIBIDEA I.
SARRERA
II.
ARIKETA-PROIEKTUAK
1. PROIEKTUA: Dirdirkako irteera (D13)
5. or
2. PROIEKTUA: Etengailua bistaratze panelean
7. or
3. PROIEKTUA: Etengailua eta hesia
8. or
4. PROIEKTUA: Bi sarrera analogiko konparatu
9. or
5. PROIEKTUA: Adierazle analogikoak
10. or
6. PROIEKTUA: Adierazle digitalak
11. or
7. PROIEKTUA: Termometro digitala
13. or
8. PROIKETUA: Alarma sistema
14. or
9. PROIEKTUA: Argitasun sentsoreak
16. or
10. PROIEKTUA: Pultsu kontagailua
18. or
11. PROIEKTUA: Arduino I/O shield
20. or
12. PROIEKTUA: Etxeko sarrera
22. or
I単aki Zarauz Leoz
211
Arduino
DBH 4. maila
I. SARRERA Arduinoaren sarrera/irteera atazak ondorengo moduan antolatzen dira MyOpenLab softwareaz maneiatzen direnean: SARRERA IRTEERAK
Sarrera analogikoa Sarrera analogikoa Sarrera analogikoa Sarrera analogikoa Sarrera analogikoa Sarrera analogikoa Komunikazio ataza Sarrera digitala 1 Sarrera digitala 2 Sarrera digitala 3 Sarrera digitala 4 Sarrera digitala 5 Sarrera digitala 6 Irteera digitala 1 Irteera digitala 2 Irteera digitala 3 Irteera digitala 4 Irteera digitala 5 Irteera digitala 6
1 2 3 4 5 6
ARDUINO pinak A0 A1 A2 A3 A4 A5 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13
TINKERKIT pinak I0 I1 I2 I3 I4 I5 O5 O4 O3
O2 O1 O0
ARDUINO I/O pinak Pot.1 Pot.2 Argia IR hurbilt. Tenp. D2 M+ D4 MO6-LED D7 D8 O9-LED O10-LED O11-LED D12 -
MyOpenLab pinak ADC-1 ADC-2 ADC-3 ADC-4 ADC-5 ADC-6 In-1 In-2 In-3 In-4 In-5 In-6 Out-1 Out-2 Out-3 Out-4 Out-5 Out-6
Beraz, lotura elektrikoak gauzatzerakoan, kontutan hartu beharko da taula honetako atxikipena eraikitako zirkuiteriak ondo funtzionatzeko. Ondoko iruadian, Arduino plaka deskribatzen da:
I単aki Zarauz Leoz
212
Arduino
DBH 4. maila
Ondoko iruadian, MyOpenLab-eko Arduinoarentzat interfazea deskribatzen da:
Ondoko iruadian, Tinkerkit Shield plaka deskribatzen da:
Ondoko iruadian, Arduino I/O Shield plaka deskribatzen da:
I単aki Zarauz Leoz
213
Arduino
DBH 4. maila
II. ARIKETA-PROIEKTUAK: 1. PROIEKTUA: “Dirdirka egiten duen irteerako argia” “Diseinatu eta eraiki ezazu led argi bat, segunduro, dirdirka piztu/itzaliko duen makina birtuala. Leda, Arduinoaren 13. irteeran konektatuko dugu eta bistaratze panelean, ondorengo makina diseinatuko dugu: BISTARATZE PANELA
ZIRKUITU ELEKTRIKOA
Iñaki Zarauz Leoz
214
Arduino
DBH 4. maila
SOLUZIOA: ZIRKUITU-PANELA
I単aki Zarauz Leoz
215
Arduino
DBH 4. maila
2. PROIEKTUA: Etengailua bistaratze panelean “Diseinatu eta eraiki ezazu bistaratze paneleko botoi bati sakatzean, Arduinoko D9. irteeran (Tinkerkit O2) lotutako leda piztu eta itzaliko duen makina birtuala.”
BISTARATZE-PANELA
ZIRKUITU ELEKTRIKOA
SOLUZIOA:
ZIRKUITU-PANELA
Iñaki Zarauz Leoz
216
Arduino
DBH 4. maila
3. PROIEKTUA: Etengailua eta hesia “Diseinatu eta eraiki ezazu kanpoko etengailu bat sakatzean (D07), hesi birtual bat igo eta jeitsi egingo duen makina birtuala.” ZIRKUITU ELEKTRIKOA
SOLUZIOA:
Iñaki Zarauz Leoz
BISTARATZE-PANELA
ZIRKUITU-PANELA
217
Arduino
DBH 4. maila
4. PROIEKTUA: Bi sarrera analogiko konparatu “Diseinatu eta eraiki ezazu bi sentsore analogikoetatik jasotako balioak konparatuko dituen makina birtuala (aA0; bA1). i) a>b led gorria piztuko da bistaratze penelean. ii) a<b led berde bat piztuko da bistaratze panelean.” BISTARATZE-PANELA
ZIRKUITU ELEKTRIKOA
ALDAGAIEN ZERRENDA SOLUZIOA:
Iñaki Zarauz Leoz
ZIRKUITU-PANELA
218
Arduino
DBH 4. maila
5. PROIEKTUA: Adierazle analogikoak “Diseinatu eta eraiki ezazu argitasun sentsore baten balioak bistaratze-panelean adieraziko dituen makina birtuala. a) LDR batez eta erresistentzia batez argitasun magnitudearen balioa jasatzen dituen sentsorea eraikiko dugu. b) Bistaratze panelean jasotako balioa adieraziko dugu. BISTARATZE-PANELA
SOLUZIOA:
Iñaki Zarauz Leoz
ZIRKUITU ELEKTRIKOA
ZIRKUITU-PANELA
219
Arduino
DBH 4. maila
6. PROIEKTUA: Adierazle digitalak “Diseinatu eta eraiki ezazu kanpoko hiru sakagailuri eragitean, bistaratze panelean semaforo bat gobernatuko duen makina birtuala”
BISTARATZE-PANELA
ZIRKUITU ELEKTRIKOA
Iñaki Zarauz Leoz
220
Arduino
DBH 4. maila
SOLUZIOA:
ZIRKUITU-PANELA
I単aki Zarauz Leoz
221
Arduino
DBH 4. maila
7. PROIEKTUA: Termometro digitala “Diseinatu eta eraiki ezazu LDR erresistentzia batez eta potentziometro batez eraikitako tenperatura sentsore bat erabiliz, pantailan tenperaturaren balioa ºC-tan, ºK-etan eta ºF-etan adieraziko duen makina birtuala”
BISTARATZE-PANELA
ZIRKUITU ELEKTRIKOA
SOLUZIOA: ZIRKUITU-PANELA
Iñaki Zarauz Leoz
222
Arduino
DBH 4. maila
8. PROIEKTUA: Alarma sistema “Diseinatu eta eraiki ezazu ikastolako alarma sistema eratuko duen makina birtuala. Bistaratze-paneleko ereduari jarraituz, eremu nagusietan, sentsore desberdinak kokatuko ditugu, eta gertaera desberdinak, bistaratzepanelean adieraziko zaizkigu. Sentsoreak ondorengo Arduinoko sarrerak erabiliz kokatuko ditugu: ARDUINO pinak D6 D5 D3
TINKERKIT pinak O3 O4 O5
MyOpenLab pinak In-2 In-3 In-5
D6 O3In-2 Batzar aretoko sarrera. D5 O4In-3 Sarrera nagusia. D3 O5In-5 Emergentziazko atea.
Eremua Batzar aretoa Sarrera nagusia Emergentziazko atea
BISTARATZE-PANELA
ZIRKUITU ELEKTRIKOA
Iñaki Zarauz Leoz
223
Arduino
DBH 4. maila
SOLUZIOA: ZIRKUITU-PANELA
I単aki Zarauz Leoz
224
Arduino
DBH 4. maila
9. PROIEKTUA: Argitasun sentsoreaen eboluzioa denboran “Diseinatu eta eraiki ezazu LDR argitasun sentsore batez jasotako argitasun balioak, segunduro, grafikoki adieraziko dituen makina birtuala”
BISTARATZE-PANELA
ZIRKUITU ELEKTRIKOA
Iñaki Zarauz Leoz
225
Arduino
DBH 4. maila
SOLUZIOA: ZIRKUITU-PANELA
I単aki Zarauz Leoz
226
Arduino
DBH 4. maila
10. PROIEKTUA: Pultsu kontagailua “Diseinatu eta eraiki ezazu D7 sarreratik 10 pultsu zenbatuko dituen makina birtuala. Pultsuak kontagailu batetan zenbatuko ditu eta 10 kopurura iristerakoan, sistema berrarabiazi egingo da”.
BISTARATZE-PANELA
ZIRKUITU ELEKTRIKOA
Iñaki Zarauz Leoz
227
Arduino
DBH 4. maila
SOLUZIOA: ZIRKUITU-PANELA
I単aki Zarauz Leoz
228
Arduino
DBH 4. maila
11. PROIEKTUA: Arduino I/O (MSE BILBO) shieldaren interfazea â&#x20AC;&#x153;Diseinatu eta eraiki ezazu Arduino I/O shield txartelaren interfazea izando den makina birtuala, non sarrera analogikoak, sarrera digitalak eta irteera digitalak duten balioa bistaratze-panelean adieraziko diren, ondorengo eskemari jarraituta: SARRERA IRTEERAK
Sarrera digitala 1 Sarrera digitala 2 Sarrera digitala 3 Sarrera digitala 4 Sarrera digitala 5 Sarrera digitala 6 Irteera digitala 1 Irteera digitala 2 Irteera digitala 3 Irteera digitala 4 Irteera digitala 5 Irteera digitala 6 Sarrera analogikoa Sarrera analogikoa Sarrera analogikoa Sarrera analogikoa Sarrera analogikoa Sarrera analogikoa
ARDUINO pinak
1 2 3 4 5 6
D7 D6 D5 D4 D3 D2 D8 D9 D10 D11 D12 D13 A0 A1 A2 A3 A4 A5
TINKERKIT pinak
O3 O4 05
O2 O1 O0
I0 I1 I2 I3 I4 I5
ARDUINO I/O
D7(I) Etengailua D6(O). LED zuria M-; Serv.02 D4(I) Etengailua M+; Serv. 01 D2(O) Txirrina D8(I) Etengailua D9(O) LED berdea D10(O) LED horia D11(O) LED gorria D12(I) Etengailua A0 (Pot.) A1(Pot.) A2 (LDR) A3 (Infr.) A4 (NTC term.) -
MyOpenLab pinak
In-1 In-2 In-3 In-4 In-5 In-6 Out-1 Out-2 Out-3 Out-4 Out-5 Out-6 ADC-1 ADC-2 ADC-3 ADC-4 ADC-5 ADC-6
BISTARATZE-PANELA
IĂąaki Zarauz Leoz
229
Arduino
DBH 4. maila
SOLUZIOA:
ZIRKUITU-PANELA
I単aki Zarauz Leoz
230
Arduino
DBH 4. maila
12. PROIEKTUA: Etxeko sarreraren kontrola “Diseinatu eta eraiki ezazu etxeko sarrerako hesia ireki/itxiko duen makina birtuala. Horretaz gain, beste hauek ere kontutan hartu beharko ditu: a) Kontagailu batez, hesia zeharkatuta, aparkaleku barruan dauden ibilgailuen kopurua adierziko da. b) LED argi-panel batek sartu/irteerak eta atea irekitze/ixte egoerak adieraziko dira. c) LED argi-panel batek batzez, irekitzeko deia edo/eta segurtasun deiak egiten ari diren adieraziko da.” BISTARATZE-PANELA
ZIRKUITU ELEKTRIKOA
Iñaki Zarauz Leoz
231
Arduino
DBH 4. maila
ZIRKUITU-PANELA
SOLUZIOA:
I単aki Zarauz Leoz
232
Arduino
I単aki Zarauz Leoz
DBH 4. maila
233