Tak, máte doma dosku Arduino, zapojíte ju do PC…. a čo teraz?
Vývojové prostredie
Pre programovanie Arduino sa najčastejšie používa prostredie Arduino IDE. Momentálne už dokonca existuje aj verzia Arduino IDE 2, tá je však pomerne nová a obsahuje ešte dosť veľa chýb. Množstvo používateľov ostalo pri verzií 1.0 a aj staršie návody na iných weboch sa venujú programovanie v tejto verzií. Ostaneme zatiaľ teda pri nej aj my, do budúcna sa však môžete tešiť na blog o Arduino IDE 2.
Pokročilejší používatelia môžu zvoliť aj iné programovacie prostredie, často sa používa napríklad Atmel studio alebo dokonca VS code, my sa však takýmto veciam dnes nebudeme venovať. Ak Vás zaujíma čo je to na tej doske po hardvérovej stránke, odporúčame tento náš blog.
Arduino IDE
Najskôr si teda musíme stiahnuť prostredie, v ktorom dosku programujeme:
Link: https://www.arduino.cc/en/software
Pre väčšinu používateľov používajúcich Winows 7 a novšie použijeme prvý link (WINDOWS win 7 and newer). Po stiahnutí prostredie nainštalujeme, a môžeme ho otvoriť. Privíta nás prázdna biela obrazovka s krátkym textom:
Programovanie dosiek Arduino
Kód Arduino je rozdelený do dvoch funkcií:
– void setup()
– void loop()
Funkcia setup() ako jej meno napovedá, sa vykoná iba raz. Spustí sa pri pripojení dosky k napájaniu alebo jej resetovaní, vykoná sa a potom už sa na ňu procesor nikdy viac nepozrie. V tejto funkcií sa zvyčajne programujú veci ako definovanie úvodných stavov pinov, začatie komunikácie s PC a podobne.
Funkcia loop() sa naopak vykonáva dookola až do konca sveta, alebo kým nie je Arduino resetované či odpojené z napájania. Tu sa zvyčajne odohráva všetko zaujímavé. Môžeme si to prejsť na príklade.
Čo znamená slovíčko void sa dozvieme v našom budúcom blogu, zatiaľ nás nemusí trápiť.
Blikanie zabudovanej LED diódy
Na to, aby sme rozblikali LED diódu nám stačí len pár príkazov, vo vývojovom prostredí Arduino IDE však už existujú príklady pre otestovanie rôznych funkcií a zoznámenie sa s doskou. Jeden takýto príklad si môžeme otvoriť.
Keď na toto menu klikneme, otvorí sa nám nový okno s kódom. V hornej lište v záložke nástroje musíme ešte nastaviť, do akej dosky to vlastne kód chceme nahrať a kde je pripojená.
Vyberieme teda správny typ dosky (v našom prípade Arduino Uno) a port. Nám sa však žiadny port nezobrazil, respektíve je “šedivý”. Čo teraz? To znamená, že doska nemá nainštalovaný driver (ovládač), takže ten potrebujeme nainštalovať. Väčšinou je však doska rozpoznaná a môžeme zvoliť správny port. Ak však potrebujete ovládač inštalovať, určite si prečítajte náš starší blog o driveroch.
Pre vysvetlenie jednotlivých riadkov sme použili v našom kóde komentáre. Komentáre sú obyčajný text, ktorý si kompilátor nevšíma, takže sú použiteľné len pre nás, tvorcov a čitateľov kódu. Komentáre vieme písať pomocou dvoch lomítok “//” alebo viacriadkový komentár napíšeme medzi /* …. */:
/* Blink Turns an LED on for one second, then off for one second, repeatedly. Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to the correct LED pin independent of which board is used. If you want to know what pin the on-board LED is connected to on your Arduino model, check the Technical Specs of your board at: https://www.arduino.cc/en/Main/Products modified 8 May 2014 by Scott Fitzgerald modified 2 Sep 2016 by Arturo Guadalupi modified 8 Sep 2016 by Colby Newman This example code is in the public domain. https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink */ // funkcia setup, vykoná sa iba jeden krát na začiatku void setup() { // Jedná sa o inicializáciu výstupného pinu na výstup (OUTPUT), konkrétne pinu 13. // Namiesto "LED_BUILTIN" môžeme napísať "13" (bez úvodzoviek) a jednalo by sa presne o to isté. // Arduino však má niektoré vstavané funkcie a premenné, takže takto je to jednoduchšie, // nemusíme si pamätať presný pin, na ktorom je LED dióda pripojená pinMode(LED_BUILTIN, OUTPUT); } // funkcia loop sa vykonáva dookola. Dióda sa rozsvieti, počkáme jednu sekundy, LED zhasneme a opäť počkáme jednu sekundu. Dookola void loop() { digitalWrite(LED_BUILTIN, HIGH); // Zapnutie LED signálom HIGH (úroveň 5V) delay(1000); // Ppočkáme 1000 milisekúnd, teda 1 sekundu digitalWrite(LED_BUILTIN, LOW); // vypnutie LED signálom LOW (úroveň 0V) delay(1000); // Počkáme 1000 milisekúnd, teda 1 sekundu }
Kód je teda hotový, môžeme ho nahrať do dosky. To urobíme tak, že ťukneme na šípku v ľavom hornom rohu:
Chvíľu počkáme kým sa kód skompiluje (teda preloží z textovej podoby na binárny kód jednotiek a núl) a nahrá sa do procesora na doske. Ak všetko prebehne v poriadku, dole sa nám ukáže poznámka “Nahrávanie kódu ukončené”. Potom už stačí len pozorovať, ako LED na Arduino bliká.