Arduino je danas najrasprostranjenija platforma otvorenog tipa za razvoj uređaja zasnovanih na mikrokontrolerima. Nastala je kao sredstvo za učenje, a vremenom je prerasla u alat koji se koristi i u ozbiljnom inženjerskom radu.
U našoj praksi Arduino je okruženje u kome nastaje programska podrška za sve IoT uređaje koje razvijamo, pa i za one ugrađene u informacioni sistem vetrogeneratora.
Šta je zapravo Arduino
Pod istim imenom kriju se tri različite stvari.
Prvo, to je porodica pločica sa mikrokontrolerom, priključcima za senzore i aktuatore i priključkom za povezivanje sa računarom. Drugo, to je razvojno okruženje na računaru, u kome se program piše, prevodi i prenosi na pločicu. Treće, to je zajednica korisnika, sa objavljenim rešenjima, bibliotekama i primerima.
Sve troje je otvorenog tipa. Šeme pločica su javno objavljene, pa ih pravi veliki broj proizvođača, a okruženje se besplatno preuzima. Upravo ta otvorenost objašnjava i rasprostranjenost i nisku cenu.
Razvojno okruženje
Arduino IDE je namerno jednostavan: tekst programa, dugme za prevođenje i dugme za prenos na pločicu.
Program se piše u jeziku zasnovanom na C i C++. Svaki program ima dve obavezne celine. Prva se izvršava jednom, pri pokretanju uređaja, i u njoj se podešava sve što treba pripremiti. Druga se ponavlja neprekidno, dok uređaj radi, i u njoj se odvija samo merenje, obrada i slanje.
Ta podela odgovara prirodi uređaja koji stalno nešto prati, pa početnik brzo shvati logiku, a iskusan inženjer dobija okruženje koje mu ne stoji na putu.
Okruženje sadrži i nadzor serijske veze, kojim se na ekranu računara prate poruke koje uređaj šalje. U razvoju je to najčešće korišćeni alat za proveru da li uređaj radi ono što se od njega očekuje.
Biblioteke i druge pločice
Najveća vrednost Arduina nije u pločici, nego u onome što je oko nje nastalo.
Za gotovo svaki senzor koji se može kupiti postoji biblioteka, gotov skup funkcija koje preuzimaju komunikaciju sa tim senzorom. Inženjer time ne mora da ulazi u detalje protokola svakog čipa, nego se bavi onim što je u njegovom zadatku bitno.
Jednako je važno što okruženje nije ograničeno na same Arduino pločice. Dodavanjem podrške za druge platforme, u našem slučaju za module ESP32 i ESP8266, u istom okruženju razvija se program za pločicu koja sa Arduinom deli samo način rada, ali ne i poreklo.
To je razlog zašto Arduino IDE koristimo i kada uređaj uopšte nije Arduino: alat je poznat, biblioteke postoje, a vreme razvoja je kratko.
Dokle doseže i gde su granice
Arduino je dovoljan za većinu zadataka merenja i upravljanja, ali ne za sve.
Dobro podnosi uređaje koji u petlji mere nekoliko veličina, obrade ih i pošalju dalje. Tu je brzina razvoja njegova najveća prednost: od ideje do prototipa koji radi prolazi nekoliko dana.
Granice se javljaju kod zadataka sa strogim zahtevima u pogledu vremena, kod velikog broja istovremenih poslova i kod sistema gde se traži sertifikovana pouzdanost. U takvim slučajevima posao preuzimaju namenski razvojni alati proizvođača ili programabilni logički kontroleri.
Za inženjera to nije mana, nego pitanje izbora alata prema zadatku. Arduino pokriva širok pojas, a izvan njega postoje rešenja koja su za taj pojas i napravljena.
Zašto ga koristimo
Zato što omogućava da mala grupa inženjera realizuje uređaj od ideje do primene, bez velikih ulaganja.
Cena pločice i alata nije prepreka, biblioteke skraćuju razvoj, a znanje je prenosivo: ko savlada rad u ovom okruženju, može da pređe sa jedne platforme na drugu bez učenja ispočetka.
U godinama iza nas na toj osnovi razvijeni su uređaji za merenje položaja, vremena i brzine, kao i sistem za nadzor rada vetrogeneratora. Nijedan od tih poslova ne bi bio izvodljiv u istom obimu da je za svaki trebalo nabavljati namensku opremu.
