Pojďme programovat elektroniku: Nakupuji cetky v Číně a sleduji stropní zářivky v Arduino IDE

  • Chytré součástky i celé počítače jsou levné
  • Arduino pořídíte za pár desetikorun
  • Dnes si vyzkoušíme jeho vývojové prostředí

Před dvěma měsíci jsem si dal smělý cíl: Postavím si meteostanici, která bude ukládat údaje o teplotě, atmosférickém tlaku a dalších veličinách kamsi na internet, bude kreslit grafy, provádět analýzy a já o tom napíšu sérii článků pro naprosté zelenáče, jejichž znalost zapojování obvodů začíná u výměny žárovky a končí u zapojení SSD disku v notebooku.

V prvním článku jsme si popsali základní principy sbírání dat z jednoduchých analogových senzorů a v pokračování jsme se podívali, co dělat s naměřenými daty na internetu, jak je automatizovaně proměnit v grafy třeba pomocí Google Apps Scriptu a tak dále.

Klepněte pro větší obrázek
Cílem našeho seriálu bude meteostanice s dálkovou venkovní sondou, která bude zasílat údaje do domácí centrály. Bude se tedy jednat o dva komunikující mikropočítače. Zatím jsme ale teprve na začátku.

Dnes se ve stručnosti podíváme na samotné vývojové prostředí Arduino IDE, poněvadž právě tento mikropočítač bude používat i moje meteostanice. Tedy abych byl přesnější, klon Arduina ve verzi Pro Mini využije venkovní sonda, která bude z blízkého parku zasílat údaje o počasí do mého bytu v pátém patře.

Arduino a cetky z Asie

Každý začátečník, který si chce vyrobit nějaký ten obvod, si samozřejmě položí otázku, co si má vlastně koupit za mikropočítač, který bude vše řídit. Stavebnice Arduino zdaleka není jediná, ale má tu výhodu, že se díky své popularitě stala určitým standardem, takže i mnohé jiné prototypovací mikropočítače nabízejí stejný způsob programování a určitou míru kompatibility. A vzhledem k tomu, že je Arduino otevřená platforma, e-shopy pro bastlíře a eBay jsou plné všemožných čínských klonů doslova za pár desetikorun.

Klepněte pro větší obrázek
Prototypovací mikropočítač Arduino Uno

Stavebnice Arduino dnes cílí na celé spektrum potřeb od velkého Arduina Mega, po maličké Arduino Gemma, nicméně tradičním modelem pro vstup do tohoto světa je Arduino Uno a to hlavně z toho důvodu, že je deska počítače zpravidla připravená pro okamžité použití, má všechna potřebná rozhraní pro experimentování a skvělou komunitní dokumentaci. To v praxi znamená, že vyjma USB kabelu nepotřebujete nic dalšího, abyste do počítače nahráli svůj program.

U menších variant Arduina zpravidla USB konektor na mikropočítači chybí, protože se předpokládá napájení spíše z baterie a logika USB jednoduše zavazí. Pokud si to začátečník neuvědomí, bude muset dokoupit převodník, který přepojí USB na šest vodičů sériové linky, které se již zapojí na desku mikropočítače na patřičné piny.

Klepněte pro větší obrázek
Arduino Pro Mini je většinou dodávané v surovém stavu. Bez pájky to už bude složité.

Leckterý začátečník si možná řekne, že toto se jej určitě nebude nikdy týkat, ale cena mikropočítačů na eBay a dalších tržištích je natolik nízká (a to i při objednávkách po jednom kusu), že se brzy přistihnete u toho, že nakupujete mnohé součástky jen tak – do sbírky. Třeba se budou hodit. Při politice často bezplatného zaslání z Asie až k vám domů a při placení skrze bezpečný PayPal je to opravdu snadné a návykové. Jediné, co si tedy u jednotlivých objednávek ze zemí mimo EU musíte hlídat, je hranice 22 eur. Pokud ji překročíte, celní poplatek a DPH může zásilku nepříjemně prodražit.

Klepněte pro větší obrázek
Podobným cenám se těžko vzdoruje, jen si budete muset počkat

Kdesi v Číně nyní plní kontejner, který přiveze hned několik klonů Arduina a dalších desek i mně, to mi však nebrání v tom, abych si jej vyzkoušel už dnes. Jak už jsem totiž napsal výše, výrobci ostatních prototypovacích počítačů se často snaží o kompatibilitu vývoje a mnohdy i hardwarového návrhu.

Týká se to i mých dvou počítačů, které jsem představil v prvním dílu. Zatímco výkonný Intel Edison (dvoujádrový Atom) byl osazený na desce kompatibilní s Arduino Uno, maličký mikropočítač s Wi-Fi Photon se zase programoval totožným jazykem. Díky tomu může začátečník využít ohromné komunitní dokumentace na internetu, kde již vaši předchůdci dávno řešili (a zpravidla vyřešili) všechny klasické problémy. Chcete rozblikat diodu? Chcete změřit teplotu? Chcete napájet Arduino pomoci fotovoltaického článku za pár dolarů? Stačí ta tři slova napsat do Googlu.

Klepněte pro větší obrázek Klepněte pro větší obrázek Klepněte pro větší obrázek Klepněte pro větší obrázek
Cetky z Asie: Primitivní jednosměrný 433MHz vysílač/přijímač a zdroj energie pro nepájivé pole s regulovaným výstupem 3,3 V a 5 V. Vlastně tyto součástky přímo nepotřebuji, ale pokud stojí doslova pár korun, proč je také nepřikoupit? Takto musí přemýšlet každý začínající bastlíř, jinak mu nakonec bude vždy něco chybět, poněvadž každý projekt se v čase vyvíjí a nároky rostou.

Jelikož na své Arduino Uno stále čekám, pro demonstraci jeho vývojového prostředí použiji další prototypovací a s Arduinem (téměř) kompatibilní mikropočítač od Intelu – Galileo druhé generace s exotickým 32bitovým procesorem Quark, jehož výkon i paměťové prostředky dalece převyšují moje potřeby.

Klepněte pro větší obrázek
Intel Galileo poslouží jako náhrada za Arduino, je s ním totiž kompatibilní

První program v Arduino IDE

Zprovoznění Arduina se všemi potřebnými porty je jednoduché. Stačí nainstalovat USB ovladač pro sériovou komunikaci a konečně i Arduino IDE, v jehož nastavení už poté stačí jen zvolit COM port, na kterém je mikropočítač skrze USB připojený k PC, a také jeho model.

Klepněte pro větší obrázek Klepněte pro větší obrázek
USB ovladač nainstalovaný, Galileo identifikované na COM4 a konečně jednoduché vývojové prostředí Arduino IDE, které ještě nastavím pro danou prototypovací desku

Tím by měla pro začátečníka veškerá konfigurace skončit a může začít psát svůj první program – tzv. sketch, který poté klepnutím na jedno tlačítko přeloží a nahraje do mikropočítače, který jej okamžitě začne zpracovávat.

Programovací jazyk Arduina vychází z jazyka Wiring pro mikrokontrolery a má stejný zápis jako C/C++. Oproti ostatním se liší i strukturou programu. Ten má dvě klíčové funkce: setup a loop, které dohromady suplují obvyklou hlavní proceduru main, a zpracují se po startu programu.

Klepněte pro větší obrázek
Prostředí Arduino IDE a jednoduchý kód

Zatímco setup slouží především k základní konfiguraci programu, nastavení vstupů a výstupů, loop představuje smyčku, která se bude opakovat stále dokola.

Když tedy do smyčky loop napíšu Serial.println(“Ahoj”), Arduino bude tento text posílat stále dokola do připojeného počítače skrze sériovou linku, která je dostupná buď přímo v Arduino IDE, anebo lze použít jakýkoliv jiný klient pro COM (třeba Putty aj.).

Smyčku můžeme zpomalit příkazem delay(čas v ms), který zpracovávání pozastaví na určitý čas. Pokud bychom tedy napsali:

Serial.println(“Ahoj”);
delay(2000);

program pošle do počítače zprávu s řádkem „Ahoj“ jen každé dvě sekundy.

Klepněte pro větší obrázek Klepněte pro větší obrázek
Program je už přeložený a nahraný do mikropočítače a skrze sériovou linku posílá do portu COM4 každé dvě sekundy pozdrav

Pro delší časové prodlevy (třeba odečet teploty ze senzoru jen jednou za pár minut) se pak používají speciální knihovny, které se postarají o to, aby se po dobu prodlevy na mikropočítači vypnula hromada logických obvodů až na časovač, takže Arduino, přestože na to není zcela navržené, v době spánku spotřebuje naprosté minimum energie, a o jeho chod se tak může postarat třeba i na dlouhé měsíce baterie.

Plotr tedy osciloskop

Arduino IDE disponuje ještě jednou výbornou funkcí – plotrem. Ten se hodí pro případy, kdy potřebujete pro testovací účely zobrazit numerické hodnoty. Dejme tomu, že k mikropočítači připojíte LDR – fotorezistor. O něm jsme si v první části také povídali, takže jen zopakuji, že se jedná o drobnou součástku citlivou na osvětlení, čili se v obvodu sníží, nebo naopak zvýší elektrické napětí, které pak mikropočítač převede na celé číslo.

Klepněte pro větší obrázek Klepněte pro větší obrázek
Galileo a náš obvod s fotorezistorem a podobné logické schéma zapojení

Pokud do Arduina pošlu primitivní program níže, mikropočítač každých 10 ms přečte hodnotu z analogového pinu, na který je připojený fotorezistor a číslo bez dalších řečí pošle sériovou linkou do počítače. V sériovém monitoru bych se v tom ale při této rychlosti příliš nevyznal. Viděl bych jen smršť čísel.

// Fotorezistor je připojený na analogový pin A0
int pin = 0;

void setup()
{
 // Nastav komunikaci na sériové lince
 Serial.begin(9600); 
}

void loop()
{
 // Napiš do sériové linky hodnotu z A/D převodníku pro pin A0
 Serial.println(analogRead(pin));
 
 // Počkej 10 ms a vše opakuj
 delay(10);
}

Proto je tu i plotr, který rozpozná, že z mikropočítače posílám jen číselné hodnoty a zobrazí je na časové ose. V podstatě tedy bude fungovat jako jednoduchý osciloskop.

Klepněte pro větší obrázek Klepněte pro větší obrázek
Textový výpis a funkce plotru, pokud do sériové linky posílám číselné údaje. Všimněte si, jak intenzita osciluje, což je dáno osvětlením v místnosti – zářivkovými kancelářskými světly

Data o osvětlení jsou pro plotr naprosto ideální, fotorezistor totiž reaguje na sebemenší změnu prakticky okamžitě, a pokud na něj posvítíte běžnou kancelářskou zářivkou, vykreslí se krásná sinusoida, protože fotorezistor zachytí i její poblikávání.

Klepněte pro větší obrázek Klepněte pro větší obrázek
A takto vypadá plotr, pokud fotorezistor ozařují stropní zářivky (nízké oscilující hodnoty), načež zapnu stolní lampu (taktéž zářivka). V plotru je patrné problesknutí zářivky.

Tak a zářivkou dnes skončíme. Já do příštího pokračování rozbalím všechny obálky z Číny a konečně si vyzkoušíme jak provoz mikropočítače na baterii, tak bezdrátovou komunikaci mezi sondou a centrálou. Možná vás překvapí, jak to bude jednoduché.

45 komentářů

Nejnovější komentáře

  • PavelP 11. 8. 2016 8:15:59
    S těmi převodníky z číny trochu pozor, třeba ty s chipem Prolific...
  • xmarek 10. 8. 2016 21:46:29
    Moc hezké. Těším se na pokračování. Třeba tam najdu další inspiraci pro...
  • panrt 10. 8. 2016 14:43:10
    Moc pěkný článek, jen tak dál, třeba se zase dočkáme i pitev.

Určitě si přečtěte


Nejlepší programy pro střih videa na doma: 10 video editorů, ze kterých si vyberete

Nejlepší programy pro střih videa na doma: 10 video editorů, ze kterých si vyberete

** Adobe Premiere Pro ani Final Cut se pro běžné uživatele příliš nehodí ** Programy na domácí střih většinou stojí do dvou tisíc ** V desítce nejzajímavějších najdete i 3 videoeditory dostupné zdarma

19.  9.  2016 | Stanislav Janů | 37

Pojďme programovat elektroniku: Vyzkoušíme IR, ovládneme světýlko přes Bluetooth a vyšleme zprávu na sto metrů

Pojďme programovat elektroniku: Vyzkoušíme IR, ovládneme světýlko přes Bluetooth a vyšleme zprávu na sto metrů

** Budeme odposlouchávat IR ovladač klimatizace ** Vyrobíme laciný rádiový vysílač ** Vyzkoušíme komunikaci pomocí Bluetooth a v pásmu 433 MHz

21.  9.  2016 | Jakub Čížek | 18

Vymazat se z internetu není možné, velkou část osobního obsahu však odstranit můžete

Vymazat se z internetu není možné, velkou část osobního obsahu však odstranit můžete

** Online stopy i se svým jménem zanechá většina uživatelů internetu ** Jejich smazání nikdy nebude stoprocentní ** Poradíme, jak odstranit jejich větší část

20.  9.  2016 | Stanislav Janů | 21

Zoner Photo Studio X: Umí vrstvy, vyrobí fotoknihu a získáte jej za roční paušál

Zoner Photo Studio X: Umí vrstvy, vyrobí fotoknihu a získáte jej za roční paušál

** Je to největší aktualizace za poslední roky ** Konečně umí vrstvy, vyrobí fotoknihu i obraz ** Nově pouze jako předplatné s průběžnými upgrady

19.  9.  2016 | Jakub Čížek | 66


Aktuální číslo časopisu Computer

Srovnání výhodných 27" monitorů

Velký test levných rychlých routerů

Jak nastavit Android, aby vás nesledoval

45 podrobných testů a recenzí