Uvod u Arduino IDE
U prethodnoj lekciji govorili smo općenito o tome šta je mikrokontroler i gdje se sve koristi, kao i to šta su šildovi i kakvih sve senzora imamo. Spominjali smo i programsko okruženje Arduino IDE što ćemo u ovoj lekciji malo više objasniti. Kako bi ova lekcija bila interesantnija napravit ćemo i naš prvi projekat.
U ovoj lekciji ćemo objasniti:
- Web Editor,
- Arduino Software IDE,
- Programiranje u Arduino okruženju,
- Naš prvi projekat,
- Arduino reference,
Prije samog fizičkog povezivanja ploče sa računarom, potrebno je da preuzmemo i instaliramo Arduino programsko okruženje. Programsko okruženje je moguće preuzeti i instalirati sa oficijelne web stranice na računar.
LINK za preuzimanje Arduino IDE.
Obzirom da smo već objasnili uopšteno šta je Arduino IDE, tako da ćemo se u nastavku bazirati na funkcionalnosti Web Editor-a i Arduino IDE.
Web Editor:
Za one koji se odluče raditi u Web Editor-u objasnit ćemo samo osnovne stvari, jer ćemo većinu naših projekata raditi u Arduino IDE.
U prvoj (1) koloni možemo izabrati:
Your Sketchbook: zbirka svih vaših skica (sketch)
Examples: skice sa osnovnim jednostavnim primjerima
Libraries: biblioteke koje se mogu uključivati za vašu skicu kako bi pružili dodatne funkcionalnosti
Serial monitor: služi za unos podataka, ispis rezultata, kao i očitanje vrijednosti senzora i komunicira sa kontrolerom pomoću USB kabla kao i kod klasičnog Arduino IDE
Help: pomoć prilikom korištenja aplikacije
Preferences: mogućnost prilagođavanja izgleda kao što je tema, boja, veličina teksta itd.
Kada je izabrano, svaka stavka menija prikazuju svoje opcije u bočnom panelu (kolona br.2).
Treća kolona (3), oblast koda, je ona koju ćete najviše iskoristiti. Ovde možete da napišete kod, potvrdite ga i otpremite na svoje ploče, sačuvajte skice na oblaku (engl. Cloud) i delite ih sa bilo kim to želite.
Više informacija o samom Web Editoru možete pronaći na ovom LINK-u.
Arduino Software IDE:
Kao što smo prethodno u skoro svim našim projektima koristiti ćemo Arduino IDE koji sadrži alatnu traku sa osnovnim funkcijama .
Osnovne funkcije alatne trake su:
Više informacija o samom Web Editoru možete pronaći na ovom LINK-u.
Programiranje u Arduino okruženju:
Arduino razvojno okruženje dolazi sa C/C++ bibliotekom zvanom „Wiring“ koja čini uobičajene ulazno-izlazne operacije vrlo jednostavnim. Programi pisani za za Arduino mikrokontrolere nazivaju se skice (engl. sketch). Prilikom kreiranja nove skice (NEW SKETCH) Arduino okruženje nam automatski nudi dva glavna dijela tj. dvije glavne funkcije pod nazivom setup() i loop(), bez kojih naš program ne bi mogao raditi.
- Funkcija setup() se izvodi na početku kada se Arduino upali ili kada se resetira. U njega upisujemo početne postavke koje su nam potrebne za rad mikrokontrolera za pojedini sketch
- Funkcija loop() je beskonačna petlja koja je u stvari glavni program Arduina. Ista se izvodi nakon setup dijela. U loop dio upisujemo većinu koda mikrokontrolera i tu zapravo definiramo šta mikrokontroler treba da radi
Mikrokontroleri najčešće moraju obaviti neke inicijalizacije na početku rada i zatim izvršavati nekakav kod u beskonačnoj petlji, stoga ovakva organizacija koda ima smisla i poboljšava čitljivost. Ova organizacija koda preuzeta je iz Wiring programskog jezika. Arduino posjeduje standardne biblioteke koje nije potrebno dodavati u program.
Te biblioteke pružaju temeljne funkcionalnosti za rad. Jedna od glavnih odlika Arduino platforme je lahkoća korištenja senzora, modula i shieldova.
Programski se to svodi na korištenje nekoliko jednostavnih funkcija.
Svi digitalni pinovi koji se koriste se moraju inicijalizirati ili kao ulazni ili kao izlazni priključci.
Svi Analogni pinovi mogu samo očitavati analogne signale pa su oni automatski postavljeni u ulazni način rada. Inicijalizacije je potrebno izvršiti samo jednom pa se u pravilu stavljaju u setup funkciju.
Čitanje i pisanje se nakon toga obavlja funkcijama digitalRead i digitalWrite za digitalne signale te analogRead i analogWrite za analogne. Analogni signali mogu se čitati samo na analognim priključcima, a mogu se slati samo na digitalne priključke koji podržavaju pulsno širinsku modulaciju (PWM). Očitavanje analognog signala daje vrijednosti od 0 do 1023, dok slanje prima vrijednosti od 0 do 255. U oba slučaja se te vrijednosti linearno preslikavaju na izlazni ili ulazni napon od 0 do 5 V. Sam IDE ima mogućnost provjere tačnosti koda, te upload gotovog napisanog koda na Arduino uređaj za što je samo potrebno stisnuti „Upload to I/O Board“. Ako nema grešaka, skica će se time učitati, u suprotnom će IDE javiti grešku. Nakon što se učita napisana skica Arduino će izvršiti zadani zadatak.
Naš prvi projekat:
Kao što smo obećali u uvodnom dijelu, vrijeme je za naš prvi projekat!
Najbolji primjer jednostavnog koda, bez ikakvih dodatnih komponenti, je vremenska kontrola led diode na pinu br.13.
Nakon što smo povezali naš kontroler Arduino Uno sa računarom, bitno je da provjerimo da li je Arduino IDE automatski prepoznao našu Arduino ploču i i povezao port preko kojeg će komunicirati. U slučaju da nije pravilno povezano naš kod se neće moći prenijeti na ploču. Provjeru možemo uraditi na sljedeći način:
TOOLS > PORT > izabrati port na koje pise (Arduino/Genuino Uno)
TOOLS > BOARD > “Arduino/Genuino Uno”
Kontrolom pina br.13 paralelno programiramo i diodu L na samom kontroleru. Postoje dva načina da pristupimo našem kodu. Prvi način je da ručno upišemo kod, a drugi način je da jednostavno izaberemo
File > Examples >01.Basics > Blink i rezultat će biti isti.
Kod koji nam je potreban za kontrolu :
//dio koda koji se izvršava samo prilikom pokretanja ili restartovanja kontrolera
void setup() {
pinMode(13, OUTPUT); // inicializacija digitalnog pina br.13 kao izlazni pin
}
// dio koda koji se stalno ponavlja od početka do kraja
void loop() {
digitalWrite(13, HIGH); // upali led diodu
delay(1000); // cekaj vremenski period - 1sec (1000ms)
digitalWrite(13, LOW); // ugasi led diodu
delay(1000); // cekaj vremenski period - 1sec (1000ms)
}
Nakon upisanog koda potrebno je da kliknemo Verify kako bi program provjerio da li postoji neka greška. U slučaju da smo napravili bilo kakvu grešku dobit ćemo poruku gdje se nalazi.
U slučaju da nema grešaka dobit ćemo poruku da u kodu nema grešaka i da se program može izvršiti.
Klikom na Upload naš projekat će se prenijeti na ploču.
Kao što možemo vidjeti na GIF-u, naš prvi projekat radi !
U našem primjeru led dioda će se paliti i gasiti svaku sekundu sve dok kontroler ne bude otpojen od napona ili se kod promijeni. Pokušajte promijeniti vrijednost u komandi delay() i vidite šta će se desiti.
Arduino Reference:
Sigurno bi nam trebali dani i dani kako bi objasnili sve Arduino Reference tj. funkcije, varijable, tipove podataka itd., tako da će vam ovaj link sigurno koristiti:
https://www.arduino.cc/reference/en/#functions
Ja ću se potruditi da u svakoj lekciji objasnim što je moguće detaljnije svaku liniju koda, kao i svaku eksternu komponentu (senzor, otpornik itd.) koju budemo koristili u projektu.
U ovom tutorijalu smo kontrolirali led diodu koja se nalazi na samom kontroleru na PIN-u 13, što znači da je na arduino ploči ugrađen otpornik i sve odgovarajuće komponente kako bi se samo programskim kodom moglo upravljati led diodom. Kako bi u narednim projektima mogli koristiti led diode kao indikatore tj. da li je neki od uslova sa senzora ispunjen neophodno je da znamo gdje se odvija testno povezivanje komponenti, kao i to šta su otpornici i koji otpornik ugraditi kako led dioda ne bi pregorila.