2014.06.16.
21:36

Írta: harsanyireka

08. Példák analóg pinekhez

Lektorált tananyag, ami a BKF Digitális és Kollaboratív Művészet (DIKOM) pályázatnak keretén belül valósult meg. Szerző: Harsányi Réka, Társszerző: Juhász Márton András, Lektor: Fernezelyi Márton

Analóg bemenet kiolvasása

A potméter egy változtatható ellenállású gomb, amit most analóg szenzorként értelmezünk, így analóg pinbe kötve ki tudjuk olvasni az értékeit. A kódban ezzel a kiolvasott értékkel a beépített LED-ünk villogási sebességét változtatjuk.

Az analogRead() parancs a beérkező 0–5 V közötti feszültségértéket átalakítja egy 0–1023 közötti digitális értékké. Ezt az Arduino egyik belső áramköre végzi el, amit ADC-nek hívunk (Analog-to-Digital Converter).

Bekötése: Ha a potméter (pl. 1 kiloohmos lineáris) mindhárom lába előre mutat, akkor a bal szélsőt kössük az 5 V pinbe, a jobb szélsőt a földelésbe, a középsőt pedig az analóg 0-ba. Az alaplapba épített LED-et használjuk, ami a 13 pinre ki van vezetve így opcionálisan beköthető ide egy 5mm-es LED is.

8.1. †bra PotmÇter bekîtÇse.png

Potméter bekötése

 Arduino kód: 15potmeter

 

Analóg bemenettel vezérelt PWM

Ezúttal kiolvasunk egy analóg pint és a kapott értéket 0–255 közötti digitális értékké alakítjuk, skálázzuk map() utasítással és ráküldjük egy PWM pinre, amivel egy LED fényerejét fogjuk vezérelni. Ehhez szükségünk lesz egy potméterre (mondjuk 1 kiloohmos lineáris fajtára), egy 220 ohmos ellenállásra és egy hagyományos piros LED-re.

8.2. †bra LED Çs potmÇter bekîtÇse.png

LED és potméter bekötése

Bekötése: Ha a potméter mindhárom lába előre mutat, akkor a bal szélsőt kössük az 5 V pinbe, a jobb szélsőt a földelésbe, a középsőt pedig az analóg 0-ba. A LED rövidebb,  negatív lába a szokásos módon a földelésbe, a hosszabb, pozitív a 220 ohmos ellenálláson át a digitális 9 pinbe kerül.

A kódban először megjelöljük, melyik pint miként akarjuk használni. Ezután létrehozunk két változót, az egyikbe az analóg pinből analogRead()-del kiolvasott érték kerül, a másikba ennek az értéknek az arányosított megfelelője, amit majd a LED-hez fogunk kiküldeni analogWrite()-tal. Mivel a feladathoz PWM pint használunk, az impulzusszélesség modulációval különböző erősséggel tud világítani a LED-ünk. A PWM pinre 0–255 körötti értéket küldünk, ehhez az analóg szenzorból kiolvasott 0–1023 közötti értéket map() paranccsal szétosztjuk.

Arduino kód: 16potmeterLED

 

Analóg szenzor kalibrálása

A következőkben megvizsgáljuk a szenzorok kalibrálásának menetét. A folyamat során az Arduino 5 másodpercig megszakítás nélkül olvassa ki az értéket. A program végrehajtása közben a szenzorból kiolvasott adatok meghatározzák a minimum és maximum értékeket.

Az analóg 0 pinbe bármilyen szenzort beköthetünk, potmétert vagy fotóellenállást is; a példában az utóbbit használjuk.

 Bekötése: A LED-ünk negatív lábát a szokásos 220 ohmos ellenálláson keresztül bekötjük a földelésbe, pozitív oldalát pedig a 9 pinbe (bármelyik lábához kerülhet az ellenállás, eddig a pozitívhoz tettük), a fotóellenállás (LDR) bármilyen irányban állhat, egyik lába az 5 V-ba, a másik lába az analóg nulla (A0) pinbe és egy 10 kiloohmos ellenálláson át a földelésbe is be van kötve.

8.3. †bra LED Çs fot¢ellen†ll†s bekîtÇse.png

LED és fotóellenállás bekötése

A kód legelején inicializálnunk kell a két változót, amelyben a minimum és maximum értéket fogjuk eltárolni. Analóg pinről lévén szó, a minimum 1023 és a maximum 0 legyen – most kivételesen fordítva használjuk. A legelején meghatároztuk a maximum értéket (0) és ha a kiolvasott érték a felett van, akkor ezt mentjük majd el, mint új maximum értéket. Ugyanígy, ha a kiolvasott érték az elején beállított minimum érték (1023) alatt van, akkor az lesz az új minimum érték. Ezután ezt a két értéket skálázzuk 0–255 közé, ez fogja vezérelni a PWM-re kötött LED-ünk fényerejét.

Megjegyzés: Ha potmétert használunk, ne tekerjük el a kalibrálás alatt teljesen ütközésig, így köztes értéket tudunk használni, hogy megértsük a kód működését.

Arduino kód: 17kalibralas

Előfordulhat, hogy a kalibráció alatt nem jelennek meg a szélsőértékek, így a map()nem valós értéket állíthat elő (pl. a maximumot felveszi 800-nak az elején, később pedig beolvas 820-at, akkor a map() eredménye már 256), ezért a constrain()-nel beszorítja a kilengéseket a megadott intervallumba.

 

LED fényerejének szabályozása PWM-mel

PWM = Pulse Width Modulation, azaz impulzusszélesség moduláció. Egy olyan digitális jel, ami rendkívül gyorsan kapcsolja ki-be a digitális jelet egy meghatározott ütemben, ezáltal felruházva a digitális pinünket analóg-szerű viselkedéssel.

Bekötése: 220 ohmos ellenálláson át bekötjük a LED pozitív lábát a digitális 9 pinbe, a negatívat pedig a földelésbe.

8.4. †bra LED bekîtÇse digit†lis 9 pinbe.png

LED bekötése digitális 9 pinbe

Arduino kód: 18LEDpwm

 

Simítás

Ez a kód folyamatosan olvassa ki az analóg bemenetet és az értékek átlagát írja ki a számítógépre. Hasznos lehet egyenetlen szenzorok kiolvasásánál, mivel elsimítja az értékek ingadozását. Egyúttal azt is megnézzük, hogyan lehet tömböt használni adattárolásra.

Bekötése: Potmétert használunk, középső lábát analóg nullába kötjük, a két oldalsót pedig az 5 V feszültségbe és a földelésbe.

8.5. †bra PotmÇter bekîtÇse A0-ba.png

Potméter bekötése A0-ba

A kód egymást követő 10 kiolvasást tárol el egy tömbben, egyesével. Ezeket összeadja, majd elosztja, így egy átlagértéket ad. Mivel a beérkező értékekkel folyamatosan kalkulál, és nem várja meg mind a 10 értéket, ezért nincs késési idő. A numReadings nevű változó értékének lecserélésével tudunk kísérletezni.

Arduino kód: 19simitas

 

forrás: http://arduino.cc/en/Tutorial/HomePage

 

Szólj hozzá!

Címkék: leckék lektorált

2014.06.16.
21:08

Írta: harsanyireka

07. Példák digitális pinekhez

Lektorált tananyag, ami a BKF Digitális és Kollaboratív Művészet (DIKOM) pályázatnak keretén belül valósult meg. Szerző: Harsányi Réka, Társszerző: Juhász Márton András, Lektor: Fernezelyi Márton

A következő alfejezetekben különböző eszközöket fogunk digitális pinekre kötni: LED-et, nyomógombot, kis hangszórót, miközben újabb típusú változókkal és – többek között – az if kondícióval, a for ciklussal, a tone és a millis függvényekkel ismerkedünk meg, valamint az Arduino belső felhúzó-ellenállását is használni fogjuk.

LED villogtatása delay() nélkül

Néha azt szeretnénk, hogy párhuzamosan történjenek dolgok, pl. miközben villog a LED egy nyomógomb állapotát is vizsgálni szeretnénk. Ilyenkor a delay()-t nem tudjuk használni, hiszen az az egész kód lefutását késlelteti, és lehet hogy pont akkor nyomjuk meg a gombot, amikor a kód áll, így elmumlasztjuk a kiolvasását. Ezért az alábbi kódban változók segítségével hozzuk létre a villogást úgy, hogy az eltelt idő mértékét vizsgáljuk.

A következő példában a LED mindig az ellenkező állapotába kerül, mint amilyenben épp van, tehát ha be van kapcsolva, akkor kikapcsol, és fordítva. Mivel a loop() folyamatosan fut, minden alkalommal megvizsgálja, hogy az if feltétel igaz-e, és ahhoz képest lép tovább a kódban. Használhatjuk az Arduino beépített LED-jét vagy beköthetünk egyet a szokásos módon – a pozitív lábát 220 ohmos ellenállásom keresztül a 13 pinbe, a negatív lábát pedig a földelésbe (Gnd).

7.1.1. †bra LED bekîtÇse 13 pinbe.png

LED bekötése 13 pinbe

Arduino kód: 06LEDmillis

 

Nyomógomb LED-del

Ismét a beépített, 13 digitális pinre kivezetett LED-ünket fogjuk használni, valamint egy nyomógombot, amit a 7.2.1. számú ábra szerint kötünk be a digitális 2 pinbe, a feszültségbe (5 V) és egy 10 kiloohmos ellenálláson keresztül a földbe (Gnd).

7.2.1. †bra Nyom¢gomb bekîtÇse.png

Nyomógomb bekötése

Amikor a nyomógomb nyitva van (tehát nincs lenyomva), akkor a lábak között nincs összeköttetés, így – mivel a gombon át a földeléshez vagyunk kötve – a pinünkből LOW jelet tudunk kiolvasni. Ha a gomb lenyomásával zárjuk az áramkört, akkor a jelünk az 5 V pinből érkezik, azaz HIGH lesz.

Ha fordítva kötjük az áramkört, azaz az ellenállással a HIGH jelet tartjuk meg, akkor gombnyomásra LOW-t kapunk, így a LED akkor alszik el, ha nyomjuk a gombot.

Arduino kód: 07nyomogomb

 

Késleltetés (debounce)

Ehhez a feladathoz az előző példa alkatrészeit és bekötési ábráját használjuk. A nyomógombot kapcsolóként használjuk, mely először bekapcsolja, majd második megnyomásnál kikapcsolja a LED-et. Késlelteti a bemeneti jelet, mely azt jelenti, hogy nagyon rövid időn belül kétszer is leellenőrzi, meg van-e nyomva a gomb. Késleltetés használata nélkül előfordulhat, hogy az egyszeri gombnyomást a kód többszörinek veszi. Millis() függvény segítségével követhetjük a gombnyomás időtartamát. Ugyanúgy HIGH jelet kap a bemeneti pinünk, ha lenyomjuk a gombot, mit az előző példában, és LOW jelet, ha nincs. Amikor a 2 bemeneti pin állapota LOW-ról HIGH-ra változik, átkapcsolja a kimeneti pint LOW-ról HIGH-ra, és a következő alkalommal vissza.

Arduino kód: 08kesleltetes

 

Nyomógombos számláló

Ebben a példában egy nyomógombbal működő számlálót készítünk. Ahhoz, hogy a megnyomások számát követni tudjuk, ugyanúgy a bemeneti pin állapotát (HIGH, LOW) kell figyelnünk, és azt kell számolnunk, hogy ez a változás hányszor történt meg. Ezt „állapotváltozás érzékelés”-nek vagy „szélsőérték érzékelés”-nek hívjuk.

A következő kód folyamatosan kiolvassa a gomb állapotát és összehasonlítja az előzőleg kiolvasott értékkel. Amennyiben a két állapot különböző és az aktuális állapota HIGH, akkor a gomb be van nyomva, így a kódban eggyel nő a nyomógomb számlálóértéke. Ezt szintén megvizsgáljuk, és ha az a négy többszöröse, akkor bekapcsolja a beépített (13 pin) LED-ünk, egyéb esetekben kikapcsolja. Továbbra is a második példa alkatrészeit és bekötési ábráját alkalmazzuk.

Arduino kód: 09szelsoertek

 

Pinek beépített felhúzó ellenállása

Minden pin rendelkezik egy beépített, programozható felhúzó ellenállással. Ez a példa azt mutatja meg, hogyan használjuk az INPUT_PULLUP parancsot a pinMode() függvény segítségével. A kapcsoló állapotát figyeli azáltal, hogy soros kommunikációt létesít az USB porton keresztül az Arduino és a számítógép között. A kommunikáció a (belső) soros porton (más néven: COM) történik, általában ki kell választani, hogy melyiket használjuk. 

Ezen felül a kódban, ha a bemenet HIGH, akkor az Arduino boardba beépített LED bekapcsol, és LOW állapot esetén a LED kikapcsol. 

Kössünk be egy nyomógombot a 7.5.1.számú ábra szerint, az egyik lábát a földbe (GND),  a másikat pedig a digitális 2 pinbe.

7.5.1. †bra Nyom¢gomb bekîtÇse INPUT_PULLUP pÇld†hoz.png

Nyomógomb bekötése INPUT_PULLUP példához

A nyomógombok vagy a kapcsolók alapállapotban nyitva vannak (amennyiben ilyen típust használunk, hiszen több fajta létezik), ami azt jelenti, hogy a két lába között nincs kapcsolat. Mivel a belső ellenállás a digitális 2 pinen aktív és 5 V-ra van csatlakoztatva (mivel ennyi feszültséget kap az USB-ből az Arduino, tehát ennyi jön a digitális pinből is), ezért ekkor HIGH jelet olvasunk ki. Ha a gombot lenyomjuk vagy bekapcsoljuk a kapcsolót, azzal zárjuk az áramkört, így – mivel közvetlen lesz a kapcsolat a földeléssel – LOW jelet kapunk.

 A kódban először létrehozzuk a soros kommunikációt 9600 bit/sec-on, majd engedélyezzük a 20 kiloohmos belső felhúzó ellenállást, illetve beállítjuk kimenetként a 13 LED-pint. Utána egy változó segítségével kiolvassuk a gomb állapotát, amelynek decimális értékét kiíratjuk serial monitoron – jelen esetben ez 0 vagy 1 lesz (0 = benyomva, 1 = alapállapotban).

Arduino kód: 10felhuzo

 

Dallam lejátszása tone() függvénnyel

Bekötése: A 8 ohmos kis hangszóró (0,25 wattos elég) pozitív oldala a 100 ohmos ellenálláson keresztül a digitális 8 pinbe, a negatív szára a földelésbe (GND) megy.

7.6.1. †bra Hangsz¢r¢ bekîtÇse.png

Hangszóró bekötése

Szükségünk van a „pitches.h” file-ra, melyhez a következő kódot egy alap szövegszerkesztőbe be kell illeszteni és elmenteni a file-t ezen a néven. A .h a header file kiterjesztése, ez tartalmazza a függvény meghatározásokat és definíciókat a library számára.

Az arduino mappa libraries mappájában hozzuk létre a Melody nevű mappát és tegyük bele a most készített pitches.h file-t – csak így fog működni. Az Arduino program újraindítása után bekerül a Sketch/Import Library legördülő menübe a Melody, innen fogjuk használni. Nyissunk egy új sketch-t, és másoljuk be az Arduino kódot (lejjebb található). Az #include „pitches.h” sort kitörölhetjük, majd vegyük elő az előbb említett legördülő menüből a melody-t, így megjelenik a következő sor: #include <pitches.h>. Most már működik a kód.

A pitches.h file kód letöltése.

Arduino kód: 11dallam

Írjuk át a kódot tetszőleges dallamra!

Amennyiben standard library-ket akarunk használni a hivatalos oldalról, akkor letöltés után előbb telepíteni kell azokat. Kicsomagolás után egy .h és egy .cpp kiterjesztésű file-t találunk. Az arduino mappában lévő libraries mappába kell elmenteni, bár az már alapból tartalmazza őket. Esetleg itt létrehozhatunk egy saját library-t is. Az Arduino program újraindítása után a Sketch/Import Library menüből elérhetőek és használhatóak.

Tone Library: https://code.google.com/p/rogue-code/wiki/ToneLibraryDocumentation 

Generált hajlítás lejátszása tone() függvénnyel

Következő feladatunknál megtartjuk az előzőleg beszerelt 100 ohmos ellenállást és a 8 ohmos (0,25 wattos) kis hangszórót és bekötünk még egy fotóellenállást is egy 4,7 kiloohmos ellenállással.

Fotóellenállást eddig nem használtunk. Ez egy olyan alkatrész, amelynek vezetőképessége fény hatására – a fényelektromos hatás következtében – megnő, ezért fényérzékelőként használható. (LDR = Light Dependent Resistor) Működését tekintve minél jobban megvilágítjuk a fényérzékeny rétegét, annál kisebb lesz az ellenállása. Legnagyobb érzékenységét egy megadott fényhullámhossznál éri el, így vannak speciális fajtái, amelyek adott színekre érzékenyek, ezt spektrális érzékenységnek hívjuk. Jellemző tulajdonságai a világos-ellenállás értéke, melyet megvilágítással lehet elérni: 1000 luxhoz számolják és 100 ohmtól 2 kiloohmig terjedhet a skála; a másik a sötét-ellenállás érték, ami megvilágítás nélküli állapotában jellemző, ez megaohm nagyságrendű.

FOTOELLENALLAS_rajzjel.png

Fotóellenállás rajzjele

7.7 †bra Fot¢ellen†ll†s (LDR).jpg

Fotóellenállás (LDR)

Bekötése: A hangszóró pozitív szára az ellenálláson keresztül a 9 pinbe, negatív oldala a földelésbe kerül bekötésre. A fotóellenállás egyik lábát (mindegy, milyen irányba kötjük be) az 5 V-ba, a másikat az analóg 0 pinbe és a 4,7 kiloohmos ellenálláson át a földelésbe is bekötjük.

7.7.1. †bra Hangsz¢r¢ bekîtÇse fot¢ellen†ll†ssal.png

Hangszóró bekötése fotóellenállással

Az analóg szenzorból kiolvasott értéket követi le majd a generált hangunk, ezáltal egy hajlítás jön létre. A kód nagyon egyszerű, a kiolvasott analóg értékeket szétosztja a hallható hangok értékéhez arányosítva (ebben az esetben leszűkítjük ezt a tartományt 120–1500 Hz közé). Az analóg szenzor által használt tartományt is beállítjuk 0–1023 helyett most 400–1000 közé, hogy jobban működjön a kód. A map() utasításban lévő paraméterek átállításával kísérletezhetünk.

Arduino kód: 12hajlitas

 

Analóg billentyűzet tone() függvénnyel

A következő feladathoz szükségünk lesz a 8 ohmos hangszórónkra a 100 ohmos ellenállással és három erőkifejtés-érzékelő ellenállásra, valamint hozzájuk három 10 kiloohmos ellenállásra. 

Az FSR = Forse Sensitive Resistor, azaz erőkifejtés-érzékelő ellenállás olyan alkatrész, amelyben összenyomás hatására megváltozik az ellenállás: minél erősebben nyomjuk össze, annál kisebb lesz, tehát annál több áram jut át rajta.

7.8.1 †bra Elektronok £tja az FSR-ben..png

Elektronok útja az FSR-ben.
Bal oldalon az alap, jobb oldalon az összenyomott állapot látható.

 7.8.2 †bra Tîbb mÇretben, form†ban kaphat¢.jpg

Több méretben, formában kapható

Bekötése: A hangszóró negatív lába a földelésbe, a pozitív a 100 ohmos ellenálláson keresztül a 8 pinbe kerül bekötésre. A nyomásérzékeny ellenállásokat párhuzamosan bekötjük az 5 V-ba, másik lábukat pedig az analóg 0, 1, 2 pinbe, valamint a 10 kiloohmos ellenállásokon át a földelésbe is a 7.8.3 számú ábra szerint.

 7.8.3 †bra anal¢g billenty˚zet bekîtÇse.png

Analóg billentyűzet bekötése

Arduino kód: 13analoghang

A kód kiolvassa a szenzorok értékeit – mindegyik egy hangnak felel meg a hangértékeket tároló tömbben. Ha a szenzorok értékének bármelyike a megadott küszöbérték felett van, akkor a hozzárendelt hang megszólal.

Ugyanazt a pitches.h fájlt használjuk, mint a dallam lejátszáskor. (Létrehozása a 7.6 alfejezetben található.) Ez tartalmazza a szokásos hangjegyek Hz-ben definiált generált hangját, pl. NOTE_C4 a közepes C hang.

Hang lejátszása több kimeneten tone() függvénnyel

Ez a példa megmutatja, hogyan játsszunk le különböző hangokat három hangszórón, több digitális kimenet használatával. A tone() utasítás az Atmega egyik belső időzítőjét használja, beállítja azt az általunk megadott frekvenciára és az időzítővel rezegteti a kimeneti pint. Mivel egy időzítőt használ, csak egyesével tudjuk lejátszani a hangokat, azonban több pinen egymást követően több hangot is lejátszhatunk. Ehhez ki kell kapcsolni az időzítőt az adott pinen, mielőtt a következő pinnel használni kezdjük.

A kód sorban minden egyes hangszórón egy hangot játszik le, úgy, hogy ez előző hangszórót előbb kikapcsolja – a hangok hosszát ebben az esetben a késleltetés idejével szabályozzuk.

 Alkatrészek bekötése: A 100 ohmos ellenállásokon át a digitális 6, 7, 8 pinbe kötjük a hangszórók pozitív oldalát, a negatívokat pedig a földelésbe.

7.9.1 †bra Tîbb hangsz¢r¢ bekîtÇse.png 

Több hangszóró bekötése 

Arduino kód: 14tobbhangszoro

 

TONE library letöltése: https://code.google.com/p/rogue-code/downloads/detail?name=Arduino-Library-Tone.zip&can=2&q= 

forrás: http://arduino.cc/en/Tutorial/HomePagehttp://en.wikipedia.org/wiki/Photoresistorhttp://en.wikipedia.org/wiki/Force-sensing_resistorhttp://www.openmusiclabs.com/learning/sensors/fsr/

 

 

Szólj hozzá!

Címkék: leckék lektorált

2014.06.14.
11:55

Írta: harsanyireka

06. /2) Digitális és analóg pinek használata

Lektorált tananyag, ami a BKF Digitális és Kollaboratív Művészet (DIKOM) pályázatnak keretén belül valósult meg.

Szerző: Harsányi Réka, Társszerző: Juhász Márton András, Lektor: Fernezelyi Márton

LED villogtatása, kiolvasás digitális pinből

1 db 220 ohmos ellenállásra és 1 db 5 mm-es LED diódára lesz szükségünk. A LED negatív lába megy a földbe (rövidebb szára), a pozitív (hosszabb) pedig az ellenálláson keresztül a 13 digitális pinbe (ami a beépített LED kivezetése). Az ellenállásra a LED-hez jutó feszültség csökkentése miatt van szükségünk. Az átlagos 5 mm-es LED-ek kb. 20 mA-t fogyasztanak és 2,2–3,4 V-tal működnek. Az adott LED paramétereit a gyártó adatlapja tartalmazza. Az ellenállások színkódolása mutatja meg az értéküket. De használhatjuk az online kalkulátorokat is.

6.6.1.1. †bra LED bekîtÇse.png

LED bekötése

Az alább található kódban először kimenetként beállítjuk a LEDhez kötött pint: pinMode(13, OUTPUT); Majd a loop ciklusban bekapcsoljuk a LED fényét a digitalWrite(13, HIGH); paranccsal. Ennek hatására az arduino 5V feszültséggel látja el a LED-et (ez túl sok lenne, de már ellenállás bekötésével lecsökkentettük az értékét). Ez után kikapcsoljuk a fényét a digitalWrite (13, LOW); sorral, ilyenkor a pin állapota 0V-os. Hogy a két állapot közötti változást a szemünk is le tudja követni, lelassítjuk a villogást, úgy hogy delay()-jel várakoztatjuk a program lefutását, azaz a megadott idő alatt nem történik változás, tehát ha ég a LED akkor úgy is marad adott ideig az állapota. A delay() időtartamát mikiszekundumban adjuk meg, 1000 ms = 1 másodperc.

Arduino kódja: 01LEDvillogás

  

Nyomógomb használata, kiírás digitális pinre


Szükségünk lesz 1 db nyák mikro nyomógombra, 1 db 10 kiloohmos ellenállásra, illetve dugaszolós próbapanelre. Az ábrán látható módon kössük össze őket. A nyomógomb azért van középen, hogy a lábai ne legyenek egymáshoz bekötve, mivel a próbapanel közepén nincs átvezetés.

6.6.2.1. A dugaszol¢s pr¢bapanel îsszekîttetÇsei.gif

A dugaszolós próbapanel összeköttetései

6.5.2.2. Nyom¢gomb bekîtÇse.png

Nyomógomb bekötése

Amikor a nyomógomb nyitott állapotban van (nincs megnyomva), akkor nincs összeköttetés az 5V pinbe és a digitális pinbe bekötött lábai között, ezért a digitális pinből kiolvasott jel értéke LOW azaz 0V. Ilyenkor a földeléssel (Gnd pin) áll összeköttetésben (az ellenálláson keresztül) az 5V pin. Amikor a nyomógomb zárt állapotba kerül (le van nyomva), akkor záródik az áramkör az 5V pin és a digitális pin között, ekkor a beérkező jel értéke HIGH azaz 5V.  Az alábbi kóddal ez a példa úgy működik, hogy ha lenyomjuk a gombot, világít a LED.

Fordított módon is beköthetjük a nyomógombot, úgy hogy az ellenállást úgy hogy a gombhoz érkező poyitív és negatí oldalakat felcseréljük. Tehát az ellenálláson keresztül HIGH jel érkezik a digitális pinbe, amikor a gomb alap állapotban van (nincs megnyomva). LOW jel érkezik amikor lenyomjuk. Ebben az esetben az alábbi kódot használva, akkor alszik ki a LED fénye, ha a gombot lenyomjuk, azaz a földeléssel zárjuk össze a digitális pint.

Arduino kódja: 02Nyomogomb

A jobb felső sarokban lévő gombbal tudjuk megnyitni a serial monitort. Vagy 0-t vagy 1-t ír ki, attól függően, hogy meg van-e nyomva a gomb.

   

Potméter használata, kiolvasás analóg pinből

A potméter egy változtatható feszültségű ellenállás, egy 10 kiloohmos szükséges a páldához. A belőle nyert változó adatokat fogjuk kiolvasni, de ugyanezen elven bármilyen analóg szenzor beköthető.

A potméter tengelyének elfordításával az ellenállás értékét változtathatjuk a középső és minkét szélső kivezetése között, ilyenkor a középső kivezetés feszültség értéke változik. Amikor az 5V pinhez futó és a középső pin közötti ellenállás megközelítőleg nulla (ilyenkor a másik szélső lábon megközelítőleg 10KOhm az ellenállás ebben a példában), akkor a középső pin feszültsége megközelítőleg 5V. Ha teljesen elfordítjuk a tengelyt, azaz megnöveljük az ellenállást, a feszültség 0V lesz. Ezt a feszültség érték változást fogjuk kiolvasni az Arduino analog bemmentén.

Az Arduino egy olyan belső áramkörrel rendelkezik, ami az analóg jelet digitálissá alakítja (analog-to-digital converter). Az analóg bement kiolvasáshoz az analogRead() funkciót fogjuk használni, ami egy számértéket ad vissza 0 és 1023 között (a használt feszültséghez arányosítva, pl. 5V = 1023; 0V = 0). 

Bekötése: Ha a lábai előre mutatnak, akkor balra tekerjük el teljesen a forgógombot, hogy beszerelés közben ne továbbítsa az áramot. Első lába az 5 V pinbe megy, a középső az analóg A0-ba, a harmadikat pedig le kell földelni a GND pinbe.

6.7.1.1. †bra PotmÇter bekîtÇse.png

Potméter bekötése

A kód setup függvényében az egyetlen dolog amit csinálunk, hogy bekapcsoljuk a soros port kommunikációt az Arduino és a számítógépünk között 9600 bit/sec adatsebességgel: Serial.begin(9600); Ez után a loop cikluson belül meghatározunk egy integer (egész számértéket tároló) változót, amiben a potméterből kiolvasott adatot (0-1023) tároljuk el: int sensorValue = analogRead(A0); Majd a soros ablakban (serial monitor) megjelenítjük az adatok decimális értékét, sortördeléssel: Serial.println(sensorValue, DEC). A kezelőfelületen a jobb oldali felső ikonnal tudjuk megnyitni az ablakot. Ahogyan tekerjük a potmétert úgy változik a megjelenített adat.

 Arduino kód: 03AnalogPin

   

Analóg jel feszültség értékének kiírása serial monitoron

A feladathoz az előző példának megfelelően kötjük be a potméterünket, tehát ismét analóg feszültségváltozást olvasunk ki.

A következő példakód serial monitorra írja ki a beérkező feszültség értékét, amihez – a pontosabb eredmény eléréséhez – egy float változót definiálunk. A kód ugyanúgy kezdődik mint az előző esetben, bekapcsoljuk a soros portot és eltároljuk a potméterből kiolvasott értéket egy integerben. Ez után a feszültség értékhez létrehozunk egy float (tizedes tört értékek tárolására alkalmas) változót, amiben a potméterből jövő adat feszültség értékét eltároljuk: float voltage= sensorValue * (5.0 / 1023.0); Vágül ezt megjelenítjük a soros ablakban: Serial.println(voltage).

Arduino kód: 04AnalogFeszultseg

   

Impulzus-szélesség moduláció, PWM pinek működése

Ez a jel is 0-t és 1-t tud értékként felvenni, mint minden digitális jel. Amplitúdója állandó, de változó szélességű impulzusokból áll, így befolyásolható a kimeneten létrejövő tényleges feszültség.

6.8.1.1. †bra PWM jel.jpg

PWM jel
(kép: www.cnv.hu/gallery/cikkek/elektronika/ pwm%20magyarazat.jpg)

    

LED fényerejének szabályozása PWM-mel

Ebben a feladatban azt vizsgáljuk meg, hogyan lehet a digitális jel manipulációjával szabályozni a feszültséget. Az Arduino néhány digitális pinje mellé oda van írva a PWM, ezek közül használjunk egyet.

Bekötése: a LED pozitív lábát az ellenálláson keresztül – ugyanúgy, mint eddig – a 9-PWM digitális pinbe, a negatív lábát a földbe (Gnd) kötjük.

6.8.2.1. †bra LED bekîtÇse PWM pinbe.jpg

LED bekötése PWM pinbe 

Az analogWrite() funkciót használjuk. A PWM hihetetlenül gyorsan kapcsolja a pin állapotát ki-be, így idézi elő az analóg jelre emlékeztető elhalványuló effektust. 0–255 közötti értéket küldhetünk a PWM pinekre, pl. az analogWrite(127); 50%-ot jelent. Az ábrán a zöld vonalak az időt jelölik, 2 milliszekundumonként.

 6.8.2.2. †bra PWM jel magyar†zata LED-hez.gif

PWM jel magyarázata LED-hez

Először létrehozunk változókat: a LED a 9 pinbe van kötve. A fényerőnek, és az értéknek amivel változtatjuk majd, szintén létrehozunk integer tárolókat. A setupban kimenetként megadjuk a LED pint. A loop ciklusban analogWrite() segítségével megadjuk melyik pinre (led) és mekkora értéket (brigthness) akarunk küldeni. A PWM pin 0-255 közötti értéket fogad. A fényerő értékét folyammatosan változtatjuk, egy fix értékkel (fadeAmount) növeljük, ilyenkor a LED egyre világosabb. Ez addig zajlik még el nem éri a szélső, 255 értéket: if (brightness == 0 || brightness == 255) {fadeAmount = -fadeAmount ;}Ekkor a folyamat megfordul, mivel negatív előjelűre vált a léptetés mértékét eltároló változó, így az érték 5-ösével csökkenni fog amíg el nem éri a nullát, tehát a LED fénye halványodik. Az if feltételben azt látjuk hogy ha a fényerő értéke eléri a nullát VAGY a 255 csak akkor teljesül a feltétel, azaz csak akkor fut le a kapcsos zárójelen belül található programrész, aminek hatására megfordul a folyamat iránya. Mivel az analogWrite() nagyon gyorsan tudja változtatni a PWM értékeket, a kód végérén található egy késleltetés (delay), hogy lássuk a végbemenő változást.

Arduino kód: 05PWMfade

 

forrás: http://arduino.cc/en/Tutorial/HomePage 

 

Szólj hozzá!

Címkék: leckék lektorált

2014.06.12.
19:56

Írta: harsanyireka

06. Arduino részei, telepítése és fejlesztőkörnyezete

Lektorált tananyag, ami a BKF Digitális és Kollaboratív Művészet (DIKOM) pályázatnak keretén belül valósult meg.

Szerző: Harsányi Réka, Társszerző: Juhász Márton András, Lektor: Fernezelyi Márton

Mi az Arduino? Egyrészt egy mikrokontroller, másrészt a programozási környezet neve. Több fajtája létezik, mi az órán az Arduino Duemilanove-t használjuk. Az Arduino egy nyílt forrású, gyors prototipizáláshoz ideális mikrokontroller modul. Használata a világos felépítésű elektronikának és jól értelmezhető programnyelvnek köszönhetően könnyen és gyorsan elsajátítható. Hirtelen elterjedése interaktív művészeti alkotásokban, hobbi alkalmazásokban és gyors vezérléstechnikai megoldások kivitelezésében egy jól kiépült nemzetközi tudásbázist hozott létre, hozzáférhetővé téve az elektronika egyszerű használatát minden érdeklődő számára. Sokrétű ki- és bemenetein keresztül fel tudja venni a kapcsolatot bármilyen jellegű szenzorral és programjának megfelelő válaszadásra képes, meghajtva lámpákat, motorokat, kijelzőket. A mikrokontrollert Arduino nyelven lehet programozni, ami a Wiring nyelvén alapszik, felhasználói felületét pedig a Processing alapja nyújtja. Az Arduino egyedülálló áramkörként is működtethető, vagy összekapcsolható számítógéppel, amin Flash, Processing, MaxMSP, GarageBand, illetve egyéb soros kommunikációra képes programokkal képes együttműködni. A modulokat készen és KIT-ben is meg lehet vásárolni, a programok ingyen letölthetők honlapukról. A kapcsolások és a nyomtatott áramköri tervek szintén hozzáférhetők és magáncélra szabadon felhasználhatók. Az Arduino a 2006-os Ars Electronica digitális közösségek szekciójában is elismerésben részesült. A csapat: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, és David Mellis.

A tananyag ezen részét a Massimo Banzi és társai által kidolgozott hivatalos leckék adják, amik Creative Common License-szel rendelkeznek:

 

cc-by-sa3s_1.jpg

   

Arduino Duemilanove részei

6.3. †bra Arduino Duemilanove.jpg

A Duemilanove 2009-es modell, ATmega168 típusú vagy ATmega328 típusú mikrokontrollerrel felszerelt verzióban létezik. 14 digitális ki-/bemenete van amiből 6 speciális PWM funkciót is képes ellátni, 6 analóg bemenettel rendelkezik, valamint egy 16 MHz-es osszcillátorral, egy USB, egy hálózati és egy ICSP csatlakozóval rendelkezik. Egy reset (újraindító) gomb is található rajta. Minden alkatrészt tartalmaz, ami a mikrokontroller működéséhez szükséges, így ha csatlakoztatjuk USB kábelünkkel (5V) a számítógéphez, megkezdhetjük használatát, de akár elemet, akkumulátort vagy AC-to-DC adaptert (a nagyfeszültséget átalakítja kisfeszültségű egyenárammá) dughatunk a hálózati csatlakozójába, ezek ajánlott feszültség értéke maximum 12V lehet. A DC a Direct Current rövidítése, ami kisfeszültségű egyenáramot jelent, ezzel fogunk dolgozni.

 

A Duemilanove adatai:

  • mikrokontroller típusa: ATmega 168 vagy ATmega 328
  • működtető feszültségérték: 5V
  • bementi feszültség – ajánlott értéke: 7-12V
  • bemeneti feszültség – határ értéke: 6-20V
  • digitális ki-/bemeneti pinek száma: 14, ebből 6 PWM. 5V-on működnek, mindegyik rendelkezik egy belső felhúzó (pull-up) ellenállással, ami egy speciális paranccsal bekapcsolható (alap állapotban ki van kapcsolva), értéke 20-50 kOhm lehet.
  • analóg bemeneti pinek száma: 6, ezek 10 bites felbontáson tudnak egy értéket felvenni 0-1023 között.
  • az egyes pinekre jutó áramerősség értéke:  40mA
  • a 3.3V elnevezésű pinre jutó áramerősség értéke:  50mA
  • flashmemória mérete: 16KB (ATmega168), 32KB (ATmega328) amiből 2KB-ot a bootloader foglal el. A flashmemória egy olyan újraprogramozható, adattárolásra alkalmas eszköz, aminek nincs szüksége tápfeszültségre ahhoz, hogy megtartsa a benne tárolandó adatot. A bootloader magyarul rendszer betöltő program, ezzel képes elindulni az eszköz.
  • SRAM mérete: 1 KB (ATmega168), 2 KB (ATmega328).Ez egy statikus memória, amiben a tárolt adat a tápfeszültség megszűnéséig marad meg.
  • EEPROM mérete: 512 byte (ATmega168), 1 KB (ATmega328).Elektronikusan törölhető és újraírható, azaz programozható tároló memória. Olyan mint a flashmemória.
  • Órajel sebessége: 16 MHz. Ez egy olyan jel, amely két vagy több áramkör tevékenységét koordinálja, szinkronizálja. Egy alacsony és egy magas jelszint között osszcillál.

 

Áramot kezelő pinek: 

  • Vin: bemeneti feszültség, ha külső áramforrást használunk az üzemeltetéshez.
  • Gnd: földelés.
  • 5V: értelemszerűen 5V jön belőle.

3V3: az alaplapra szerelt FTDI chip által termelt 3,3 V feszültség.

 

Némelyik pin speciális funkciók ellátására is képes, ezeket a későbbiekben használat közben ismerjük meg.

 

Speciális funkciókkal ellátott pinek:

  • digitális 0(RX) és 1(TX): Ezek a pinek össze vannak kötve a FTDI USB-to-TTL nevű soros chip megfelelő részeivel, ezért soros port kommunikációhoz használhatjuk őket. Az RX fogadja, a TX pedig küldi az adatot. 
  • digitális 2 és 3 pin külső megszakításhoz: a csatlakozón fellépő fel- vagy lefutó él hatására fellépő megszakításkéréshez használható, ez a mikrovezérlő valamelyik bemenetének értékváltozására generálódik. Az attachInterrupt() funkcióval használjuk.
  • digitális PWM pinek: 3, 5, 6, 9, 10, és 11 (pulse width modulation = impulzus-szélesség moduláció). Az analogWrite() paranccsal 8 biten küldhetünk rá adatot.
  • SPI pinek:10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK), SPI busz (Serial Peripheral Interface = soros periféria illesztő) kommunikációhoz használhatjuk, az SPI Library meghívásával.
  • LED 13 pin: a beépített LED van ide kivezetve ide.
  • Analóg A4 (SDA) és A5 (SCL) pinek: I2C (TWI) busz kommunikációra alkalmasak, Wire Library meghívásával.

 

Egyéb pinek:

  • AREF pin: Alapvetően az analóg pinek 0-5V között mérik a bementi adatot. Ennek felső értéke ezzel a pinnel és az analogReference() paranccsal megváltoztaható.
  • Reset pin: ha a shieldet használunk és van rajta reset gomb, akkor használjuk ezt a pint. LOW-ra állítva működik.

 

Mi a különbség az analóg és a digitális jel között?

Az analóg jel idő és amplitúdó szerint folyamatosan változó jel, számtalan értéket képes felvenni. Lehet szabályos időközönként, periodikusan változó vagy szabálytalan, azaz a két szélsőérték között bármekkora lehet a pillanatnyi értéke. Az amplitúdó a jel nagyságát határozza meg, a frekvencia pedig az ismétlődések időtartamát, ami a periódusidő vagy a hullámhossz.

6.3.1.1. †bra Anal¢g jel, szinusz hull†m, szab†lyos (periodikus) jel.png

Analóg jel, szinusz hullám, szabályos (periodikus) jel
kép: http://hu.wikipedia.org/wiki/Hullám

A digitális jel két értéket vehet fel, nullát vagy egyet. Arduino esetében ez azt jelenti, hogy ha bemenetére 5 V feszültség érkezik, az érték 1 lesz, ha nem érkezik semmi, akkor 0. Kimenetként használva ugyanez igaz, ha 1 értékkel 5 V feszültséget küldünk. Az Arduinonak vannak speciális PWM pinjei, erről később lesz szó.

6.3.1.2 †bra Digit†lis jel, bin†ris sz†mrendszerben.png

Digitális jel, bináris számrendszerben

Az arduino mikrokontrollerben található egy Analog-to-Digital-Converter (ADC), ami a bemeneti analóg feszültségjelet átalakítja egy digitális jellé. Konkrét példán keresztül a későbbiekben ismerjük meg a használatát.

 

Arduino fejlesztőkörnyezet telepítése

Az Arduino Boardhoz egy Arduino nevű open source fejlesztőkörnyezet tartozik, aminek legfrissebb verziója a hivatalos oldalról letölthető háromféle operációs rendszerhez: Windows-hoz, Mac OS X-hez és Linuxhoz. A letöltött fájlt kicsomagoljuk, ha kell, és máris futtathatjuk az Arduino szoftvert, nem kell külön telepíteni. Letöltés erről a linkről lehetséges: http://arduino.cc/en/Main/Software

A Windows automatikusan telepíti az USB drivert, ha rákötjük az Arduinot. Macintoshon le kell tölteni, majd telepíteni kell. Az interneten FTDI USB Serial Driver néven találjuk meg.

A következők szerint töltsünk fel az Arduino Boardunkra egy minta fájlt, hogy le tudjuk ellenőrizni, megfelelően működik-e:

  • Nyissuk meg az Arduino szoftvert!
  • Keressük ki a mintapéldák között a Blink fájlt: File/Examples/1. Basics/Blink!

6.4.1. †bra Blink megnyit†sa.png

·      Állítsuk be az általunk használt Arduino típusát. Ezt a Tools/Board lenyíló menüben tehetjük meg, úgy hogy klikkeléssel áttesszük a pipát az adott típushoz.

6.4.2. †bra Arduino t°pus†nak kiv†laszt†sa.png

 

 

·      Ezután ellenőrizzük a soros port beállítását a Tools/Serial Port menüben! Hogy épp melyiket használjuk (COM1, COM2, COM3, stb.), az Eszközkezelőben (Device Manager) meg tudjuk nézni. Egyszerűbb, ha megpróbáljuk feltölteni a kódot, és ha nem sikerül, akkor átállítjuk a portot egy másikra.

6.4.3. †bra Soros port kiv†laszt†sa WIN.png

6.4.4. †bra Soros port kiv†laszt†sa MAC.png

A második gombbal Upload tudjuk feltölteni a kódot a mikrokontrollerünkre. Done Uploading felirat jelzi, ha ez sikerült. Ekkor a beépített sárga LED villogni kezd úgy, hogy 1 másodpercig ég és 1 másodpercig nem, míg ki nem húzzuk az áramból, azaz az USB-ből.

Gombok balról jobbra: Ellenőrzés, Feltöltés, Új ablak, Megnyitás, Mentés és a jobb oldalon a Serial Monitort bekapcsoló gomb.

6.4.5. †bra Gombok.jpg

 

Az alapokról, a fejlesztőkörnyezetről, hibakeresésről, gyakran ismételt kérdésekről stb. további információkat online, angol nyelven, a Help menüpont alatt találhatunk.

6.4.6. †bra Tov†bbi seg°tsÇgek.jpg

Programozás: szükséges minimum kód

Az Arduino által használ kódok, más néven Sketch-ek kiterjesztése a régebbi verzióknál .pde volt, de az 1.0 verzió óta már .ino kiterjesztést használ.

Arduino sketch írásnál a szükséges minimum a setup() és a loop() függvények meghívása (persze ehhez írhatunk saját függvényeket, de e nélkül nem fog működni a kódunk).  Ezek az úgynevezett dedikált funkciók.

setup funkció a program futtatásakor csak egyszer fut le az elején. Itt adhatjuk meg, hogy melyik pint hogyan akarjuk használni (bemenetként vagy kimenetként). Ekkor inicializáljuk a pineket (értékadás 0-val), illetve hívjuk meg a soros portot.

A loop funkció, mint a neve is mutatja, többször fut le egymás után. Itt változtathatjuk meg a bemeneti és kimeneti adatokat.

Ezek dedikált funkciók, tehát be vannak építve a fejlesztőkörnyezetbe. Voiddal kell őket meghívni.

 

Szintaxisok:

 

Setup: A kód legelején definiáljuk benne a változókat (inicializálás), pin módokat,
könyvtár használatát stb. Csak egyszer fut le.

 

void setup() {
  // ide tesszük az állandókat
}

Loop: A setup után következik, folyamatosan, azaz többször fut le, lehetővé teszi, hogy
a program változzon és reagáljon.


void loop() {
  // a változók helye  – ismétlődik a lefutás
}

 

További szintaxisok:

 

; pontosvessző

Az állítások lezárására használjuk.

int a = 13;

 

{ } kapcsos zárójel

Az arduino programnyelv legfőbb eleme, különböző konstrukciókban használjuk. 

Ha van egy nyitó kapcsos zárójel, akkor mindig kell, hogy legyen egy hozzá tartozó záró is. Az Arduino fejlesztőkörnyezetébe be van építve, hogy ha az egyik zárójelet kijelöljük, megmutassa, melyik tartozik hozzá. Hasznos tipp, hogy ne felejtsük el bezárni a zárójelet, tegyük ki egyből mind a kettőt, utána írjunk be közé. Függvényeknél, ciklusoknál és feltételeknél használjuk.

 

// megjegyzés

Két darab perjel mögé beírhatunk magunknak megjegyzéseket a programsorba, melyeket a fordítóprogram figyelmen kívül hagy, így nem tölti fel őket az Atmega chipre.

Ez a kommentelés csak egy sorra vonatkozik. Ha több sort akarunk írni, a csillagos perjeleket használjuk:

/* ide jön

több sor
megjegyzés */

 

forrás:

https://miau.gau.hu/mediawiki/index.php/Analóg_és_digitális_jel 

http://arduino.cc/en/Guide/Environment, http://arduino.cc/en/Main/arduinoBoardDuemilanove,   

 

Szólj hozzá!

Címkék: leckék lektorált

2014.06.12.
15:00

Írta: harsanyireka

04. Low-tech szenzorok és aktuátorok c. könyv

Ebben a leckében játékok belsejében lévő alkatrészeket veszünk sorra, amiket később is tudunk hasznosítani, mivel némelyiket Arduinoval is összeköthetünk.

Ez a fejezet Usman Haque és Somlai-Fischer Szabolcs: Low tech sensors and actuators c. könyvén alapul.

4.0.lowtech-sensors-and-actuators.jpg

Weboldala: http://lowtech.propositions.org.uk/

Itt elérhető az eredeti könyv pdf formátumban és a hozzá tartozó videók is.

By-Nc-Sa licenc alatt: http://creativecommons.org/licenses/by-nc-sa/2.5/
Videója: https://www.youtube.com/watch?feature=player_detailpage&v=FBLuBi-rVT8

 

©2005 Usman Haque & Adam Somlai-Fischer,

info@haque.co.uk / studio@aether.hu

This work is released under the Creative Commons Attribution - ShareAlike License.

 

Ebben az alfejezetben olyan könnyen és olcsón beszerezhető eszközökről vagy játékokról lesz szó, amelyek számunkra hasznos alkatrészeket tartalmaznak, programozás nélkül is működnek. A low tech ebben az esetben egyszerű, kisfeszültségű áramköröket jelent. -

Az első részben komplett rendszereket rakunk össze, a második részben szétszedett játékokból és eszközökből készítünk új áramköröket.

4.1.1. ÖSSZETETT RENDSZEREK ÉPÍTÉSE

4.1.1.1. Hanggal távirányított lézer

Eszközök: walkie-talkie, hangérzékeny macska, lézer mutatópálca.

A macskából kiszerelt mikrofont a walkie-talkie hangszórójára helyezzük, hogy érzékelje a másik, távol lévő walkie-talkie-ból jövő hangot. A LED-et a relén keresztül a lézeres mutatópálcához kötjük. Így létrehoztunk egy olyan összetett rendszert, ahol egy másik környezetből jövő távoli hang be tudja kapcsolni a közelünkben lévő lézert, ekkor a LED is felkapcsol (ha ezt kivesszük az áramkörből, tovább kitart majd az elem). 

4.1.1.jpg

4.1.2..jpg

4.1.1.2. Érintésre induló, többhangos rendszer (komparátorral)

Eszközök: hangérzékeny macska, LED mátrix panel és MP3 lejátszó

A hangérzékeny macskába számos különböző tárgyat szereltek be, de a borítás megvédi őket, pl. a hangérzékelő szenzort, ami a borítás nélkül ideális érintésszenzorrá válhat. Ezeket a LED mátrix bemenetére rögzítjük, amelynek a kimenete majd az MP3 lejátszónak küld jelet, ami ezáltal a különböző érintésszenzorok megnyomására különböző hangmintákat játszik le. Ez utóbbi attól függ, milyen sorrendben nyomkodjuk a szenzorokat.

 4.2.1..jpg

4.1.1.3. Önmagát árammal ellátó, távirányított lépésérzékelő

Eszközök: mechanikus elemlámpa, walkie-talkie és hangérzékeny macska

Ez az összetett rendszer valamilyen mechanikus erővel aktiválható, pl. rálép valaki, szélre vagy vízlöketre, amire rádiójelet küld a fogadó egységhez. Mindehhez nincs szükség elemre, mert az áramot mechanikus erő állítja elő. A vevőre bármit szerelhetünk, így ha az megkapja a rádiójelet, lezajlik a folyamat.

 4.3.1..jpg

Kezdjük a macskával, szedjük szét és szereljük ki a szemeiből a LED-eket és a mikrofont, a hangszóróra most nem lesz szükség. Az egyik walkie-talkie-ból is szedjük ki az elemeket, és jegyezzük meg, hová voltak csatlakoztatva. Némelyiknek van Morse gombja, ami sípoló hangot vezérel. Ha van ilyen a walkie-talkie-n, véglegesen iktassuk ki, majd az alapgombot is, amelynek megnyomásával beszélni lehet. Szereljük szét a mechanikus elemlámpát, és az azt árammal ellátó drótokat szereljük át a walkie-talkie-ra, figyelve a polaritásra, és emlékezve, hogy az eredeti elem hogyan volt beszerelve. Így van egy olyan eszközünk, ami megnyomásra rádiójelet küld.

Most a macskából kiszedett mikrofont szereljük fel egy ragasztószalaggal a még sértetlen walkie-talkie hangszórójára. A macska LED szemeit pl. egy relén keresztül vezérelhetjük.

4.3.2..jpg

4.3.3..jpg

A beszélésre szolgáló gombot ragasszuk le a walkie-talkie-n és az elem helyére kössük be a mechanikus elemlámpa áramellátó drótjait.

4.3.4.jpg

A macska szenzora érzékeli a walkie-talkie-ból érkező hangokat.

4.1.1.4. Hely feltérképező lézer

Eszközök: távirányítós autó és lézeres mutatópálca

A sötét térben gyorsan forgó lézerpont a falon egy fénycsíkot képes létrehozni, ami megtörik a sarkokon, így kirajzolódik a tér. Egyszerre több tengely mentén mozgó csíkot is használhatunk a komplexebb látványhoz.

4.4.1..jpg

 

4.4.2..jpg

 

Összerakása nagyon egyszerű, nincs szükség elektronikus szerelésre, mivel csak az autó kerekére kell ragasztószalagozni a lézer mutatópálcát. Több autót is használhatunk, ha összeragasztószalagozzuk őket. Az alábbi képeken a kerekek fixen állnak és az autók teste forog a rászerelt lézerrel.

4.4.3..jpg

4.4.4..jpg

4.4.5..jpg

4.4.6..jpg 

4.1.1.5. Testre reagáló lézer

Eszközök: tank, hangérzékeny macska, relé és lézer mutatópálca

4.5.1..jpg

A képen az n szenzor mutatja az infravörös LED diódát és a közelében lévő kezet, az o egy játéktank, ami az oldalán fekszik, a q a macska, ami a relét indítja el (ez a p), így bekapcsol a lézer, ami az r.

4.5.2..jpg

Az s az infrafény, ami felé a kéz közeledik, ami bekapcsolja a t jelzésű tankot, amely vibrálni kezd. Ez aktiválja a macska LED szemeit (u) és egyúttal a relét is, ez utóbbi bekapcsolja a z jelzésű lézert.

Egy közelebbi kép:

4.5.3..jpg

w – a két infra LED, x – a korábban csatlakoztatott gomb, y – a macskából kiszerelt mikrofon, amit arra használunk, hogy érzékelje a tank vibrálását, z – a macska által bekapcsolt relé és az utána kötött lézerfény.

 

4.1.2. EGYEDI JÁTÉKOK ÉS SZERKENTYŰK BELSEJE

Most nézzük meg, milyen alkatrészekből állnak ezek a játékok.

4.1.2.1. Relé

LEÍRÁS

Az egyik legfontosabb alkatrész a használtak közül, lehetővé teszi, hogy különálló eszközöket összekössünk anélkül, hogy elrontsuk őket. A relé lényegében egy „kapcsoló”, ami, ha áramot kap a bemenetén, akkor bezár egy kapcsolót a kimenetén. Ez a legjobb útja annak, hogy vezéreljünk egy eszközt egy másikon keresztül, mivel némelyik analóg szenzor nagyon érzékeny, és ha közvetlenül összekötjük őket, annak előre nem látható következménye lehet. Szinte minden összetett rendszernél használtjuk.

 

MÓDSZER

Az indító eszköz kimenetét a relé bemenetéhez kell kötni, a kimenetére pedig annak az eszköznek a bemenete kerül, amit el akarunk indítani. A lábak funkciója relénként eltérő lehet, némelyiknek három kimeneti lába van, egy föld és kettő másik, ahol a bejövő jeltől függően nyit vagy zár az áramkör, illetve van olyan, aminek 4 kimeneti lába van, mely páronként nyit vagy zár, ha áram érkezik a bemeneti lábára. Általában kisfeszültségű relét használunk. Érdemes megnézni az adatlapját, hogy ne kelljen annyi verziót kipróbálni. A képen a kis fekete bal oldali hasáb az.

 

BEMENET

Elektromosság (digitális) – általában 3–24 volt

 

KIMENET

Kapcsoló (digitális) – ki vagy be állapot

4.6.1..jpg

 

 

4.1.2.2. Hangérzékeny macska

LEÍRÁS

Hasznos játék, mivel könnyen lehet vele hangra reagáló és világtó dolgokat készíteni. Például tapsra bekapcsolódó vagy hangos léptekre reagáló fényt is alkothatunk vele.

 

MÓDSZER

A példánkban használt hangérzékelős macska szemei villogni kezdenek és hangosan nyávog, ha a közelében erős hangot, pl. tapsot érzékel. Szedjük szét a játékot, vigyázva a mikrofonra. A szemeit használhatjuk elektromos kimeneteknél, pl. jelzőfényként. a mikrofont pedig hangérzékelőként bármilyen eszköz, pl. motor vezérlésére.

 

BEMENET

Hang (analóg) – taps, kiabálás, bútortologatás

Érintés (analóg) – ütés, lépés

 

KIMENET

Fény (digitális) – LED szemek villognak

Hang – nyávogás

Elektromosság (digitális) – feszültség halad át a LED-eken

4.7.1..jpg

4.7.2..jpg

4.7.3..jpg  

SZÉTSZERELÉSE

A szőrburok alatt a dobozban vannak a szenzorok, ezt kell óvatosan felnyitni, majd ellenőrizni, hogy működik-e még, ha nem, elszakadt valami. 

4.7.4..jpg

4.7.6..jpg

4.7.5..jpg

4.7.7..jpg

4.7.8..jpg

4.7.9..jpg

A LED-eket ki kell húzni a fejéből és a dobozból kiszedni az elektronikát: a – elem, b – hangszóró, c – LED-ek, d – mikrofon.

4.7.10..jpg

4.7.11..jpg 

Ha közelebbről megnézzük, találunk benne egy integrált áramkört, mely az interakciót vezérli. Az az a zöld tábla, amire az összes kábel rá van kötve. Amit mikrofonnak neveztünk, az nem igazán mikorofon, hanem sokkal inkább rezgésérzékelő, de mivel nagyon érzékeny. a levegő mozgását is észleli. A következő dolgokra lehet használni: A bemenetén a közvetlen környezetében érzékelni hangot, vagy egy eszközre szerelve az abból jövö hangot. A kimenetén villogtatni a LED-et, nyávogó hangot lejátszani, vagy a LED feszültségével beindítani egyéb eszközöket.

4.7.12..jpg

4.7.13..jpg 

4.1.2.3. Elemlámpa

LEÍRÁS

Manapság sok olyan, könnyen elérhető eszköz van, ami zöld energiával működik, pl. napelemes mobiltöltő. Ezeket az eszközöket felhasználhatjuk projektünk áramellátására. Attól függően, hogy hogyan működnek, reagálhatnak kézmozgásra, lépésre, szélre vagy vízsugárra stb.

 

MÓDSZER

Olyan eszközre van szükség, ami nem elemmel működik és kézmozgással generál áramot. Mi egy elemlámpát használtunk, melynek ha folyamatosan nyomkodjuk a nyelét, akkor világítanak a LED-jei. Ezeket a LED-eket lecserélhetjük a saját rendszerünkre.

 

BEMENET

Mozgás (analóg) – általában tengely és lendkerék.

 

KIMENET

Fény (digitális) – feszültség megy a vezetéken át a LED-ekhez (pozitív = piros drót).

 

SZÉTSZERELÉSE

Viszonylag egyszerű, de nagyon oda kell figyelni, hogy az áramkört ne tegyük tönkre. Ezért jobb, ha nem szedjük szét a burkolatot, csak a LED-eket szereljük ki. Ehhez kell kötni saját rendszerünket, és meg kell tartani az áramgeneráló mechanikát. Alternatív megoldásként relét is vezérelhetünk ezzel a feszültséggel. Ha építünk neki speciális talpat, akár taposó kapcsolóként is működtethető (utolsó kép).

4.8.1..jpg

4.8.2..jpg 

4.8.3..jpg 

4.1.2.4. LED mátrix

LEÍRÁS

A LED mátrix egy olyan eszköz, amit gyakran láthatunk boltok kirakatában, különböző szövegek futnak rajta. Manapság olcsó, bár az általunk használtak közül ez a legdrágább alkatrész. Nagyon hasznos, pl. bemenetén át vezérelve betűket, szövegeket jeleníthetünk meg a kimenetén, de szekvenszerként (olyan elektronikus eszköz, ami egymás után sorozatban következő utasítások végrehajtására alkalmas) is működhet, ha előre programozott mintákkal vezérlünk eszközöket, és végül komparátorként is használhatjuk. A komparátor egy összehasonlító áramkör, mely két bejövő értéket hasonlít össze. Lehet analóg (kimeneti érték: referencia értékhez képest mér), vagy digitális (kimeneti érték: kisebb, egyenlő, nagyobb lehet).

 

MÓDSZER

Ideális esetben olyan LED mátrixunk van, ami billentyűzettel rendelkezik, és saját üzenetet lehet beprogramozni neki. Mivel kimeneti eszköz, a LED-eket hozzá tudjuk kötni a második rendszerhez, hogy vezérelni tudjuk velük. Mivel komparátorként használjuk, egy másik eszközt is közvetlenül a billentyűzetbe kötünk, tehát ennek kimenete manipulálja a LED kijelzőn megjelenő mintát.

 

BEMENET

Relé (digitális) – a LED mátrix bemenete elé kössünk egy relét, hogy megóvjuk annak belső áramköreit.

 

KIMENET

Fényminta (digitális) – LED kijelzőn megjelenő betűk, grafikák.

Elektromosság (digitális) – feszültség megy a vezetéken át a LED-ekhez és tovább. 

4.9.1..jpg

4.9.2..jpg

SZÉTSZERELÉSE

Csavarozzuk le a hátulját és óvatosan húzzuk szét a két burkolót. Egy drót fut az elemcsatlakozótól a LED-ekig. Vigyázzunk, hogy ne szakadjon el! A kijelző hátulján látható, hogy sorokba és oszlopokba vannak rendezve a LED-ek. Ezekre a pontokra tudjuk forrasztani azokat az eszközöket, amiket vezérelni akarunk velük. A LED negatív lábához kell kötni az általa vezérelni kívánt eszközt, azon az oldalon kicsit le van csapva a LED széle. Célszerű a kettő közé relét szerelni.

 4.9.3..jpg

4.9.4..jpg

4.9.5..jpg

4.9.6..jpg 

Komplexebb módszer, ha egy relén keresztül egy másik eszköz bemenetébe kötjük a kijelző kimenetét, és szintén egy relén át bekötjük a másik eszköz kimenetét a LED mátrix billentyűzetébe, így a megjelenő üzenetet valós időben generálhatjuk.

Először is a billentyűzetet kell megtalálnunk. Általában ez egy lógó gumilemez lazán ráhelyezve a zöld nyomtatott áramköri lemezre. Ezen keressük meg a betűhöz tartozó részt. Emlékezzünk rá, hogy milyen irányba kell visszatenni. Amikor a betű gombja nincs megnyomva, akkor az alatta lévő két drót nem ér össze. Ezeket nem kell forrasztani, csak a reléből futó drótokat kell ugyanoda helyezni. Fontos, hogy egy drót csak egy érintkezőhöz érjen hozzá! Ezután ragasszunk rá valami puha anyagot, hogy megvédjük a nyomtatott áramkört. 

4.9.7..jpg

4.9.8..jpg

4.9.9..jpg

4.1.2.5. Lézeres mutatópálca

LEÍRÁS

Ezzel az eszközzel távolról fénypont hozható létre egy tárgyon. Alternatív megoldásként ráragaszthatjuk mozgó vagy forgó tárgyakra, hogy fény-vonalat rajzoljunk vele.

 

MÓDSZER

Az alkotó részein belül valószínűleg nincs borítás. Könnyű épségben tartani és egyszerűen csatlakoztatható egy relén át. Távirányítós autó kerekére szerelve fény-vonalakat tud rajzolni.

 

BEMENET

Elektromosság (digitális) – 4,5 V 3 db ceruzaelemből.

 

KIMENET

Lézer fény (digitális) – pontot világít tárgyakra. 

4.10.1.png

4.10.2..jpg

4.10.3..jpg 

4.1.2.6. Rulett kerék

LEÍRÁS

Ál-random kimenettel rendelkezik – hasznos más eszközök irányításánál.

 

MÓDSZER

Relén keresztül interfésznek is használható, vagy ha a LED-ekből tovább vezetjük az áramot, már eszközök is vezérelhetők vele. Bemenetére szintén kell egy eszköz relén át, amivel a forgás szekvencia elindítható.

 

BEMENET

Elektromosság (digitális) – 4,5 V DC (egyenáramú).

Nyomógomb (digitális) – elindítja a szekvenciát.

 

KIMENET

LED (digitális) – LED kimenetek sorozata, pár másodperc után megáll az egyiken.

 4.11.1..jpg

4.11.2..jpg 

4.1.2.6. MP3 lejátszó

LEÍRÁS

Indításra előre felvett hangot játszik le.

 

MÓDSZER

MP3 audio fájlt kell rátölteni. Egy relén keresztül lehet a bemenetén át vezérelni a lejátszást vagy megállítást, ami vezérelhet egy hangszórót vagy fejhallgatót.

 

BEMENET

Elektromosság (digitális) – 1,5 V DC.

Nyomógomb (digitális) – indítás, pillanat állj vagy zenekiválasztás.

 

KIMENET

Hang (digitális) – hangszóró vagy fejhallgató kell hozzá.

4.12.1..jpg

 

 

4.1.2.7. Vízzel működő digitális óra

LEÍRÁS

Vízzel állít elő elektromosságot – nem kell hozzá elem.

 

MÓDSZER

Az elem helyére kell bekötni. Alacsony feszültséget produkál.

 

BEMENET

Víz (analóg) – vizet engedünk a tartályba.

 

KIMENET

Elektromosság (analóg) – kb. 50 mV. 

4.13.1..jpg

4.1.2.8. USB kamera

LEÍRÁS

Olcsó USB kamera. Az interakció részeként embereket és tárgyak fotózhatunk.

 

MÓDSZER

A zárkioldó gombot használhatjuk relén keresztül, mint bemenetet. Később a képeket USB-n letölthetjük.

 

BEMENET

Nyomógomb (digitális) – zárkioldó gomb.

 

KIMENET

Fotó (digitális) – kb. 320 x 240 pixel, kis felbontású képek.

 4.14.1..jpg

 

4.1.2.9. Napelemmel működő kerti lámpa

LEÍRÁS

„Napfény-érzékelőként” és áramforrásként is használható.

 

MÓDSZER

A LED-ből kössük össze egy relén keresztül egy másik eszközzel.

 

BEMENET

Napfény (analóg) – kapcsoló.

 

KIMENET

Elektromosság (digitális) – kb. 3 V.

 4.15.1..jpg

 

4.1.2.10. Ködgép

LEÍRÁS

Hasznos „atmoszféra” létrehozásánál, vagy, hogy felfogja a fényalapú kimeneteket.

 

MÓDSZER

Használd lézerfénnyel vagy vetítő eszközzel együtt.

 

BEMENET

Elektromosság (digitális) – hálózati áramot egyenárammá alakító adapter. Egy gyűjtőedényben a vízfelszínen ki-bekapcsol az áram.

 

KIMENET

Köd (analóg) – a gyűjtőedény pereménél bukkan fel.

 4.16.1..jpg

 

4.1.2.11. Infravörös játékpisztoly, távolságérzékelés

LEÍRÁS

A távolság érzékelése nagyon hasznos, elmenő embereket, mozgó tárgyakat érzékelhetünk. Mivel nincs szükség ehhez érintkezésre, ezért a mechanikus meghibásodás kizárt. Általában a kereskedelmi forgalomban kapható távolság szenzorok ultrahanggal működnek, a visszaverődő hangot és a közben eltelt idő nagyságát figyelik (mint a denevérek), ezt számolják át távolsággá. Álalában arra használják őket, hogy megtudják egy tárgy vagy személy adott helyen van-e, vagy nincs ott semmi. Ezt a funkciót most egy olcsóbb szenzorral hozzuk létre.

 

MÓDSZER

Infravörös fény visszaverése:

A legegyszerűbb módja a távolság mérésének az infra LED és mellé egy infravörös vevőegyüttes alkalmazása. Az infrafény visszaverődik a tárgyról, tehát ugyanúgy megvilágítja, mint bármilyen fény, csak ezt nem látjuk. Manapság léteznek olyan játékok, melyekbe ezek vannak beszerelve, pl. játékpisztolyok, ahol mindkettő adóval és vevővel is rendelkezik. Mi egy játéktankot szereltünk szét.

A LED-et és a fogadót egymással szemben kell elhelyezni, különben nem látják egymást, így két eszközre lesz szükségünk. Az első képen kék színnel jeleztük az infra fényt, mivel az emberi szem számára láthatatlan, de pl. mobil kamerán keresztül kék vagy piros fénye szokott lenni. Ez hasznos lehet, ha le akarjuk követni, hol van.

 4.17.1..jpg

4.17.2..jpg

BEMENET

Nem átlátszó dolgok távolságát méri, pl. mozgó dolgokét is.

 

KIMENET

Vibrálás, mozgás, LED.

 

SZÉTSZERELÉSE

Ebben a példában egy kis távirányítású játékot használunk, aminek egy infravörös fegyvere van, mellyel fogja az ugyanolyan játékból jövő jelet és lő rá.

 

Mit kell tennünk:

- szedjük le a borítást, hogy hozzáférjünk a távirányítóhoz és az infra eszközökhöz,

- a kocsit és az infra LED-et helyezzük ugyanabba az irányba,

- találjuk ki, hogyan lehetne folyamatosan lenyomva a távirányító gombja,

- találjunk ki egy interakciót, amit ezzel a jellel indítunk el.

 

A tank:

A kis LED-ek lehetnek küldők vagy fogadók – a, b. Néha fényes átlátszó fekete lappal vannak fedve. Áramellátás – c, itt lehet újratölteni.

4.17.3..jpg

4.17.4..jpg

Szedjük le óvatosan a műanyag borítást – lehet, szét kell törni, mert általában ragasztottak –, majd nézzük meg, hogy az infra LED-hez futó drótok épek-e. A LED-ek helyét d, e mutatja.

4.17.5..jpg

 

4.17.6..jpg

Szabadítsuk ki az infra fogadót, aminek három lába van – f. A sima LED-eknek kettő van.

4.17.7..jpg                                                                                                                   

A dróton több dolgot találunk: g – infra vevő, h – infra adó, i – elemek.

4.17.8..jpg

A távirányító:

Először az a-val jelölt LED-eket keressük meg, b – a töltőegység, c – szintén a LED-ek. Ha felnyitjuk a burkolatot, könnyebb kiszedni őket.

4.17.9.jpg

4.17.10..jpg

Távolítsuk el a tokot, hogy hozzáférjünk a belső részekhez. Az elemet (h) ragasztószalagozzuk rá. Diódák – d, g. Hangszóró – f (ezt levághatjuk). Kis nyomógombok – e, i, ezekkel lehet a kocsi mozgását irányítani. 

4.17.11..jpg

4.17.12..jpg 

Fordítsuk meg a nyomtatott áramkört!

A j és k mutatják a nyomógombok hátulját, 4–4 lábat találunk. Ezekre forraszthatjuk az eszközöket, hogy vezérelni tudjuk őket. A nyomógombok két felső lábát kell használni hozzá – i, m.

4.17.13..jpg

4.17.14..jpg

4.17.15..jpg

4.17.16..jpg 

4.1.2.12. Rádió-távirányítású autó

LEÍRÁS

A rádió távirányítású autók már egy ideje körül vesznek minket, de az utóbbi időben megjelentek a nagyon olcsó, kis méretű verziói, amik általában nagyobb méretű és elemmel működő távirányítóval rendelkeznek. Olcsóságának és felépítésének köszönhetően ez a játék ideális a vezeték nélküli hálózattal való kísérletezéshez. Nem csak az autók, hanem minden rádió távirányítású kütyü alkalmas erre, mint a példákban is láthatod.

Bár azt gondolhatnánk, hogy ezek az autók nagyszerűek dolgok szállításához, a példákban inkább az interakcióra és a térrel összefüggő lehetőségekre fókuszálunk, így a tulajdonságait a alábbi szempontok szerint hack-keljük meg: 
   - egyirányú rádió kommunikáció, 9 típusú üzenet küldésével
   - szerkezet, ami képes rezegni, forogni, drótot húzni

MÓDSZER

Ahhoz ,hogy létrehozzunk egy vezeték nélküli kapcsolatot, egyrészt meg kell hack-kelnünk a vezérlő szerkezetet, hogy irányítsa az általunk kitalált eseményt és az autót is. Ez egyszerűbb módszer, ha a motor rezgését vizsgáljuk, mint a MACSKA működésében. Haladóbb megoldás ha számos JELFOGÓt kötünk az autóra, ez bonyolultabb üzenetek küldését teszi lehetővé. 

BEMENET

Elektromos áram: 3-6 Volt
Gombnyomás: 4 digitális és 2 kombinált 9 lehetőséget ad ki
Mozgás-forgás kombinációk: 0-0, 0-1, 0-2, 1-0, 1-1, 1-2, 2-0, 2-1, 2-2 

KIMENET

Rádió jelek
DC motor mozgás és irány
szervó motor pozíció
általános LEDek

SZÉTSZERELÉSE

Ebben a példában egy kis távirányítású tengeralattjárót használunk.

Mit kell tennünk:
   - szedjük le a vezérlőegység borítását és a motort vezérlő gombra forrasszunk drótokat (a)
   - figyeljük meg a másik egységben a motor vibrálását, miközben összeérintjük a vezérlőegységbe szerelt két drót végét.

4.18.1..jpg

4.18.2..jpg

Ezeket a drótokat egy JELFOGÓra is köthetjük, amire rászerelhetjük a saját áramkörünket is, amit így már rádiótávirányítással is indíthatunk. Illetve a többi gomb (mozgás-forgás) felhasználásával összetettebb interakciót hozhatunk létre. Akár logikai kapukkal is kísérletezhetünk.

 

4.18.3..jpg

 

 

Szólj hozzá!

Címkék: szenzorok aktuátorok

süti beállítások módosítása