Arduinoról kezdőknek – 1. rész, az alaplap
Napjainkban már mindenhol ott vannak az elmúlt évtizedben megjelent Arduinok. Nem volt ez másként korábban sem, csak épp nem voltak ennyire komplexek és másként hívtuk őket.
A következő cikksorozat nem programozóknak, hanem az Arduino gyakorlati, konkrét felhasználása iránt érdeklődőknek szól. Nem programnyelvet tanít meg, hanem segít rádióamatőrként kompromisszum nélkül élvezni mindazt, amit az Arduino komplex mikrovezérlői környezete nyújt. Ennek megfelelően néhány dolgot a gyakorlatot követően, a végtelenségig leegyszerűsítve mutatok be.
Az Arduino tulajdonképpen egy márkanév. Eszközei egy mikrovezérlővel közös panelre épített, külön programozói infrastrukturától mentesítő USB interfészből, csatlakozósorból – vagy épp tüskesorból -, és néhány esetben tápfeszt előállító áramkörből állnak. Néhány esetben, ugyanis a közös programnyelv köré épülő mikroszámítógépek több, egymástól csak kinézetben és a portok számában különböznek.
A család koncepciója egyszerű: az általános, fejlett nyelvben írt programot az USB-n egyszerűen csatlakozott bármelyik eszközre rá lehet tölteni. A következő néhány részben ezek alapjait vesszük sorba. Belenézünk a kijelzők és rotary encoderek világába, megtanuljuk értelmezni az alapvető programrészeket, hogy a netről vadászott sketcheket biztonságosan, jót és hasznosan szórakozva át tudjuk írni saját ízlésünkre formálva.
Természetesen számos műhely ontja magából az Arduino klónokat, melyek bár máshogy néznek ki, alapvetően ugyanazt tudják: az azonos névvel illetett paneleken azonos a csatlakozók kiosztása, mérete és a shieldek számára készített csatlakozósorok elrendezése. És ami a legfontosabb, hogy nem kell programozó interfész hozzá.
A leggyakrabban használt Arduino az UNO névre keresztelt változat. Emellett elterjedt a sokkal kisebb Nano, Mikro, Mini vagy ezek Pro változatai, de számos egyéb mellett sokszor találkozni – főleg a komolyabb alkalmazásokban – a Megával is. Mint már írtam, ezeket egyformán kell programozni, a különböző ki- és bemenetekre is egyformán kell hivatkozni, eltérés csak a kialakításukban és a mikrovezérlő típusában valamint kivezetett portszámában van. A legelterjedtebb változatok az Atmega 328P, 2560, 32U4 vezérlőivel vannak szerelve.
A boardokat nyugodtan megveheted Kínából, én még nem csalódtam a különböző színű, szagú de alapvetően párszáz forintos alaplapokban.
Szó esett a shieldekről – panelekről -, melyek olyan szendvicselhető kiegészítők, melyeket rá tudunk dugni a boardunkra, így különböző funkcióval egészítjük ki azt; legtöbbször reléket, kijelzőt, gombokat, vagy épp hőmérséklet szenzort, GPS-t, hálózati- vagy GSM kártyát, esetleg DMR hotspotot csatlakoztatnak a ki- és bemenetekhez.
A programozásáról, helyesebben annak alapjairól – no nem a programnyelvről – következő részben tárgyalunk, most azt nézzük meg, hogy az egyes tervezési, kiválasztási fázisnak mi a legfontosabb ismérve. Arra keressük tehát a választ, hogy melyik boardra van szükségünk egy-egy feladathoz, aminek az alapvető felvetése a méreten túl, hogy hány ki- és bemenetet szeretnénk használni.
Ne rohanjunk ennyire előre, hiszen ez lesz a csöpp sorozat vezérfonala. Most odáig jutunk el, hogy vannak ezek a kis panelek, és vannak a lábai.
Az Arduinoban minden lábat lehet ki- és bemenetként programozni. Ez azt jelenti, hogy megadhatunk egy paramétert, miszerint alacsony vagy magas (0 vagy 1) digitális értéket állítunk be rajta, vagy beolvassuk, hogy azon milyen szint jelent meg. Ezek főként a D0, D1…Dn lábak. Emellett néhány, jellemzően az első lábak analóg módban is üzemelhetnek, tehát 0…1023 tartományban olvashatunk be DC adatot az A0, A1…An pineken.
Az Arduinonak néhány egyébként digitális lába analóg kimenetként is működhet. Ezt a PWM – impulzus szélesség moduláció – révén érjük el, ami annyit jelent, hogy a kimenetre 0 és 5 Voltot különböző idővel kapcsolgatunk. Az így módosítható kitöltési tényezőt 0 és 255 közötti értékkel paraméterezzük.
Mondanom sem kell, hogy az Arduino ezekkel borzasztó sok lehetőséget rejt: soros adatot olvashatunk be a lábain például hőmérőszenzorokból, ilyeneket küldhetünk ki, például egy DDS-t vagy komplett vevő IC-t vezérelve, megmérhetjük egy potméter állását vagy megvizsgálhatjuk egy kapcsoló állapotát is. Emellett tranzisztorokat, optokapukat, sőt, reléket kapcsolgathatunk vagy kijelzőket vezérelhetünk megannyi logikai összefüggés mentén.
Most már tudjuk, mi az az Arduino, következő cikkünkben megnézzük, hogy kell csatlakoztatni a számítógéphez, mit tud a programja, és megnézzük, hogy működik első programunk. Kicsit később a kijelzők vonalán a libraryk világába is betekintünk. Ezzel le is zárjuk majd a száraz, unalmas és demotiváló részeket, és később már csak olyan gyakorlatias, rádióamatőr témába vágó reményeket váltunk be, ami miatt eddig is élvezhettük megtisztelő figyelmedet.