====== Arduino arenduskeskkond ====== \\ Arduino integreeritud programmeerimiskeskkond (IDE) on tarkvaraplatvormist sõltumatu rakendus, mis on tuletatud //Wiring// ja //Processing// raamistikest. Programmeerimiskeskkond on disainitud selliselt, et seda saaksid kasutada tarkvaraarenduses vähekogenud inimesed. Keskkond sisaldab koodiredigeerijat, mis võimaldab süntaksi esiletoomist ja sulgude kokkuviimist. Programmeerimiskeskkonna võib jagada tinglikult kolmeks osaks: tööriistariba, koodi sisestamise aken ja konsool. Tööriistaribal on peamised programmeerimiskeskkonna funktsioonid toodud välja eraldi nuppudena. Koodiredigeerija aknasse kirjutatav programm on hästi esile toodud erinevate värvidega. Konsoolilt näeb kasutaja süsteemi teateid: kompileerimise tulemus, mälu kasutus, veateated jms. {{:et:arduino:ide_osad.png?580|}} Kasutajaliides ja tööriistariba on äärmiselt lihtsad. Kaks peamist funktsiooni on esimesed kaks nuppu tööriistaribal: koodi kompileerimine ja koodi laadimine mikrokontrollerisse. Teised kolm nuppu on standardfunktsioonid: uue visandi tegemine, olemasoleva visandi avamine ja jooksva visandi salvestamine. Pange tähele, et Arduino koodifaile kutsutakse visanditeks (inglise keeles //sketch//). {{:et:arduino:ide_nupud.png?350|}} Arduino programmeerimiskeskkonnaga on kaasas C/C++ teek Wiring, mis muudab paljud tavalised sisend-väljundoperatsioonid palju lihtsamaks. Arduino programmid on kirjutatud C/C++ keeles, kuid kasutajad peavad töötava programmi jaoks defineerima minimaalselt kaks funktsiooni: * **//setup//** – funktsioon, mis töötab korra programmi alguses ning seadistab mikrokontrolleri algparameetrid ja algväärtustab kasutatavad funktsioonid * **//loop//** – funktsioon, mis kutsutakse korduvalt esile kuni kontrolleri väljalülitamiseni {{:et:arduino:ide_sisu.png?580|}} Iga programm peaks esimese plokina sisaldama kommentaariplokki, kus on kirjas, mida programm teeb, kes on autor ja muu oluline informatiivne teave. Kommentaariplokk pole otseselt kohustuslik, aga hea programmeerimistavana tungivalt soovituslik. Arduino tarkvara on võimalik koostada ka ilma, et kogu arendustarkvara pakett laetaks oma arvutisse. Selleks on olemas pilvepõhine Arduino programmeerimise keskkond, mis asub aadressil create.arduino.cc. Esmalt tuleb ennast registreerida kasutajaks ja seejärel saab kohe alustada Arduinole programmi koostamisega. Kui on soov laadida koostatud programm läbi veebibrauseri otse arendusplaadile, siis on vaja paigaldada arvutisse vastav pistikprogramm ehk //plugin//. Peale seda on võimalik kõik vajalikud toimingud teostada pilvepõhiselt läbi veebibrauseri. {{:et:arduino:ide_web.png?500|}} ===== Andmete reaalajas monitoorimine ja koodi silumine ===== Arduino IDE võimaldab mugavalt ja lihtsalt kontrolleri töö ajal monitoorida muutujate väärtusi. Selleks tuleb koodi lisada jadapordi seadistamine ja muutujate saatmise käsk. Esmalt tuleb //setup// funktsiooni lisada jadapordi algseadistus void setup() { Serial.begin(9600); // Jadapordi algväärtustamine kiirusel baud 9600 } ja seejärel //loop// funktsioonis soovitud kohas käsk andmete jadaporti saatmiseks, et neid saaks läbi jadapordi monitori kuvada arvutiekraanile. void loop() { int kaugus; Serial.print("Kaugus: "); // Teksti saatmine jadaporti Serial.println(kaugus); // Muutuja saatmine koos reavahetusega } Lisaks on võimalik ka mikrokontrollerile saata andmeid jadapordi monitori kaudu. Selleks tuleb eelenvalt programmi koodi lisada kontrolllause, mida tuleb läbida võimalikult tihti, et andmeid ei läheks kaduma. Selle lause abil kontrollitakse saabunud baitide ehk tähemärkide arvu. Kui see arv on suurem kui 0, siis on saabunud uut infot, mis automaatselt salvestatakse puhvermällu. Baidi lugemisel puhvermälust, kustutatakse see sealt jäädavalt ja saabunud baitide arv väheneb ka ühe võrra. Puhvermälust saab andmeid lugeda kuni saabunud baitide arv on 0. void loop() { char saabunudAndmed; //Kontrollime jooksvalt saabunud baitide arvu if (Serial.available() > 0){ delay(50); //Väike viide, et kõik baidid jõuaks kohale Serial.print("\n Sain: "); //Teavitame saabunud andmetest saates need tagasi jadapordi monitori while(Serial.available() > 0){ saabunudAndmed = Serial.read(); //Loeme puhvermälust baidi muutujasse Serial.print(saabunudAndmed); //Saadame baidi tagasi jadaporti } } } {{ :et:arduino:loop.png?30|}} Kui programm on laetud kontrollerisse ja see seal käima läinud, siis saab avada jadapordi monitori kiirklahviga CTRL+Shift+M, //tools// rippmenüüst või vajutades tööriistariba paremal servas luubi nuppu. Avaneb jadapordi monitori aken, kus näeb reaalajas soovitud andmeid ja on ka võimalik jadapordi kaudu programmile käsklusi edastada, kui kood sisaldab nende käskude interpretaatorit. {{:et:arduino:jadapordimonitor.png?450|}}