Arduino kontroler (3. deo)
Autor: Stefan Nožinić
U prošlom broju smo naveli neke karakteristike Arduino uređaja i otpornika i opisali smo načine spajanja otpornika. U ovom broju ćemo objasniti kako se instalira zvanično okruženje za pisanje programa za Arduino i napravićemo naš prvi projekat. Takođe ćemo objasniti i neke funkcije ovog okruženja i šta sve imamo na raspolaganju od opcija.
Instalacija potrebnog okruženja
Arduino okruženje se može preuzeti sa zvanične stranice za operativne sisteme Linux, Windows i Mac OS X. Pisano je u Java programskom jeziku i koristi avr-gcc kao prevodilac (engl. compiler). Ovo okruženje je u potpunosti open source. Sa zvanične stranice ga možete preuzeti i odmah pokrenuti bez ikakve instalacije. Neke Linux distribucije imaju ovaj program u svojim skladištima paketa pa ga možete i instalirati kao i većinu ostalih programa na sistemu.
Arduino okruženje – karakteristike i način funkcionisanja
Interfejs okruženja je veoma jednostavan i prilagođen svakome. Prvo što bi trebalo uraditi jeste da izaberemo model Arduino ploče koju koristimo (u našem slučaju Arduino Uno). Ovo možemo uraditi tako što ćemo otići u gornjem meniju u Tools pa zatim Board i tamo pronaći Arduino Uno. Naravno, postupak je isti i za ostale ploče. Ono što je sjajno jeste da u odeljku File → Examples imamo dosta dobrih primera za dosta stvari. Isto tako na zvaničnoj Arduino stranici postoji dosta primera, dokumentacije i referenci. U meniju File imate opciju Upload koja će prevesti (kompajlirati) naš program i prebaciti ga na Arduino. Takođe primećujemo da se po otvaranju okruženja automatski započinje nov projekat pa odmah možemo početi sa programiranjem. Imamo i opciju da sačuvamo naš projekat. Program se upisuje u flash memoriju i potom se izvršava na Arduino uređaju. Kada sledeći put otpremite (upload-ujete) program na Arduino, onaj stari će se izbrisati iz flash memorije i na njegovo mesto će doći novi. Ispod editora teksta nalazi se linija na kojoj možete videti greške koje Vam izbacuje prevodilac (compiler) prilikom prevođenja (na primer, sintaksne greške).
Dovoljno je da Arduino povežemo sa računarom, u okruženju otkucamo program i korišćenjem opcije Upload program upišemo u Arduino i uređaj je spreman za rad.
Istim kablom koji se najčešće koristi za štampače možemo povezati i Arduino sa računarom.
Napomena: Preporučujemo da Arduino ploča bude povezana samo sa računarom prilikom otpremanja programa na nju.
Breadboard
Breadboard je tabla koja pomaže da sa lakoćom formiramo veliki broj električnih kola. Ono što mi vidimo jeste tabla sa kontaktima koji su međusobno povezani. Svi kontakti u prvom redu su povezani i svi kontakti u drugom redu su povezani, svi kontakti u poslednjem redu su povezani i svi kontakti u predposlednjem redu su povezani. Svi ostali redovi nisu povezani ali su kolone povezane. Kao što se može primetiti, prva 2 reda su odvojena od redova u sredini. Ovo omogućava lagano razumevanje povezanosti kontakta. Dakle u sredini su kontakti u istoj koloni povezani a na krajevima su povezani kontakti u istom redu.
LED
LED (Light Emitting Diode) je vrsta diode koja emituje svetlost kada kroz nju prođe struja. Obično dioda ima napon 1-2 [V] pa je potrebno povezati i otpornik redno sa njom. Treba takođe obratiti pažnju da dioda ima anodu i katodu, odnosno pozitivan i negativan kontakt. LED dioda će svetleti samo ako je povezana pravilno (anoda je +).
Prvi projekat – LED blink
U našem prvom projektu ćemo da isprogramiramo Arduino da upali LED diodu pa posle nekog vremena je ugasi i sve tako dok se Arduino napaja sa USB kabla priključenog na računar.
Programiranje
Za početak da naglasimo da se programi pišu u programskom jeziku C. Strukturu programa čine 2 funkcije. Jedna je setup() a druga je loop(). Prva funkcija se izvršava po pokretanju Arduino kontrolera dok se druga izvršava posle nje i ponavlja se sve dok je Arduino uključen.
Funkcije koje ćemo koristiti u ovom projektu su:
- pinMode(…),
- digitalWrite(…) i
- delay(…).
Algoritam:
- U setup() funkciji korišćenjem pinMode(…) podešavamo kontakt (pin) 0 na OUTPUT mod. Ovo znači da upisujemo vrednost 0 ili 1 na taj kontakt, odnosno šaljemo signal na taj kontakt.
- U loop() funkciji pravimo jednu promenljivu tipa bool čija će vrednost prvo biti false i posle svakog izvršavanja ćemo joj menjati vrednost. Na osnovu ovog ćemo znati da li smo poslali signal 1 ili 0.
- Na osnovu vrednosti gorepomenute promenljive šaljemo signal 1 ili 0 na kontakt 0 korišćenjem funkcije digitalWrite(…).
- Sada podešavamo promenljivu na suprotnu vrednost.
- Koristimo funkciju delay(…) da naznačimo pauzu u izvršavanju u nekom vremenskom trajanju.
Implementacija:
bool enabled = false;
void setup()
{
pinMode(0, OUTPUT);
}
void loop()
{
if (enabled)
{
digitalWrite(0, LOW);
enabled = false;
}
else
{
digitalWrite(0, HIGH);
enabled = true;
}
delay(1000); // 1000ms = 1s
}
Prebacivanje programa na Arduino:
Povežite Arduino na računar i korišćenjem opcije Upload prebacite program u Arduino.
Povezivanje:
Potrebno je jedan kraj diode (anoda) vezati na kontakt 0, drugi kraj (katoda) na otpornik i njega povezati na GND kontakt na Arduino ploči. Ovo možete uraditi na breadboard-u (vezivanje otpornika i diode).
Napomena: Da bi se Arduino napajao možete koristiti USB konekciju sa računarom. Ovde nismo objašnjavali korišćenje baterije kao izvor napajanja.