Arduino 3: První program

Díl 3 z 7 v seriálu Arduino

Dnešní díl věnuju tomu jak arduino oživit a donutit jej vykonávat nějako činnost, kterou si vymyslíte. Budete potřebovat nějakou Arduino desku ať již originál, nebo některý z jeho klonů. Dále si musíte stáhnout GUI, neboli program kterým budeme kód překládat a nahrávat do desky. Program je zdarma ke stažení na webu http://arduino.cc/en/Main/Software.
Po spuštění před sebou uvídíte zhruba toto (různé verze se drobně liší).
Pohled na hlavní gui po spuštění

Popořadě projdeme všechny možnosti, které se nám nabízejí, pokud by vás to nudilo přeskočte nakonec na odeslání prvního programu.

Ikony:

  •  Verify: kontrola zdrojového kódu programu na výskyt formálních chyb
  •  Upload: provede to samé co verify a nakonci nahraje program do Arduina
  •  New: otevře nové okno s čistým souborem
  •  Open: slouží k otevření staršího souboru (soubory pro arduino se nazývají Sketch)
  •  Save: uloží hotový nebo rozpracovaný soubor
  •  Serial monitor: spustí zobrazení výstupu sériového rozhraní Arduina, význam tohoto výstupu si ukážeme v dalších dílech

Menu: Vyberu pouze podstatné a zajímavé položky, k ostatním se dostanete sami nebo se jim budu věnovat až to bude nezbytné.

  • File > Upload Using Programmer: možnost nahrát kód pomocí programovacího prostředku přímo do čipu, může se hodit jste si koupili některou z minimalistických verzí arduina a programátor
  • File > Examples: tady najdete různé příklady programů s anglickým komentářem, doporučuji prozkoumat, některé z nich budeme používat abych vám ušetřil kopírování z webu
  • Sketch > Import Library: tady najdete připravené knihovny pro jednodušší programování pomocí předpřipravených funkcí, ukážeme si později
  • Tools > Board: předtím než začnete programovat je potřeba zde vybrat které konkrétní arduino vlastně máte
  • Tools > Serial Port: pokud máte připojených více desek najednou tak zde můžete vybrat kterou z nich programovat (který sériový port počítače využívat)
  • Tools > Burn bootloader: pokud máte programátor tak touto položkou se do prádného Atmega čipu nahrává základní SW adruina
  • Help: nápověda

Tam kde je na mém obrázku nápis “Arduino Mega (ATmega1280) on Com11″(spodní použek) tam by se mělo zobrazit jakou desku máte vy a kam je připojená. Pokud je to špatně, nebo to tam není, zvole v menu správné položky.

V černém poli výše se budou zobrazovat informace z průběhu kontroly a nahrávání programu. Pokud bude něco špatně tak zde zjistíte co.

Konec teorie vyberte příklad z menu “file”>”examples”>”1.basic”>”blink” a nebo zkopírujte následující text do hlavního okna. Jediný rozdíl je v překladu komentářů do češtiny

/*Blink
Zapne led diodu na jednu vteřinu, následně ji na vteřinu vypne, takhle pořád dokola.

Tento příklad je možno volně šířit.
*/

// k pinu 13 je připojena led dioda na většině Arduino desek.
// provedeme pojmenování:
int led = 13;

// následující funkce setup se provede vždy jen jednou a to po stisknutí tlačítka reset nebo zapnutí desky:
void setup() {
// nastavíme pin s LED jako výstupní(EN: output).
pinMode(led, OUTPUT);
}

// funkce loop(CZ: smyčka) se pouští pořád dokola dokud je deska zapnutá:
void loop() {
digitalWrite(led, HIGH); // zapni LED (HIGH (CZ: vysoká) je úroveň napětí nebo taky logická úroveň
delay(1000); // čekej 1000ms
digitalWrite(led, LOW); // vypni LED nastavením napětí nebo logické úrovně na LOW (CZ: nízká)
delay(1000); // čekej 1000ms
}

Pokud jste to doteď neudělali tak připojte arduino k počítači, vybrerte v menu správný Board, a můžete stisknout Upload. Následně uvídíte průběh Verify a následně průběh Uploadu. Je možné, že se vás teď Arduino zeptá na správný sériový port. Pokud ano tak je to pravděpodobně ten s nejvyšším číslem.

Pokud nikde nenastala chyba tak v programu vidíte informaci “Upload Done” a na arduinu vám poblikává červená led dioda. Gratuluji, je to tam, a teď si rozebereme proč se to vlastně děje a co znamenají jednotlivé části programu. Hlavní výhodou příkladu Blink je jeho jednoduchost a funkčnost bez připojování dalších součástek. Standardní arduino má totiž k vývodu(pinu) 13 připojenu led diodu.

Když se podíváte na zdrojový kód příkladu tak snadno zjistíte například způsob psaní komentářů a formátování textu.

 /* Takhle se píše libovolný komentář a ukončit ho musíme zase naopak */

//nebo můžete udělat jednodušší jednořádkovou poznámku takhle

//řádky se ukončují středníkem
int led = 13;

//na konci definice funkce se středník nepíše
setup(){
}

Dál uvidíte tři základní části programu, které jsou vždy podobné.

  1. deklarace Nastavení pojmenování portů(pinů), pojmenování proměnných, nastavení konstant, seznam použitých knihoven. Tato část je vždy na začátku před ostatními funkcemi.
  2. nastavení prostředí Funkce “setup”, tady provedete úkony, které jsou nezbytné pro to aby běžel hlavní program například: kontrolu připojených součástek, vynulování poloh mechanismů, nastavení provozních parametrů hardwaru
  3. hlavní smyčka programu Funkce “loop”, sem patří to hlavní co má program vykonávat po celou dobu zapnutí.

Tak to by bylo pro dnešek vše. Můžete pokračovat tím, že budete tento příklad zkoušet upravovat nebo můžete prozkoumat ostatní příklady. Pokud máte nějaké základy angličtiny tak na tom nic těžkého není. V dalším dílu se pokusím vysvětlit funkci a smysl sériového portu. Je to další vybavení arduina, které máte k dispozici aniž by jste museli něco kupovat a připojovat.

+ Ondra

Další díly seriálu<< Arduino 2: Nepájivé kontaktní poleArduino 4: sériový port a podmínky >>

6 thoughts on “Arduino 3: První program

  1. Zzzajd

    Jak si psal o tom breadboardu a o těch záhadnejch “jehličkách”, co se lisují/ letují na drátky, nemůžeš mi hodit na mail odkaz, kde si je koupil? Dík moc

    Reply
  2. Ondřej Píštěk Post author

    Zdarec,
    nevím nějak se mi nedaří se dokopat k dopsání. Snad brzy bude článek o cyklech a pauzách, ještě jeden mám připravený o sériovém portu.
    Vyděržaj pijaněr 🙂

    Asi toho dělám moc naráz abych všechno dělal pořádně, sorry

    Reply
  3. rosta

    cau,

    hodně povedené čtení,ale mám problém když jsem poprvé udělal Upload tak mi to hlásí toto:
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_getsync(): timeout communicating with programmer

    Reply

Leave a Reply to Ondřej Píštěk Cancel reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.