Ha tetszik az oldal, kérlek támogasd egy minimális összeggel!
KÖZÖSSÉG
Üzenőfal
Nyomj egy tetszik gombot!
Oszd meg!
Küldj mailt!
1
Arduino - hogyan?
Mi is az a gyakran emlegetett Arduino? Mire használható? Hogyan lehet elkezdeni?
A fenti kérdésekre próbálok válaszokat adni az Arduino iránt érdeklődő kezdő hobbistáknak.
Segítek megismerni a szoftver, és a hardver használatát, és eligazítást adni a hardveres lehetőségekben. A konkrét programírással nem kívánok foglalkozni ebben a cikkben.
Az Arduino platform.
Az arduino egy nyílt forrású - ingyenes platform melyet az Atmell AVR mikrokontrollereire alapozva fejlesztettek ki.
A C pogramozási nyelvet felhasználó keretrendszer segítségével viszonylag egyszerűen írhatunk programokat AVR alapú eszközeinkre.
Az elmúlt években rengeteg alaplapot és kiegészítő eszközt dobtak piacra, melyek megkönnyítik a munkát. Az alaplapok felszereltsége nagyon változatos. Tartalmazzák a bootloaderrel feltöltött mikrovezérlőn kívül a stabil tápegységet, a perifériák csatlakoztatásának lehetőséeit, és opcionálisan a programbetöltéshez szükséges számítógépes csatlakozási lehetőséget. Ez általánosan egy USB-soros konverter.
Mire használható?
Vezérlésre, szabályzásra, mérésre, játékra. Gyakorlatilag csak a fantázia, és az adott hardver műszaki paraméterei korlátozzák a felhasználási lehetőségeket.
Hogyan kezdjek hozzá?
Első körben szükség lesz egy szoftverre, és valamelyik alaplapra. Jó ha van egy dugdosós próbapanel, néhány LED, ellenállás, nyomógomb, és vezetékek az összeköttetésekhez. A többit majd lejjebb olvashatjátok.
Az Arduino programfejlesztő platformja letölthető a hivatalos weblapról: itt . Ez elérhető telepítős formában, és egyszerű zip archívumban is amit csak ki kell csomagolni egy tetszőleges mappába. Ezeken kívül mindenképpen szükség lesz türelemre, kitartásra, és külső segítségre a programírás megtanulásához.
Jó döntés elvégezni egy email tanfolyamot, melyre itt lehet feliratkozni (TavirAVR).
Az Arduino IDE.
A program indítása után az alábbi ablak nyílik meg, ami magyar nyelven fogad. Teljes képernyős nézetre is állítható, vagy átméretezhető.
(kattints a képre a nagyobb nézetért)
A pirossal keretezett rész tartalmazza a fontosabb vezérlőgombokat. Balról haladva a következő
funkciók érhetők el: 1: A program (sketch) ellenőrzése és fordítása az AVR számára értelmezhető .hex állományra.
Az IDE eszközök/alaplapok menüben ki kell választani az alaplap (és a processzor) típusát.
A lefordított hex fájl elérhető az alábbi útvonalon: c:\Users\Saját\AppData\Local\Temp\build8xxxxxxx.tmp\sketch_sep05a.ino.hex
Az állomány hozzáféréséhez be kell kapcsolni a rejtett fájlok megjelenítését. Ez a hex fájl feltölthető az Arduinotól független kontrollerbe egy tetszőleges programozó készülékkel is. Az AVR azonos legyen az IDE-ben beállítottal, és gondoskodni kell az azonos órajelről. 2: A sketch ellenőrzése, fordítása, és betöltése a mikrokontrollerbe.
Ha az ellenőrzés sikeresen lezajlott, a gomb megnyomásával újra lefordítódik a program és betöltődik a kontrollerbe. Ennek a végrehajtásához néhány előzetes művelet szükséges. Az alaplapon található USB-soros konverter típusától függő driver telepítve legyen. A hardver csatlakoztatása után az eszközkezelőben ellenőrizhető, a virtuális sorosport száma (COM3, COM4, stb.). Az IDE eszközök/port menüben be kell jelölni a megfelelő portot. 3: Új ablak nyitása.
Új sketch írására ad lehetőséget. 4: Megnyitás.
Az Arduino IDE alapból tartalmaz egy jó adag mintaprogramot, ún. sketchet. Itt ezek közül, és a hozzáadott, vagy saját sketchek közül lehet választani. Nagy segítség a programozással ismerkedőknek. Az examples mappában találhatók. Új ablakban nyílik meg. Hozzá adhatunk interneten gyűjtött demókat is. A sketch állományok kiterjesztése *.ino. A régebbiek *.pde formátumban vannak. A beállításokban megadható, hogy a pde kiterjesztésű sketcheket is az új formátumba mentse a program. 5: Mentés.
Mentés alkalmával a program automatikusan elnevezi az állományt, pl: sketch_sep05a. Ezt érdemes megváltoztatni beszédesebb névre, a könnyebb azonosítás miatt. Az állomány neve nem tartalmazhat ékezetes betűket, és nem kezdődhet számokkal. Egy azonos nevű mappában kell lennie, ezt létrehozza a program. Tetszőleges helyre menthető. 6: Soros terminál
A sáv jobb oldalán lévő ikonra kattintva nyitható meg a soros terninal. Ha az alaplap csatlakoztatva van a számítógéphez, itt kommunikálhatunk a kontrollerrel. Küldhetünk utasításokat, fogadhatunk adatokat a futó programból. Feltéve, hogy a betöltött program ezt lehetővé teszi. A soros port kommunikációja is ellenőrizhető, ehhez az alaplapon össze kell zárni az RX és a TX kivezetéseket. Hibátlan adatátvitel esetén a kiküldött adatot visszakapjuk a monitoron.
Az Arduino IDE tartalmaz ún. eljárás könyvtárakat. A program mappáján belül a libraries könyvtárban találhatók. Érdemes megjegyezni ennek a mappának a helyét későbbi bővítés miatt. A netes minta és demó sketchek gyakran tartalmaznak meghívásokat ezekből az eljárás könyvtárakból. Ha nem létező *.h állomány van behívva, ez fordítási hibához vezet. Ebben az esetben a Google a barátunk szokott lenni, rá kell keresni a hiányzó fájlra. Többnyire a www.arduino.cc-n vagy a GitHubon megtalálható zip állományban. A zipet kicsomagolva, a benne lévő mappával együtt be kell másolni a libraries könyvtárba, ezzel megszüntethető az ilyen típusú fordítási hiba. Legtöbb esetben demóprogramokat is tartalmaznak, az IDE ezeket is listázni fogja.
Az IDE meglehetősen kevés alaplapot és mikrokontrollert támogat alaphelyzetben, de ezen könnyen lehet segíteni.
A fájl/beállítások menüben van egy További alaplap kezelő URL-ek sáv ami üres. A sáv végén látható ikonra kattintva kinyílik egy ablak, ahol a szövegre kattintva eljuthatunk a GitHub megfelelő oldalára. Itt kiválasztható a szükséges alaplap/kontroller, majd a hozzá tartozó linket be kell másolni/gépelni a kis ablakba. Leokézva visszatérhetünk a főablakba, majd az eszközök/alaplap/alaplap-kezelőben a lisa aljára kerülő új eszközre kattintva telepíthető. Ezután megtalálható lesz a listában az új eszköz, azt kiválasztva az adott kontrollerhez megfelelő paraméterekkel történik a fordítás. Sok esetben választható lesz az órajel sebessége, és forrása is. Ezen felül van amelyik a külső programozók listáját is bővíti.
Bootloader
A vásárolt alaplapokba épített kontrollerek tartalmaznak egy kis méretű programot, ez a bootloader.
A bootloader végzi a kommunikációt a hardver és a szoftver között, biztosítja a külső programozó nélküli programbetöltést. Ha ritkán is, de előfordul, hogy meghibásodik a bootloader, vagy valami oknál fogva nem működik. Esetleg hiányzik. A vége hibaüzenet. Itt sokan bepánikolnak, hogy hibás vasat vásároltak, és teleirkálják a különböző fórumokat. Pedig a megoldás többnyire egyszerű. Egy külső programozót kell igénybe venni, és betölthető az IDE segítségével. Az eszközök/programozó menüpontban be kell állítani a rendelkezésre álló programozót, majd az eszközök/bootloader égetése lehetőséget választva beégetődik a megfelelő bootloader. Ez után működnie kell a soros kommunikációnak. Erre a procedúrára saját készítésű lap, vagy próbapanel használata esetén is szükség lesz. A hivatalosan nem támogatott kontrollerekhez is lehet bootloadert találni némi netes keresgetéssel.
Hardver
A hivatalosan támogatott alaplapok listája megtalálható az Arduino honlapján, aki kíváncsi rá, katt itt . Mivel egy nyílt platformról van szó, hamar megjelentek a különböző klónok. A népi hiedelmekkel ellentétben nagyon jól használhatók a kínai alaplapok is, töredék ár ellenében. A cikk írásakor már 700 Ft körüli áron megvásárolható egy Arduino Nano. Ez Atmega328 kontrollerrel van szerelve, bootloaderrel és általában CH340G típusú USB-soros átalakítóval van ellátva. Található még rajta egy mini USB csatlakozó, 16MHz-es kvarc, néhány LED és egy reset gomb, valamint egy 5 V-os stabilizátor külső tápellátás céljából. Itt jegyzem meg, hogy a határadatokra nagyon kell ügyelni a külső feszültség, és terhelhetőség betartásával. Ezeket a stabilizátor és a mikrovezérlő adatlapjai tartalmazzák. Mellékelni szokás beforrasztandó tüskesorokat és egy hattűs darabkát is ISP programozáshoz. Kezdéshez kiváló választás. Sokan abban a tévhitben élnek, hogy nagyobb alaplap többet tud. Nos, ezt könnyű megcáfolni. Nagyon népszerű az Arduino Uno alaplap, ami kb. a duplájába kerül. Több változata is létezik. Hogyan tudhatna többet a Nano-tól, ha ugyanaz az Atmega 328 van benne aminek az összes lába ki van vezetve a Nano esetében is? Csak éppen drágább, (de nem jobb) USB chip van rajta, meg nagyobb USB csatlakozó...
Ha ettől is olcsóbban akarja megúszni valaki, 400 Ft körül vásárolható Arduino Mini Pro lap hasonló kiépítéssel, viszont ez nem tartalmaz USB chipet. Persze vannak felszereltebb alaplapok is, melyekre idővel szükség lehet ha bonyolultabb eszközök összeállítására adja valaki a fejét. Van egy másik út is. Saját építésű fejlesztőpanel. Ez tetszőleges mikrokontrollerrel látható el, és
igény szerinti összeállításban építhető meg. Ötletadó ez a cikk lehet.
A napokban építetettem egy lapot Atmega32-vel, mert elfogytak a Nano kivezetései, és nincs türelmem megvárni, míg ideér kínából a portbővítő. Mega32 meg volt a fiókban, de csak smd kivitelű. Hagyományos DIP tokozásúval megúsztam volna az építgetést, a képen látható fejlesztőpanellel...
USB chipet nem tartalmazó alaplap esetén a következő lehetőségek léteznek:
1: Lemondunk a soros csatlakozásról, ezzel az IDE soros monitorának használatáról, és a lefordított hex fájlt egy külső programozóval töltjük fel a kontrollerbe.
2: Vásárolt vagy épített USB-soros konvertert használunk.
3: A PC sorosportját használjuk RS232-TTL szintillesztő közbeiktatásával.
A két utóbbi esetben 3, 4, vagy 5 vezékkel (TX,RX,DTR,GND,+5V)kell csatlakozni az alaplap megfelelő pontjaira. Három szál vezeték nem a legjobb választás, mert ebben az esetben a lapon lévő reset gomb használatára kényszerülünk, amit elég nehézkes jól időzíteni. Négy vezetékes megoldásnál automatikussá tehető a reset működtetése, ekkor az RX, TX, és a GND vezetéken kívül a DTR-t is csatlakoztatni kell egy soros 100n kondenzátoron keresztül a lap reset kivezetéséhez. Az 5. vezeték (+5V) teljesen opcionális, ha nincs nagy fogyasztású eszköz az alaplaphoz csatlakoztatva, ez is szolgáltathatja a tápellátást.
Hasznos kiegészítők, segédáramkörök vásárolhatók hazai eladóhelyeken, vagy külföldi portálokon. Egy részüket kénytelenek vagyunk megvásárolni, (LCD, LED kijelzők, szenzorok) míg sok esetben magunk is elkészíthetjük azokat, bár az alkatrész gyakran többe fáj mint egy kész segédáramkör kínából idehajóztatva. Én azon a véleményen vagyok, ha valamit meg tudok építeni, nem fogom készen megvenni, csak nagyon kirívó esetben. Azért hobbi, hogy mi magunk műveljük.
Remélem tudtam adni néhány hasznos információt. Kellemes Arduinózást!