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é.

Témata článku: Hardware, Pojďme programovat elektroniku, Programování, IoT, Arduino, Čína, C++, Nepájivé pole, Celé číslo, Plotry, Abus kancelářské potřeby, Krásný měsíc, Otevřená platforma, Edison, Speciální meteostanice, Loop, Příští pokračování, Gemma, Určitý čas, Sketch, Čínský e-shop, Čížek, CET, Serial, Podobná smršť

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

Velká podzimní aktualizace Windows 10 je tady: Co přináší Fall Creators Update

Velká podzimní aktualizace Windows 10 je tady: Co přináší Fall Creators Update

** Po půl roce je tu další aktualizace Windows ** A opět přináší hlavně hromadu drobných kosmetických vylepšení ** Podívali jsme se na ty nejzajímavější

17.  10.  2017 | Jakub Čížek | 182

Budoucností Windows 10 je Fluent Design. Takto bude jednou vypadat celý systém

Budoucností Windows 10 je Fluent Design. Takto bude jednou vypadat celý systém

** Fluent Design je vzhled, do kterého postupně Microsoft převleče celý systém ** Staví na průhlednosti a velkých plochách ** Do Windows 10 se z části dostane už zítra při vydání podzimní aktualizace

16.  10.  2017 | Stanislav Janů | 155

Nejlepší optické iluze: Z toho vám půjde hlava kolem

Nejlepší optické iluze: Z toho vám půjde hlava kolem

** Mozek se nechá snadno ošálit, a to mnoha způsoby ** Podívejte se na několik nejlepších optických iluzí ** Iluze dokazují, že vnímání reality může být značně zkreslené

16.  10.  2017 | Vojtěch Malý


Aktuální číslo časopisu Computer

Nový seriál o programování elektroniky

Otestovali jsme 17 bezdrátových sluchátek

Jak na nákup vánočních dárků ze zahraničí

4 tankové tiskárny v přímém souboji