Ismét egy tech írás. No jó, aki nem ezért jött, annak leírom, hogy Roli tudja az ötnél kisebb prímszámokat (magyarul mondja, hogy ketőőő és hájom, de az egyet még nem). Innentől azonban már tényleg Arduino, de azért igyekszem közérthetően.
Egy klasszikus számítógépben van egy processzor, sok memória, valami óra, analóg és digitális ki-, bemeneti portok. Ha valamit számítógéppel akarunk vezérelni, akkor ezeket kéne belerakni, jobbára mindet. Igen ám, de sokszor egy mosógépbe, telefonba, mikrosütőbe ez túl nagy lenne, és feleslegesen drága is. Nos, erre találták ki az ún. mikrovezérlőket avagy mikrokontrollereket: ezek egyetlen integrált áramkörben tartalmaznak az összes szükséges dologból egy egyszerű verziót. Butácskák egy PC-hez képest, de cserébe picik, kis fogyasztásúak, és meglehetősen olcsók: pár száz forintból már kapni egy ilyet.
Jópofa dolog, hogy egy ilyen mikrokontroller segítségével az ember saját vezérlőt építhet a fűtéséhez, a locsolórendszerhez, fedélzeti számítógépet az autójába, a lehetőségek korlátlanok... Elvileg. Csakhogy sokan már az első lépéseknél elakadnak: egy ilyen áramkört rá kell forrasztani egy NYÁK-ra, kell neki valami tápellátást csinálni, ami pár alkatrész csupán, de mindez igényel némi szakértelmet, és programozni sem túl könnyű ezeket.
Nálunk az egyetemen ez ma már tananyag. Nekem anno sajnos nem volt még az, de utólag került már a kezembe ilyen, amikor a telexgépet kapcsoltuk a PC-hez. Egy kollégám megtervezte és elkészítette hozzá az analóg elektronikát, segített elindulni a szoftverben is, de azt végül is én írtam meg. Assembly-ben, mi másban. Nagyon jó móka volt, imádtam, de nem volt túl hatékony, és kellett hozzá a szaktudás, így sok lelkes amatőrnek és félprofinak a dolog ebben a formában elérhetetlen marad.
No, itt jön be az Arduino. Ennek a kimondhatatlan nevű izének a születése és a rokonsága szövevényesebb, mint egy brazil szappanopera első ötszáz része együtt, de a lényeg, hogy végül is létezik, és megoldja a fenti problémákat egytől egyig. Vagyis egészen egyszerűvé, nagyon sokak számára elérhetővé teszi a mikrokontrollerek programozását, illetve az ilyen, ún. beágyazott rendszerek elkészítését. A fő újításai a következők:
- egy kb 5x7 cm-es panelen ott a mikrokontroller, a tápellátáshoz szükséges cuccok, egy USB vezérlő és csatlakozó, egy reset gomb és egy bónusz LED is, szóval minden, ami az induláshoz kellhet
- nem kell drága küldő programozó áramkör a vezérlő programjának feltöltéséhez, mint általában a mikrovezérlők esetében, a panel közvetlenül PC-re köthető, és felprogramozható
- Készítettek egy C-hez hasonló, de végtelenül egyszerű programozási nyelvet, illetve ehhez egy fejlesztőkörnyezetet. Ebben /tényleg/ könnyű programozni. Egy egyszerű LED villogtatás pl ennyi, és semmi több:
int led = 13;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
(Bővebben itt.)
- Végül a további hardverek egyszerű csatlakoztatását is megoldották. Lehet készen kapni temérdek sok ún. shield-et (magyarul pajzsot), ami az eredeti lapkával megegyező méretű áramkör, és csak össze kell dugni az alappanellel (ráültetni a tetejére), és már működik is. Nagyon sokféle ilyen van: van amin hőmérő szenzor van, van ami kis motorokat hajt meg robotokhoz, van ami Ethernetet, van ami WiFi-t tud, de van pl. GPS modul is. Ismét csak nem kell túl sok elektronikai ismeret: összedugod és kész. Szoftveresen is egyszerű a dolog, egy WiFi-n át működő egyszerű webszerver (!) elfér egy képernyőoldalon.
Ami pedig a legjobb: az egész nem túl drága: pár ezer forintért megvehető egy alappanel például. Sőt, mind a szoftver, mind a hardver „szabad termék”: a szoftvert letöltheted ingyen, és a hardvert is megépítheted magad a leírás alapján, sőt akár el is adhatod. Egy megkötés van, hogy az Arduino szót nem használhatod a saját gyártmányodra. Így aztán tele is van a világ idruino-van, AVR-druinoval, robodruinoval és még ki tudja mennyi klónnal, amiből egy olcsóbb darab mindössze 10 USD, házhozszállítással együtt!
A hétvégén kipróbáltam, tényleg szuper dolog. Gyermeki örömmel pakoltam össze a próbapanelre LED-eket, ellenállásokat, nyomógombokat, csipogót, folyadékkristályos kijelzőt és játszottam és játszottam...
Arduino, szerelmes vagyok :)