Így készül a saját könyvtár

|

Többször is bevetnél egy funkciót, de nem szeretnéd minden alkalommal lekódolni? Készíts belőle saját könyvtárat!

Rengeteg beépített könyvtár érhető el az Arduino programozói eszköztárában, ezeket pedig bizony rendszeresen használod is, hisz a programkódod elejére biggyesztett #include parancs segítségével valójában az ilyen előre megírt funkciókat segítségül hívva kelted életre alkotásaidat. Azonban könnyedén előfordulhat, hogy egy-egy gyakran használt funkció hiányzik még ebből a hatalmas, tetszőlegesen bővíthető kínálatból is, így ezeket minden egyes alkalommal a programodba kell ékelned.

A kódismétlés helyett azonban sokkal egyszerűbb, ha inkább saját kezűleg kiemeled ezeket a részeket egy-egy könyvtárba, melyet aztán a következő projektjeid során mindenféle probléma nélkül meghívhatsz, ezzel pedig rengeteg felesleges extra kódolástól kíméled meg magad. Cikkünkben bemutatjuk, hogy miként készíthetsz saját könyvtárakat és hogyan is használhatod őket a projektjeid során.

Kiemelt funkciók

Hogy kicsit könnyebb legyen megérteni a könyvtárak működését elsőként segítünk kiemelni egy egyszerű LED-villogtató funkciót az alapértelmezett kódodból, hogy majd későbbiekben lehetőséged legyen meghívni a következő projektedben is. Ehhez nyisd meg az Arduino kezelőfelületét és a Fájl menü példái közül válaszd ki a Blink.ino állományt, mely a beépített LED villogtatását hajtja végre, ami jelen projektedhez tökéletes alapot kínál majd. A néhány sornyi kódot tartalmazó fájlból függvényként emeld ki a loopban található villogási folyamatot, hisz így tudod elkülöníteni és később is újra felhasználhatóvá varázsolni ezt a funkciót. Ehhez csupán annyi a teendőd, hogy a programozási felületed utolsó sorában ütsz egy entert és beírod a void lassu(){ } kifejezést. Ezek után a kapcsos zárójelek közé illeszd be a loop tartalmát, ezzel pedig kész is az első függvényed. Ezek után még kétszer ismételd meg ezt a folyamatot és készíts egy void kozepes(){ } és egy void gyors(){ } függvényt is, melyeknek a belsejébe szintén az eredetileg loopban található sorokat helyezd el.

A gyors() belsejében az 1000 értékét módosítsd 200-ra, a közepesnél pedig 500-ra, ezzel szabályozod ugyanis a villogások sebességét. Ezek után a loop belsejében már a gyors(); kozepes(); és a lassu(); opciókkal el is készítheted saját fényjátékodat. Azonban, ha a későbbiekben újra szeretnéd használni ezeket a függvényeket újra és újra a kódod végére kell biggyeszteni ezt a néhány sort. Hogy ezt ne kelljen megtenned, a villogási funkció számára létrehozhatsz egy saját library-t, így pedig már csak hivatkoznod kell rá a kódod elején.

Fájlok és mappák

A könyvtár létrehozásának első lépéseként keresd meg az Arduino fejlesztői környezeted szoftverének azon mappáját, ahol a rendszer ezeket a csomagokat gyűjti. Ez az útvonal alapértelmezett esetben a C:\Program Files (x86)\Arduino\libraries mappáján keresztül érhető el. Itt aztán hozz létre egy Sajat_Konyvtar nevű mappát, ebbe fogod majd elkészíteni a külső állományokat, melyek egy .h kiterjesztésű, valamint egy .cpp kiterjesztésű állományból állnak. Ezeket egy Notepad++ segítségével pillanatok alatt létrehozhatod. A szoftverben megnyitott szöveges állományt pusztán mentsd el Villog.h valamint Villog.cpp néven az előzőleg létrehozott mappádba. A könyvtár védettsége miatt megfelelő jogosultságra lesz szükséged a fájlok mentéséhez, így érdemes rendszergazdaként indítanod a szoftvert.

Fejállomány

Elsőként a .h kiterjesztésű fejállományt töltöd fel tartalommal, mely tulajdonképpen az összeköttetést kínálja a könyvtáradban pihenő előre elkészített függvények és az új projekted között. Elsőként a header kötelező elemeit kell megadnod, melyekre azért lesz szükség, hogy még véletlenül se legyenek duplán beemelve egyes funkciók, hisz ez később komoly problémákat okozna.

A fejállományod első sorát a #ifndef Villog_h kifejezéssel indítsd, majd egy enter leütését követően a #define Villog_h sorral folytatódjon a kódod. Ezt követi majd a függvények felsorolásából kialakított kódod egy osztályba szervezve, a fájlt pedig a #endif tag segítségével zárhatod le. Az osztály létrehozásához nem kell mást tenned, mint a class Villog{ }; kifejezést begépelned, melynek belsejébe a nyilvánosan hozzáférhető Villog(int pin); void gyors(); void kozepes(); valamint void lassú sorokat, valamint a privát láthatóságú int LokalValtozo; funkciókat helyezd el. Ezek után már csak a #include "Arduino.h" sort kell a class definícióját megelőző sorba biggyesztened és kész is az összeköttetést kínáló fejállományod, már csak a funkciók élesítésére van szükség.

Bevethető funkciók

Amint a .h kiterjesztésű header fájl elkészült, ideje foglalkozni a másik szükséges komponenssel is, ez pedig a meghívni kívánt Villog.cpp kiterjesztésű program, ami a ténylegesen használható függvényeket tartalmazza. Szerkesztéséhez nincs más teendőd, mint átváltani a Notepad++ felületén korábban létrehozott állományodra és az #include "Arduino.h" valamint az #include "Villog.h" kifejezéseket az üres fájl első két sorába biggyesztened. Ezek után egy konstruktort kell hívnod, melyet a Villog::Villog(int pin) { pinMode(pin, OUTPUT);LokalValtozo = pin; } megadásával tehetsz meg.

Ezzel a néhány sorral eléred, hogy a zárójelek között megadott értékű pin-t aktiválja a kódod.

Ha ez megvolt, jöhetnek a funkciók, itt azonban lényegében annyi a teendőd, hogy a Blink.ino-ban megírt függvényeket teljes egészében átemeled, és kiegészíted a függvény nevét a Villog:: kifejezéssel (a gyors() esetén void Villog::gyors()-ra ), valamint a LED_BUILTIN érték helyett a LokalValtozo-t írod a digitalWrite belsejébe. Ezen apró módosítások végrehajtása után már kész is vagy a saját könyvtáraddal, jöhet a tesztüzem.

Tesztelj is

Ahhoz, hogy élesben is kipróbáld a frissen kreált alkotásod képességeit hozz létre egy új projektet és itt a Vázlat menüpont Könyvtár tartalmazása lehetőségét választva ugorj a Könyvtárak kezelése opcióra, majd a keresősorba gépeld be a Sajat_Konyvtar kifejezést. Amennyiben mindent rendben végrehajtottál, a megjelenő könyvtár mellett az INSTALLED feliratot kell látnod. Ha a rendszered felismerte a frissen létrehozott funkciót az új projekt felületén nincs más teendőd, mint a #include <Villog.h> sort a setup elé biggyeszteni, létrehozni még szintén a setup()-on kívül a Villog villogas(13); sor beírásával egy használható objektumot, majd a loop-ra ugorva begépelni a villogas.gyors(); villogas.lassu(); villogas.kozepes(); funkciók tetszőleges kombinációját. Ezt követően futtathatod is a kódot, mely végrehajtja a beépített LED-en az áltatalad megálmodott fényjátékot.

Úgy tűnik, AdBlockert használsz, amivel megakadályozod a reklámok megjelenítését. Amennyiben szeretnéd támogatni a munkánkat, kérjük add hozzá az oldalt a kivételek listájához, vagy támogass minket közvetlenül! További információért kattints!

Engedélyezi, hogy a https://www.helloworldonline.hu értesítéseket küldjön Önnek a kiemelt hírekről? Az értesítések bármikor kikapcsolhatók a böngésző beállításaiban.