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ší).
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é.
- 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.
- 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
- 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.
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
Jehličkami jsem myslel tuhle položku http://www.gme.cz/prislusenstvi-pro-pocitacove-konektory/konpc-spk-rpi-p840-009/
pokud si projdeš kategorii http://www.gme.cz/pocitacove-konektory/ tak tam je spousta zajímavých kousků se kterými se to dá kombinovat.
Cao Ondro, kdy bude druhý program? 🙂
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
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
Koukni se prosím na http://www.pistek.eu/arduino-faq/ zkontroluj tu první radu, jestli ti sedí sériový port.