Vyhledávání

#2 - Programujeme Arduino

30.11.2013 13:13

Programujeme Arduino

V minulém díle jste se mohli dozvědět něco o historii Arduina. Také jsme si ukázali desky z oficiální řady a zmínili jsme i existenci shieldů. V závěru článku přišla řeč na neoficiální klony. Dnes už se tedy můžeme pustit do praktického použití. Na začátku si vybereme vhodné Arduino a na něm si ukážeme, co všechno se dá na desce najít. Řekneme si něco o programovacím jazyku a o vývojovém prostředí pro Arduino. Na závěr si vyzkoušíme první program, který bude blikat LED diodou.


Výběr a seznámení

Před tím, než začneme s Arduinem pracovat si musíme nějaký vhodný model vybrat. Pokud jsou cílem co nejmenší výrobky, bude nejlepší sáhnout po nějaké z menších desek (Mini, Nano, Micro). Pokud však hledáte velmi výkonné modely, které zastanou méně výkonné počítače. Těmito modely jsou například DUE, či Intel Galileo. Zlatou střední cestou jsou modely Uno a Mega 2560. Pro jednoduché zkoušení zapojení a nenáročných modulů je Uno plně dostačující. Na něj je také designována většina shieldů. Arduino Mega 2560 na druhou stranu nabídne daleko více vstupních a výstupních pinů. Vyberme si tedy pro účel následujícího popisu model Arduino Uno. Níže zmíněné části najdeme v různých obměnách na většině desek.

Arduino-Uno-s-popisky

 

  1. Pod číslem jedna se skrývá resetovací tlačítko. To použijeme, pokud chceme náš program spustit znovu od začátku. U různých typů Arduina se můžeme setkat i s jiným umístěním tohoto tlačítka. Většinou je ale toto tlačítko popsané nápisem RESET.
  2. USB konektor typu B. U nejstaršího modelu najdeme místo USB sériový port. U některých novějších modelů se setkáme s micro USB. Na některých deskách ho vůbec nenajdeme, protože mají buď jiný způsob připojení (Ethernet, BT), nebo pro programování vyžadují připojení externího programátoru.
  3. Napájecí konektor. Využijeme ho, pokud nebudeme Arduino napájet z USB.
  4. ICSP hlavice pro externí programování USB-serial převodníku. Běžný uživatel ji nepoužije. U verzí bez převodníku, nebo s převodníkem obsaženým v hlavním čipu ji nenajdeme.
  5. USB-serial převodník. Ten se stará o komunikaci mezi hlavním čipem a PC. Plní zde roli překladatele. U verzí bez převodníku, nebo s převodníkem obsaženým v hlavním čipu ho nenajdeme.
  6. Indikační LED diody L, Rx a Tx. Dioda s popisem L je často využívaná. Je totiž připojená k výstupu č. 13. S ní se tedy dá vyzkoušet blikání i bez připojené externí LEDky. Některá Arduina (Leonardo...) ji však vůbec neobsahují. Diody s popisem Tx a Rx blikají, pokud probíhá komunikace přes sériovou linku.
  7. Hlavní čip celé desky. V různých podobách a typech ho najdeme na všech deskách.
  8. Indikační LED dioda ON. Svítí, když je připojené napájení.
  9. ICSP hlavice pro externí programování hlavního čipu. Využívají ji některé shieldy.
  10. Digitální piny. Do těchto zdířek budeme připojovat všemožné obvody. Vývody označené vlnovkou podporují PWM modulaci, o které si povíme později.
  11. Převážně napájecí výstupy Arduina.
  12. Analogové vstupy. Sem připojíme vodiče, na kterých budeme chtít měřit nějakou analogovou hodnotu. Dají se využít i jako digitální vstupy a výstupy.

 


Arduino IDE

Historie

Arduino IDE (integrated development enviroment = integrované vývojové prostředí) je napsané v jazyce Java. Jedná se o software vzniklý z výukového prostředí Processing. To bylo mírně upraveno, byly přidané určité funkce a v neposlední řadě podpora jazyka Wiring.


Stažení a instalace

Arduino IDE si můžeme stáhnout zde[en]. V této době je poslední verzí Arduino 1.0.5 (1.5 je stále ve verzi Beta). Najdeme si tedy na poslední finální verzi a stáhneme ji pro požadovaný operační systém. Pro Windows je nejjednodušší stáhnout si ZIP archiv, který je po rozbalení plně funkční. Pro Linux se instalace může lišit i podle distribucí. Popis pro jednotlivé distribuce nalezneme zde[en]. Musíme také zmínit další velký operační systém, jímž je Mac OS. Návod na instalaci nalezneme zde[en]. Následující část článku se bude věnovat použití Arduina s operačním systémem Windows. Předpokládejme, že máme stažený ZIP archiv verze 1.0.5. Vybereme si složku, ve které chceme mít software pro Arduino a zde archiv rozbalíme. Po rozbalení obsahuje další složky a soubory. Složka Drivers obsahuje ovladače pro komunikaci Arduina s PC. V Examples nalezneme příklady kódů. Důležitou složkou je složka Libraries, kam se ukládají knihovny. To jsou balíky obsahující rozšiřující funkce pro programování. Ještě než si IDE spustíme si vytvoříme v uživatelské složce Dokumenty složku Arduino. Tuto složku většinou nalezneme na umístění: C:\Users\jmeno_uzivatele\Documents. Zde si vytvoříme složku Arduino a v ní složku libraries. Sem si budeme ukládat vytvořené programy a do složky libraries přidané knihovny. Ty nám zde zůstanou stále stejné, i když přejdeme na novější verzi Arduino IDE. Nyní už nás bude zajímat pouze soubor arduino.exe ve staženém balíku, který spustí vývojové prostředí. Spusťme si ho tedy a ukažme si jeho nejdůležitější funkce.


Používání

arduino-ide Vývojové prostředí můžete vidět na obrázku. V prvním řádku navigačních prvků nás bude zajímat pouze rozbalovací nabídka Tools, ve které nalezneme nastavení pro připojení a programování desky. Její funkce si popíšeme později. V dalším řádku nalezneme několik ikon. Jako první z leva nalezneme ikonu s fajfkou - Verify. Ta po kliknutí spustí kontrolu programu a zkontroluje kód. Pokud nalezne nějakou chybu, v syntaxi ji zvýrazní. Vedle nalezneme ikonu s šipkou doprava - Upload. Ta spustí kontrolu programu, a pokud nenalezne žádné chyby, nahraje program do připojeného Arduina. Další je ikona se symbolem přeložené stránky - New, která po kliknutí vytvoří nový soubor. Další tlačítko s šipkou nahoru - Open - otevře nabídku pro otevření programů (včetně těch, které máme uložené v Dokumentech). Tlačítko s šipkou dolů - Save - uloží současný program. Ve stejném řádku nalezneme úplně vpravo ještě ikonu s lupou - Serial Monitor. Ta spustí sériový monitor, o kterém si více povíme příště. Velký bílý prostor slouží k zápisu kódu a černý prostor dole zobrazuje informační a chybové výpisy z běhu prostředí.


Programovací jazyk

Arduino je možné programovat v jazyce C nebo C++. Nejjednodušší je však používat knihovnu Wiring. Ta je v současné době pro programování Arduina velmi rozšířená. Kvůli její komplexnosti se o ní občas mluví jako o samostatném programovacím jazyku. Pro první seznámení si otevřeme příklad BareMinimum. Klikneme na ikonu Open a v rozbalovacím seznamu 01.Basics vybereme možnost BareMinimum. V editoru se nám zobrazí následující kód:

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly: 
  
}

Na ukázkovém kódu si můžeme všimnout hned dvou věcí. První z nich je přítomnost dvou bloků programu. V horní části nalezneme blok (funkci) void setup(){ }. Mezi složené závorky se v tomto bloku píše kód, který se provede pouze jednou na začátku programu. To znamená buď po připojení napájení, zmáčknutí tlačítka restart, nebo nahrání kódu do Arduina. Druhým blokem (funkcí) je void loop(){ }, do jehož složených závorek se zapisuje kód, který se bude opakovat neustále dokola až do odpojení napájení. Tyto dvě části musí být v programu VŽDY - tedy i když neobsahují žádné příkazy. Při jejich absenci by program skončil chybou. Dále bychom si měli všimnout dvojitého lomítka. To nám značí komentáře v programu. Část kódu, nebo textu zapsanou za podtržítkem bude program ignorovat. Používá se, když si chceme k části kódu zapsat poznámku, nebo když chceme na chvíli vyřadit část kódu z provozu. Můžeme se setkat s dvěma typy komentářů:

jednořádkový komentář
//když řádek začíná dvojitým podtržítkem, jedná se o jednořádkový komentář
//vše, co je v řádku za ním program ignoruje
to co se však nachází na dalším řádku je bráno jako normální kód

druhým typem jsou víceřádkové komentáře
/* ty začínají podtřžítkem a hvězdičkou
mohou 
mít
libovolný 
počet
řádků
a končí hvězdičkou a podtržítkem */

Blikáme LED

Budeme potřebovat

  1. Arduino Uno (nebo jinou Arduino desku)
  2. USB kabel
  3. Nepájivé kontaktn í pole
  4. LED Dioda - stačí obyčejná za 1 Kč
  5. Vodiče - dobrou kombinací obsahující nepájivé pole i vodiče je například náš set.
  6. 330 ohm rezistor - zapojení bude fungovat i bez něj, ale je lepší ho použít.

 

Připojení Arduina a PC

Arduino Uno připojíme pomocí USB k počítači. Mělo by se nám objevit instalační okno. Pokud se instalace nového zařízení nepovede, neděste se. Nyní přichází na řadu stažená složka Drivers. V nabídce Start -> Ovládací panely otevřeme Správce zařízení. Zde najdeme naše Arduino. Pravým tlačítkem otevřeme okno Vlastnosti a na kartě Ovladač zmáčkneme tlačítko Aktualizovat ovladač (k tomu je však nutné mít oprávnění správce). Poté vybereme možnost Vyhledat ovladač v počítači a navedeme instalační program do umístění složky Drivers. Nakonec zmáčknutím tlačítka další nainstalujeme ovladač.

Nyní ještě musíme nastavit Arduino IDE. Otevřeme nabídku Tools a v seznamu Boards vybereme Arduino Uno. Poté v Tools -> Serial Port vyberte sériový port, na který je Arduino připojeno (většinou je to jediný port v seznamu). Tímto je za námi nastavování a můžeme se pustit do zapojování.

Zapojení

Vezmeme si LED diodu, vodiče a rezistor a vše zapojíme tak, jak je vidět na obrázku.

Program

Nyní už nám nezbývá nic jiného, než do editoru vložit následující program a stiskem tlačítka Upload nahrát kód do Arduina. Pokud vše proběhlo v pořádku, LED dioda začne blikat.

void setup() {
  pinMode(12, OUTPUT); //česky: nastav pin 12 jako výstup
}

void loop() {
  digitalWrite(12, HIGH);   //na pinu 12 pusť proud
  delay(1000);              //počkej 1000 ms = 1 s
  digitalWrite(12,LOW);     //na pinu 12 vypni proud
  delay(1000);
}

Zdroje obrázků

[Arduino Uno]
Zapojení bylo nakresleno v programu Fritzing.

 

Kam pokračovat?


<--#1 - Arduino Úvod||#3 - Základní struktury jazyka Wiring-->
Zpět

Diskusní téma: #2 - Programujeme Arduino

Datum
Vložil
Titulek

podtržítko

začíná do pěkně, říkal jsem si po nějakých neúspěších, že zkusím nějaký český tutorial pro začátečníky, aby mi nic neuniklo. no ale že je // "dvojité podtržítko", to jsem si musel několikrát přečíst, abych pochopil, že to je myšleno vážně. _ tohle je předpokládám lomítko? existuje též něco jako zpětné podtržítko?
zatím pěkný návod, ale tohle prosím změňte.

Datum
Vložil
Titulek

analogové vstupy jako výstupy

V popisu desky arduina se v bodu 12) zmiňujete že, cituji : Analogové vstupy. Dají se využít i jako digitální vstupy a výstupy.
Nikde jsem ale nenašel jak toho dosáhnout, resp. jak vypadají příkazy pro ovládání.

Datum
Vložil
Titulek

arduino nekomunikuje

mám otvorený program 0023 , keď pripojím arduino mega 2560 tak mi počítač vypíše že som niečo pripojil ale mne sa driver z arduina nedostane do PC , čo s tým ?

Datum
Vložil
Titulek

Error Compiling

Dle návodu jsem se dopracoval (ihned po instalaci ovladače) až do části kdy se mi po stisku ikony Verify objeví chybová hláška
C:\Users\Hugo\Pracovna\Elektro\Arduino\arduino-1.0.6\hardware\arduino\cores\arduino/main.cpp:40: undefined reference to `setup'
C:\Users\Hugo\Pracovna\Elektro\Arduino\arduino-1.0.6\hardware\arduino\cores\arduino/main.cpp:43: undefined reference to `loop'
To samé se děje po stisku tlačítka Upload.
Tento problém se řeší na
http://forum.arduino.cc/index.php?topic=271373.0
ale že bych z toho byl moudrý, to se nedá říct.
Zkoušel jsem program na dvou počítačích, jeden s Win7/64bit a druhý s XP na obou se to chová stejně.
Poradí někdo ?
Díky Hugo.

Datum
Vložil
Titulek

Re: Error Compiling

Ahoj a co konkretně se snažíš verifikovat, můžeš sem hodit ted kód? Skoro to vypadá, že sis neotevřel ten příklad BareMinimum (File -> Examles -> 01.Basics -> BareMinimum )

Datum
Vložil
Titulek

Re: Error Compiling

Jak píše Kolis.
Ukaž kód a můžeme se bavit dále :)

Tahle chyba většinou nastane, když:
a) není v editoru vůbec žádný program
b) v programu chybí povinné funkce loop() a setup() (viz část programovací jazyk)

Snad to pomůže :)

Datum
Vložil
Titulek

Re: Re: Error Compiling

Omlouvám se zbytečný dotaz. Bylo to přesně tak. Neměl jsem tam vůbec žádný program. Postupoval jsem slepě podle popisu, kde to pořadí, co udělat není úplně nejšťastnější. Zřejmě nikdo nepočítal s tím že si Arduino koupím i já. :-)) Příště zkusím něco inteligentnějšího.
V každém případě potěšilo, že to tu žije.
Díky za všem za reakce a vůli pomoci.

Datum
Vložil
Titulek

Drobná oprava

V sekci "Výběr a seznámení", píšete že arduino LEONARDO neobsahuje diodu L, to však není pravda, LEONARDO tuto diodu má. :)
Jinak super Web ! :))

© 2015 Všechna práva vyhrazena.

www.hwkitchen.com