1. Az Arduino platform

Az Arduino egy szabad szoftveres mikorvezérlőkre épülő elektronikai fejlesztőplatform, arra tervezve, hogy a különböző projektekben az elektronikus eszközök könnyebben hozzáférhetőek, kezelhetőek legyenek. Széles tömegek számára elérhető, mivel olcsó, könnyen beszerezhető, egyszerűen programozható, és csatlakoztatható más eszközökhöz. Az Ardunio tulajdonképpen egy apró számítógép, amelyet arra lehet programozni, hogy feldolgozza a csatlakoztatott külső eszközök (pl. érzékelők, nyomógombok) jeleit és vezérelje azokat (pl. led-ek, szervomotorok, kijelzők). Az input és output jelek lehetnek analóg vagy digitális jelek. Az Arduino úgynevezett beágyazott rendszerek fejlesztéséhez is kiváló, azaz olyan megoldásoknál, ahol a működést valamilyen szoftver kell vezérelje, de nincs szükség egy teljesértékű számítógépre.

Az alábbi videó pár példaprojekten keresztül mutatja be, hogy mit lehet megvalósítani Arduino-val:

 

1.1. A hardver

Az Arduino első verziója 2005-ben jelent meg, azóta jópár változata és klónja (FreeduinoSunfounder, stb.) került piacra. A változatok használata, tudása általában megegyezik és csak kismértékben lettek testre szabva a különféle felhasználási területek igényeihez. A platform hardver és szoftver komponense is nyílt forráskódú, akárki készíthet saját verziót az Arduino-ból, csak magát a nevet nem használhatja. 

arduino_boards.png

A foglalkozásokon is klónt fogunk használni, konkrétan a SunFounder Uno R3-at, amely így néz ki:

sunfounder.jpg

A kártyán kívül a projektjeinkhez szükségünk lesz különféle alkatrészekre, ezeket nagyon olcsón hobbi elektronika boltokból vagy az internetről lehet beszerezni. Szintén webáruházakból elérhetőek komplett kezdő készletek, amelyek az oktató projektekhez szükséges minden alkatrészt tartalmazzák.

1.2. A fejlesztőkörnyezet

Az Arduino szerves részét képezi a fejlesztőkörnyezet, amely a hardver programozásához szükséges. A környezet operációs rendszerünknek megfelelő változata ingyenesen letölthető a https://www.arduino.cc/en/Main/Software weboldalról, ajánlott a zip-be tömörített verziót letölteni és azt manuálisan kicsomagolni a számítógépünkön.

A kicsomagolás után a beüzemeléshez kössük a kártyát USB kábel segítségével a PC-hez, ennek hatására a Power LED-nek kell világítania (a különböző verziók esetén ez más-más helyen található és a színe is lehet zöld vagy piros). Ha a Windows ismeretlen hardverként ismeri fel az Arduino kártyánkat, akkor telepítsük annak a meghajtóprogramját a kicsomagolt telepítőkészlet drivers mappájából.

A kicsomagolás után az arduino.exe-t elindítva az alábbi programablak jelenik meg:

 
arduino_IDE.jpg

 

Ahhoz, hogy használni tudjuk a kártyánkat, be kell a fejlesztőkörnyezetben állítanunk annak típusát: az Eszközök --> Alaplap menüpont alatt válasszuk ki az "Arduino/Genuino Uno" opciót, vagy ha ettől eltérő típusú kártyánk van, akkor az annak megfelelőt. Végül meg kell adnunk, hogy a kártya a PC melyik soros portjára csatlakozik. Ezt az Eszközök --> Port menüpont alatt tehetjük meg.

A program menüsorában a két legfontosabb pont az ellenőrzés és feltöltés. Az előbbi megvizsgálja, hogy a szerkesztőbe beírt kód szintaktikailag helyes-e és értesít a lehetséges hibákról, az utóbbi pedig átküldi a megírt programot a kártyára.

1.3. Az első programfuttatás

Az Arduino IDE-be beépítve érkezik számos előre megírt példaprogram, ezek egyikét fogjuk legelőször kipróbálni. Kattintsunk a Megnyitás gombra, és válasszuk ki az alábbi példaprogramot, majd kattintsunk a Feltöltés gombra.

 
first_sketch.jpg

 

A számítógép ennek hatására elküldi a programot a kártyának, amley betölti azt és elkezdi azt futtatni. A program hatására a kártyán a 13. láb mellett lévő LED villogni kezd egy másodperces időközzel.

1.4. A programok szerkezete

Az Arduino platformra írt programokat vázlatoknak (sketch) hívjuk. E programokat egy leginkább a C-re emlékeztető programozási nyelven írjuk. Minden vázlat két alapvető függvény megírásából áll:

  • setup() függvény tartalmazza a változók, konstansok deklarálását, kezdőbeállításokat. Csak egyszer hajtódik végre a program feltöltése vagy a kártya reset-elése után.

  • loop() függvény a program törzse, ez ciklikusan mindaddig végrehajtódik amíg másik programot fel nem töltünk vagy a tápellátás meg nem szűnik.

​A függvények törzsét (a végrehajtandó utasításokat) mindig kapcsos zárójelek közé tesszük.

Az előző fejezetben példaként felhasznált vázlat forrása a következő volt, ezen mutatjuk be a program egyes elemeit.

 

 

setup() függvényben a kártya 13. lábát beállítjuk kimenetnek a pinMode() utasítással. A zárójeleken belül az első paraméter a digitális lábat jelöli, ez 0-13 között vehet fel értékeket. A második egy állandó, ami vagy OUTPUT vagy INPUT lehet használattól függően.

loop() függvényben a digitalWrite() utasítás az adott kimenetet feszültségét állítja be. Az első érték mindig a kimeneti láb azonosítása, a második állandó itt is két értéket vehet fel: a HIGH érték 5V feszültséget küld a kimenetre, a LOW érték pedig kikapcsolja azt (0V feszültséget küld).

A loop() függvényben szerepel még a delay() utasítás, ez felfüggeszti a program végrehajtását a paraméterként ezredmásodpercben megadott időre. Ennek megfelelően a delay(1000) utásítás egy másodperces várakozást jelent. 

A fenti kód tehát bekapcsolja a LED-et, vár 1 mp-ig, kikapcsolja azt, majd ismét vár 1 mp-ig, majd az egészet kezdi előről kikapcsolásig, aminek az eredménye a villogó LED lesz.

1.4.1. gyakorlat

  1. Kísérletezz a várakozási idők módosításával és figyeld meg, hogyan változik a LED fényének a villogása.

  2. Egy multiméterrel mérd le a 13. lábra kiadott feszültséget és figyeld meg, hogy az hogyan változik a program futása során.

 

1.5. Példaprojekt: fénydióda villogtatás próbapanelen

Az előző fejezetben vett példaprogram bemutatta az Arduino programozás alapjait, de hasznossága igen korlátozott volt. Ebben a mini-projektben próbáljunk meg egy valódi áramkört összerakni ameny egy fénydiódát villogtat. Ehhez szükségünk lesz a következőkre:

  • Arduino kártya USB kábellel a PC-hez kötve

  • Próbapanel

  • Fénydióda

  • Összekötő vezetékek

  • 1 db 220-270 ohm-os ellenállás

Az áramkörök sematikus ábrázolására a kapcsolási rajzokat használják. A projektünk kapcsolási rajza elég egyszerű:

 
first_schema.png

 

Az elektromos eszközök árammal működnek, az áram forrása lehet elem, az elektromos hálózat vagy valamilyen kémiai reakció. Az áramkörbe kötött áramforrásnak egy pozitív és egy negatív pólusa van, az áram mindíg a pozitív pólustól a negatív (föld, GND) irányába folyik. Az Arduino USB-keresztül vagy telepről kapja a működéséhez szükséges áramellátást, ez átalakítva megjelenhet a lábain. A projektünkben az Arduino 13. lába lesz a pozitív (5V) pólus, az áram a GND (0V) láb irányába fog folyni egy ellenálláson és egy fénydiódán át. A fénydióda áram áthaladásakor fényt bocsát ki, tehát ha ki-be kapcsoljuk az áramot a 13.-as lábon, akkor a fénydióda villogni fog. Az áramkörben lesz még a dióda előtt egy ellenállás, ennek az a szerepe, hogy korlátozza a diódához jutó áramot, megvédve azt a kiégéstől. 

Az áramkör megépítéséhez egy próbapanelt fogunk használni, ez lehetővé teszi, hogy gyorsan, forrasztás nélkül alakítsunk ki alkatrészekből áramköröket. A próbapanel csatlakozási pontjai az ábrán jelzett módon össze vannak kötve.

breadboard.jpg

 

Ha azt akarjuk, hogy két alkatrész csatlakozzon egymáshoz (forrasztás helyett), akkor azokat olyan csatlakozási pontokba kell dugnunk, amelyek között összekötés van (vízszintes hosszú sorok, vagy függőleges rövid vonalak). 

Az áramkört a következő módon építjük meg: 

first_layout.png

Ez az elrendezés a próbapanel összekötéseit figyelembe véve a fenti kapcsolási rajznak felel meg. 

Fontos: a fénydióda polarításérzékeny, a hosszabb lábának mindig a pozitív pólushoz kell csatlakoznia. 

1.5.1. gyakorlat

Módosítsd az áramkört és a programot úgy, hogy két fénydióda legyen vezérelve. Használd a 12.-es lábat a 2. dióda vezérléséhez. Kísérletezz a villogás gyakoriságával és a két dióda közötti szinkron feloldásával. 

 
download.png

1.5.2. feladat
 

Szimuláld egy közúti közlekedési lámpa működését különböző színű fénydiódákkal. A zöld jelzés tartson 10 mp.-ig, majd sárga jelzés után (2 mp) váltson pirosra. A piros jelzés tartson 5 másodpercig, utána váltson zöldre.

download.png
 

1.5.3. feladat
 

Fejleszd tovább az előző feladatban megépített áramkört: adj hozzá egy 

gyalogosforgalmat irányító lámpát is. A gyalogos lámpa akkor váltson zöldre, amikor a közúti lámpa pirosra vált és fordítva. Mielőtt pirosra váltana a gyalogoslámpa, villogjon a zöld háromszor.

download.png
 

Az alábbi bevezető videó részletesen bemutatja az Arduino kártyát és környezetet, érdemes megnézni és megérteni az alapokat, mielőtt tovább mennék.