Arduino-suli: hardverprogramozási alapok
Programozási ismereteinkkel könnyedén kiléphetünk számítógépünk virtuális világából, és fizikai hardvereket is kontrollálhatunk, ebben segítenek az Arduino mikrovezérlők.
Előfordulhat, hogy nem is tudunk róla, de hétköznapi tevékenységeink során számtalan mikrovezérlővel kerülünk kapcsolatba; tökéletes alkalmazkodóképességük és változatos méretük tökéletes kiegészítővé teszi az apró, programozható lapkákat szinte minden feladatra. Annak ellenére, hogy rengeteg alváltozatát ismerjük az Arduinónak, egy dolog mindenképp közös bennük: kedvező áron kínálnak olyan felületet, amelybe akár minimális programozói ismeretekkel rendelkező felhasználók is bátran belevethetik magukat.
Emellett hatalmas kiegészítőkínálatot, döbbenetes mennyiségű példakódot és számos, előre elkészített projektet találunk hozzájuk, így már az ismerkedés során is igazán komoly eredményt érhetünk el. Ez pedig tökéletes táptalaj a hobbisták számára; a hardverkomponensek beszerzése, az elképzelt kompozíció aprólékos összeállítása, majd programozása a legó felnőtt megfelelőjének is tekinthető. Cikkünkben bemutatjuk, mire lesz szükséged, ha szeretnél belevágni a hardverprogramozás világába, és jónéhány ötletet is adunk az induláshoz.
Alapválasztás
Egy PC összeszerelése során az alaplap kiválasztása határolja be további lehetőségeinket, ehhez hasonlóan az Arduino mikrokontrollereken is vannak olyan komponensek az apró NYÁK-lapkára szerelve, amelyeket a későbbiekben csupán körülményesen tudunk bővíteni.
Melyik a legjobb mikrovezérlő? A hobbisták szinte kivétel nélkül Arduino Unót választanak egy kezdőszett alapjául, mert amellett, hogy ez az egyik legolcsóbb lapka, kifejezetten nagy bővítménykínálattal rendelkezik. Teljesítményét tekintve abszolút célhardverként írhatjuk le a készüléket: egy 8 bites, 16 MHz-es processzor került rá, a kódokat tároló flashmemóriája pedig mindössze 32 kB-os.
Persze akik egy kicsit komolyabban is szeretnének foglalkozni a hardverprogramozással, és nem érik be ezzel a néhány ezer forintért beszerezhető, teljesen alapfunkciós készülékkel, vásárolhatnak olyan modelleket is, amelyek elengedhetetlen integrált komponensek mellett egyéb beépített szenzorokat is tartalmaznak.
Az ilyen Arduino modellek legnagyobb előnye, hogy nem kell külön beszerezni az alaplapra forrasztott modulokat, így későbbi projektjeink során továbbra is megőrzi az eszközök kompakt méretét, mert a pluszfunkcióknak nem kell külön helyet szorítanunk. Ilyen extrákat kapunk például az Intel Genuino 101-től, amelyet többek között beépített Bluetooth-kontrollerrel, valamint gyorsulásmérővel és giroszkóppal is felszereltek, az Unótól eltérően pedig egy 32 MHz-en ketyegő, 32 bites processzort találunk a felületén. A kódjainkat tároló flashmemóriából a Genuino 101-ben már 192 kB fogadja azokat a felhasználókat, akik nem félnek kiadni az Unóhoz képest akár négy-ötszörös árat friss hobbijuk beindításához.
Szenzorok sűrűjében
Ha sikerült kiválasztanunk az alaplapot, megkezdhetnénk az eszköz programozását, de csatlakoztatható szenzorok nélkül nem számíthatunk látványos eredményre. Éppen ezért, mielőtt kicsit jobban belevetnénk magunkat a lapkák kódolásába, szerezzünk be néhány kiegészítőt az Arduinónkhoz. Szerencsére ma már egyre több hazai üzletben is megjelentek a mikrovezérlőkhöz készült szenzoros bővítmények, azonban itthon sok esetben még egészen magas felárat kérnek egy-egy különleges funkciót kínáló extráért.
Természetesen kapunk bőségesen alternatívát is, a távol-keleti online shopok (mint az aliexpress.com) ugyanis tömegével kínálják a különféle kiegészítőket. A kezdeti lépésekhez mindenképp érdemes egy kifejezetten a hardveres ismerkedést elősegítő csomagot beszerezi, amely a legtöbb esetben tartalmaz szinte minden szükséges elemet az apró LED-égőktől kezdve a különféle csatlakozókábeleken át a sok-sok apró szenzorig.
Fontos, hogy minden esetben igyekezzünk hivatalos kiegészítőket vásárolni, ugyanis temérdek komponens van jelen a piacon, ám gyakran előfordul, hogy aktiválásukhoz az Arduino szoftver nem kínál megfelelő támogatást.
Éled a hardver
Most, hogy hardveres téren már különféle modulokat is társíthatunk a lapka mellé, jöhet a programozási felület megismerése. Sokféle módon vethetjük bele magunkat a hardverek felélesztésének folyamatába, de a legtöbb példa a C++ nyelvet használja, és a mintakódok megfelelő értelmezéséhez is erre lesz szükségünk, ezért érdemes magunkba szívnunk némi digitális nyelvismeretet (habár a kommentekkel sűrűn teletűzdelt bemutató alkalmazások is sokat segítenek a funkciók megértésében).