Arduino programiranje za početnike

Da li ste ikada želeli da napravite program koji bi bukvalno mogao napraviti kafu za vas? Ako je tako, možda ćete biti zainteresovani za razvoj mikrokontrolera. 

Tajna velike popularnosti Arduino platforme leži u činjenici da ona po svojoj koncepciji uveliko pojednostavljuje tradicionalni proces konstruisanja elektroničkih sklopova. Zahvaljujući mnoštvu gotovih modula koji se jednostavno dodaju u projekat, stvoreni su uslovi da i apsolutni početnici u svetu elektronike mogu u roku od nekoliko minuta formirati sklopove koji obavljaju dovoljno kompleksne zadatke. Naravno, nećemo daleko odmaći bez poznavanja osnovnih pojmova kao što je Omov zakon ili kakva je funkcija otpornika, kondenzatora i tranzistora, ali rad sa modulima omogućava početnicima da na najbezbolniji mogući način savladaju filozofiju funkcionisanja strujnih kola. Ali to nije sve. Uporedo sa jednostavnim korišćenjem hardvera, kreatori Arduino platforme su učinili možda i još važniju stvar sa uvođenjem mogućnosti jednostavnog programiranja naših hardverskih uređaja. 

Arduino je mikrokontrolerska platformarazvijena u Italiji 2005. godine na Institutu za interaktivni dizajn u Ivreji. Napravljena je od open-source hardverskih komponenti koje su spojene na 8-bitni Atmel AVR mikrokontroler ili 32-bitni ARM procesor. Za sada postoji više od petnaest različitih modela. Trenutno aktuelne verzije ove popularne ploče su Arduino Uno R3, Arduino Leonardo, Duemilanove, Nano, Pro Mini, Arduino MEGA 2560 R3, Arduino Due…Cena originalnog Arduina trenutno iznosi oko 30€, a broj proizvedenih ploča izgodine u godinu rapidno raste. Pored originalnih verzija, na tržištu se mogu pronaći kineske kopije po znatno povoljnijim cenama (nekoliko stotina dinara), uz istu funkcionalnost i ne mnogo slabiji kvalitet.Na ulaze ovog kontrolera moguće je dovesti tastere, prekidače, gotove tastature, različite senzore (temperature, pritiska, protoka, pokreta, ultrazvučni senzor…), dok izlaze možete povezati na širok spektar izvršnih uređaja i komponenata –LE(light emitting)dioda, sijalica, zujalica, motora, ekrana za prikaz podataka…Dodatni, gotovi štitovi (shields), zasebne štampane ploče koje se montiraju na osnovnu ploču i proširuju njene osnovne mogućnosti, mogu da obavljaju različitefunkcije (npr. kontrola motora, povezivanje senzora, bežična komunikacija itd.) i na taj način učine rad sa ovom platformom još jednostavnijim i lakšim.Niski naponi napajanja (3.3 i 5V) omogućavaju bezbednu upotrebu Arduina čak i u nižim razredima osnovne škole. Sve ovo omogućava da učenike na interesantan način uvedemo u svet novih tehnologija. Kroz igru i zanimaciju, kod učenika se budi želja za savlađivanjem i proširivanjem nastavnog gradiva iz oblasti programiranja, ali i oblasti prirodnih i tehničkih nauka. 

Arduino se programira preko posebnog editora,u koji se unose C/C++ programski kodovi. Odličnu podršku i ideje za dalji rad možete pronaći u velikom broju gotovih, jednostavnih primera koji se dobijaju uz samo okruženje. Na samom početku, mini projekte možete osmišljavati i realizovati tako što ćete vršiti modifikaciju već napisanih kodova. Kada učenici shvate osnovne principe rada, pisanje programa postaje trivijalno. 

Istorija celog projekta Arduino vezana je za programski alat pod nazivom Processing od kojega je preuzeo mnoštvo stvari. Processing je zanimljiva platforma koja omogućuje pisanje aplikacija na pojednostavljenoj varijanti jezika Java. Reč je o jednom od najefektivnijih načina za programiranje na platformi Android, a podržane su i sve popularne desktop platforme. Dodavanjem biblioteke funkcija je moguće i programiranje Arduino uređaja direktno iz ove platforme. Arduino je od Processinga preuzeo razvojno okruženje koje je inače napisano na jeziku Java, čemu dugujemo njegovu portabilnost. Tu imamo dobru i lošu vest. Dobra je da je IDE izuzetno jednostavan za korišćenje i da će se u njemu bez problema snaći svaki početnik. Loša vest je ta da će iskusniji korisnici pronaći mnoštvo ograničenja za rad sa složenijim projektima. Od naprednijih opcija, tu su sintaksno bojenje teksta (doduše, bez mogućnosti izbora sopstvenih boja), automatsko formatiranje koda (opcija u meniju Tools) i skrivanje koda u okviru funkcija. Nažalost, nisu podržane neke danas standardne mogućnosti, kao što je prikazivanja sintaksne greške prilikom editovanja ili autokompletiranje koda.  

Kada završimo sa pisanjem skeča (engl. scatch, naziv programa pisanih za Arduino), potrebno je da proverimo da li sintaksa ima greške uz pomoć opcije Verify. Ukoliko nema grešaka, na dnu prozora će se pokazati podaci o zauzeću memorije za pohranjivanje programa i koliko je bajtova otišlo na podatke u RAM. U prošlom broju smo pisali da Arduino Uno ima 32 kilobajta programske memorije i dva kilobajta SRAM, tako da je potrebno ekonomično upravljanje sa ovim resursom. Opcija Upload kompajlira kod i prebacuje ga na mikrokontroler. Da bismo skeč pokrenuli na našem uređaju, potrebno je da prethodno iz menija Tools: Board izaberemo model koji trenutno koristimo. Osim toga je iz menija Tools: Port potrebno izabrati serijski port koji je dodeljen našem USB adapteru preko koga vršimo programiranje Arduina. 

Za ovu platformu je napisan veliki broj programskih biblioteka koje uveliko olakšavaju korišćenje svakojakih hardverskih modula koje možemo uključiti u naše projekte. Umesto da se sami mučimo sa realizacijom neke funkcije (recimo, želimo da crtamo po displeju) jednostavno se poslužimo sa gotovom bibliotekom koju su neki dobri ljudi napisali pre nas. Ukoliko želimo da dodamo biblioteku koja nam je potrebna, to je najlakše obaviti preko menija Sketch: Import Library. U istom meniju ćemo videti sve biblioteke koje već postoje na našem sistemu. Izborom neke od njih u program će biti automatski dodata sva neophodna zaglavlja preko #include <> direktiva. 

PRVI PROJEKAT - DIGITALNO PALJENJE I GAŠENJE LED DIODE SA MIKROKONTROLEROM

Spisak delova koji će vam biti potrebni za ovu konstrukciju su: 

  • arduino kontroler (bilo koji model), 
  • taster (mikro prekidač), 
  • 220Ω (oma) otpornik, 
  • LED dioda (bilo koje boje), 
  • nekoliko žičica za spajanje. 

Prvi eksperiment je jednostavan i uz pomoć njega ćemo digitalno da palimo i gasimo LED diodu (svetlo). Potrebno je da sve delove (virtuelno ili fizički).

Za fizičko izvođenje ovog eksperimenta Arduino pločicu spojite USB kablom na računar. To će upostaviti vezu između računara i mikrokontrolera i omogućiti vam da na računaru pišete program koji će upravljati robotom i da taj program prebacite na Arduino pločicu putem kabla.  

U Arduino IDE okruženju ili virtuelnom simulatoru, prekopirajte ovaj dole program za digitalno upravljanje LED diodom. 

Ovaj program na pritisak tastera digitalno uključuje i isključuje LED diodu (svetlo). 

Elektronski slop: 

– LED dioda je priključena sa otpornikom između pina 13 i GND (masa, 0V) 

– Taster je priključen između pina 2 i GND (masa, 0V) 

// promenjiva u koju se smešta vrednost kojom se određuje da li je taster pritisnut

int buttonState = LOW;

void setup()

{

// pin 2 na mikrokontroleru se definiše kao ulazni (INPUT) i služi za očitavanje da li je taster pritisnut

// PULLUP služi da aktivira interni otpornik izmedju pina 2 i +5v tako da ne moramo da ga instaliramo

pinMode (2, INPUT_PULLUP);
 

// pin 13 na mikrokontroleru se definiše kao izlazni (OUTPUT) i služi za paljenje LED diode (svetla)

pinMode (13, OUTPUT);

}

void loop()

{

// pročitaj sa pina 2 da li je taster pritisnut

buttonState = digitalRead (2);

// ako je taster pritisnut (LOW znači da je došlo do spoja sa masom, tj. 0v na pinu 2)

// uključi LED diodu (HIGH znači da mikrokontroler pušta napon na pin 13)

// u suprotnom isključi LED diodu (LOW znači da mikrokontroler isključuje napon sa pina 13)

if (buttonState == LOW) {

digitalWrite (13, HIGH); } else {

digitalWrite (13, LOW); }

// sačekaj 10 milisekundi

delay(10);

}

Kao što se vidi, prvo je definisano da je nožica (pin) broj 2 mikrokontrolera na koju priključujemo taster ulazna (INPUT), a potom da je nožica (pin) broj 13 mikrokontrolera na koju priključujemo LED diodu izlazna (OUTPUT). Primetite da je korišćena LOW vrednost da se ispita da li je taster pritisnut, odnosno da li je došlo do spajanja pina 2 sa masom (GND, 0v). Takođe, obratite pažnju na to da su korišćene HIGH i LOW vrednosti (digitalno “1” i “0”) da se upali i ugasi LED dioda na pinu broj 13. 

Putem IDE okruženja prebacite program sa računara na Arduino kontroler (pločicu). Pošto se program uspešno prebacio na Arduino kontroler, on će se samostalno izvršavati na samom Arduino mikrokontroleru. 

Pod pretpostavkom da je sve uspešno spojeno i program ubačen u Arduino, kada pritisnete i držite pritisnut taster, LED dioda će da svetli. Kada otpustite taster, ona će da se ugasi. 

Arduino platformu možete koristiti bez ikakve izmene nastavnih programa.

Osnovne prednosti njene primene u nastavi su:

  • platforma otvorenog koda, jednostavna i bezbedna za korišćenje,
  • povoljna cena,
  • široka mogućnost primene,
  • odlična podrška zajednice,
  • veliki broj gotovih primera i projekata,
  • omogućava da korisnici osete vizuelne i audio efekte napisanih aplikacija.

Efekti primene ove platforme u nastavi programiranja:

  • povećava motivaciju i interesovanje učenika za učenje programiranja i primenu informacionih tehnologija,
  • pospešuje kreativnost učenika,
  • pospešuje saradnju učenika i razmenu ideja,
  • razvija istraživački duh,
  • podstiče učenike na izradu konkretnih projektnih zadataka,
  • povećava nivo aspiracije učenika.

Arduino može poslužiti kao odlično sredstvo za prelazak sa struktuiranog na objektno-orijentisano programiranje, za razumevanje principa daljinskog upravljanja, interneta stvari, ali i povezivanje različitih naučnih činjenica i primenu istih u izradi interdisciplinarnih projekata.

Ako niste u prilici da nabavite Arduino platformu, možete koristiti i odličan, besplatan Autodesk 123D Circuitssimulator, realizovan u formi web aplikacije zatvorenog koda na adresi http://www.123d.circuits 

You May Also Like