Hardware | Pojďme programovat elektroniku | Programování

Pojďme programovat elektroniku: Vyzkoušíme ultrazvukový dálkoměr, detektor pohybu, deště a další kouzla

  • Vyzkoušíme si senzory na pokročilých sběrnicích
  • Budeme ultrazvukem měřit vzdálenost
  • Detekujeme déšť i pohyb
Pojďme programovat elektroniku: Vyzkoušíme ultrazvukový dálkoměr, detektor pohybu, deště a další kouzla

Zatímco rodiče pomalu nakupují nové penály, tužky, propisky, kružítka, pravítka, aktovky s pokémony a datové tarify pro své ratolesti, do Česka v záplavě ostatních cetek přicestoval i kontejner plný laciných senzorů, a tak se konečně můžeme vrhnout na pokračování našeho seriálu o domácím programování drobné elektroniky.

Dnes si vyzkoušíme, jak vlastně získat údaje z některého z mnoha čidel, které dnes můžete společně s nejrůznějšími mikropočítači pořídit v kdejakém českém e-shopu pro kutily, anebo na eBayi a celém zástupu asijských katalogů od Banggoodu po DealExtreme.

Klepněte pro větší obrázek
Prototypovací počítače v praxi: Intel Edison, Intel Galileo, Arduino Uno (na něm dnes budeme vše stavět), SmartEverything pro bezdrátový protokol Sigfox, NodeMCU s Wi-Fi, armový Photon s Wi-Fi a konečně maličké Arduino Pro Mini

Platí zde jednoduché pravidlo. Na eBayi sice seženete senzor i základní prototypovací mikropočítač Arduino Uno za pár korun a zpravidla i s bezplatnou dotovanou dopravou z Číny nebo Hongkongu, ale počkáte si i několik dlouhých týdnů. Pokud chcete svoje Arduino s armádou senzorů, propojovacích kablíků a dalšího potřebného příslušenství teď hned, české e-shopy jako Arduino-shop, Robotstore, GME, GES, Tays, Santy a další vám vyjdou vstříc, ale pochopitelně za trošku jiné ceny – není to přeci charita a hlavně získáte zákonnou záruku.

Klepněte pro větší obrázek
Hromada mikropočítačů, součástek a senzorů. Dnes si některé z nich předvedeme.

Tak, konec nakupování a jdeme si hrát a zapojovat naše nové moduly do mikropočítače typu Arduino Uno, jehož laciný klon i s USB kabelem jsem koupil na eBayi zhruba za sto korun.

Analogový teploměr TMP36

Pro začátek si připomeňme zapojení primitivního analogového teploměru TMP36 se třemi vodiči. Zatímco krajní nožky slouží pro napájení (+/-), ta prostřední vede samotný signál o teplotě. A jelikož se jedná o analogový senzor, oním signálem je napětí o určité velikosti. Čím vyšší teplotu čidlo zaznamená, tím se zvýší i napětí na signálovém vodiči. Mikropočítač toto napětí přečte, pomocí A/D převodníku převede na celé číslo a s ním už můžeme pracovat.

Klepněte pro větší obrázek
Analogový teploměr TMP36

Počítače Arduino mají 10bitový A/D převodník a pracují s napětím 5 V, což v praxi znamená, že 0 až 5 V na některém z analogových konektorů vyjádří hodnotou 0 až 1 023 (1 024 = 210 = deset bitů).

Pak už pouze stačí pročíst dokumentaci konkrétní elektrické součástky, ze které se dozvíte, že TMP36 vyjádří teplotu 25 °C napětím 750 mV a změna napětí o 10 mV odpovídá 1 °C. Proč tedy rovnou nevyjádří onu pokojovou teplotu napětím 250 mV? Protože 500mV posun (500 + 250 = 750) usnadní výpočet záporných teplot. Když bychom tedy na signálovém vodiči naměřili napětí 300 mV, odpovídá to -20°C, protože platí rovnice 300-500 = -200 a -200/10 = -20.

Suma sumárum, celé číslo z A/D převodníku přepočítáme zpět na napětí a to podle pravidel výše na teplotu.

Klepněte pro větší obrázek

Jak to zapojit dohromady

Takže to bychom měli analogovou teorii a teď samotné zapojení. Mikropočítače označení + a pro napájení zpravidla nepoužívají. Namísto toho zde máme konektor GND (zem) pro záporný pól a ostatní konektory pro generování určitého napětí a tedy kladný pól.

V případě teplotního čidla nepotřebujeme programově zapínat a vypínat jeho napájení jako třeba u LED diody, která má blikat, můžeme jej tedy připojit k některému konektoru, který poskytuje stálé a regulované napětí. Arduino zpravidla disponuje piny pro 5V a 3,3V zdroj napětí, které můžeme použít.

TMP36 je nízkonapěťové čidlo, pro které je 5 V opravdu nejvyšší hranice a více mu sluší napětí okolo 3 V, kdy podává přesnější výsledky. Pro napájení jsem tedy použil konektor označený 3.3V.

Klepněte pro větší obrázek Klepněte pro větší obrázek
Zapojení našeho analogového teploměru TMP36 k Arduinu. Pomohlo nám tzv. nepájivé pole – breadboard, což je matice propojených děr, do kterých stačí zapíchnout senzory a drátky bez potřeby jakéhokoliv pájení

Prostřední signálový vodič teploměru jsem pak připojil do konektoru A0, který je společně s dalšími piny okolo určený pro práci s analogovým signálem.

Začátečníci si mohou celý obvod vyzkoušet třeba ve webovém simulátoru Circuits.io, aniž by se museli obávat, že chybným zapojením něco poškodí.

Změř teplotu každou sekundu

A to je celé. Teď už pouze stačí napsat jednoduchý program ve stejnojmenném vývojovém prostředí Arduino, který přečte hodnotu z A/D převodníku, převede ji na napětí, to dále na teplotu a všechny tři hodnoty pošle skrze sériovou linku do velkého počítače, který je s Arduinem spojený USB kabelem na portu COM7. Následně program počká jednu sekundu a vše zopakuje.

Klepněte pro větší obrázek
Program vypisuje surovou hodnotu z A/D převodníku,
zpětně vypočítané napětí a konečně i teplotu

Kód programu

Jakmile se program přeloží a nahraje do paměti mikropočítače, začne se zpracovávat, kdykoliv Arduino připojíte do elektřiny. Právě jsme tedy dali křemíkové destičce její první smysl.

int data;
float napeti, teplota;

void setup(){
 // Nastaveni seriove linky
 Serial.begin(9600);
 while(!Serial){;}
}

void loop() {
 // Precti hodnotu z analogoveho pinu A0
 data = analogRead(A0);

 // Vypocitej napeti na pinu A0
 napeti = (5.0/1024.0) * data;

 // Vypocitej teplotu podle dokuemntace cidla TMP36 
 teplota = (napeti - 0.5) * 100;

 // Vypis hodntu z A/D, vypocitane napeti a teplotu
 Serial.print(data); Serial.print("\t");
 Serial.print(napeti); Serial.print(" V\t");
 Serial.print(teplota); Serial.println(" stupnu");

 // Pockej jednu sekudnu a opakuj
 delay(1000);
}

V další kapitole se už podíváme na mnohem zajímavější a také digitální senzory, se kterými se pracuje úplně jinak a vlastně i jednodušeji, protože pro každý kousek složitějšího hardwaru už dnes existuje nějaká ta knihovna, která vše naprosto usnadní.

Témata článku: Technologie, Hardware, Pojďme programovat elektroniku, Programování, Arduino, IoT, Zajímavosti, Pohyb, Sigfox, SCL, Součástka, Infračervený detektor, Sensor, GME, Arduino ID, GND, Maličké Arduino, Spoušť, Pokémon, Posila, Jednoduché pravidlo, Analogový výstup, Knihovna, Domácí programování, Domácí program, Stolní počítače na Mall.cz


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

Apple vychrlil novinky: Nové operační systémy a příprava na vlastní procesory

Apple vychrlil novinky: Nové operační systémy a příprava na vlastní procesory

** Apple dnes představuje novinky ** Tradiční keynote v rámci konference WWDC probíhá jen online ** Nové operační systémy, ale i něco navíc

David Polesný | 108

Jak uložit dokument z Wordu, aby vydržel celé roky? Je to těžší než cesta na Mars

Jak uložit dokument z Wordu, aby vydržel celé roky? Je to těžší než cesta na Mars

** Jak uložit soubory, aby vydržely vnoučatům? ** A co kdyby měly přečkat celá staletí? ** Teď se o to pokouší GitHub a je to oříšek i pro lingvisty

Jakub Čížek | 118

Za hranicemi Chromu: 13 nejzajímavějších prohlížečů, které „nikdo“ nepoužívá

Za hranicemi Chromu: 13 nejzajímavějších prohlížečů, které „nikdo“ nepoužívá

** Šesti nejpoužívanějším prohlížečům patří 94 % trhu ** Různé „klony“ Chromu slibují lepší funkce nebo jiný design ** Také Firefox má řadu zajímavých odnoží

Lukáš Václavík | 38

Čím nahradit Total Commander: 11 správců souborů nejen pro profíky

Čím nahradit Total Commander: 11 správců souborů nejen pro profíky

** Total Commander je fernomén mezi správci souborů ** Našli jsme 11 povedených alternativ ** Zvládnou to samé a ke všemu jsou většinou zadarmo

Karel Kilián | 87

Z rozmazané šmouhy krásná fotka. Takhle kouzlí nová umělá inteligence MyHeritage

Z rozmazané šmouhy krásná fotka. Takhle kouzlí nová umělá inteligence MyHeritage

** MyHeritage slibuje nejlepší neuronovou síť pro vylepšování fotek ** Funguje tím líp, čím horší fotku upravuje ** Otestovali jsme desítky různých snímků

Marek Lutonský, Lukáš Václavík | 39

Nejlepší aplikace na předpověď počasí: Kde nejlépe zjistit, co zrovna chcete vědět

Nejlepší aplikace na předpověď počasí: Kde nejlépe zjistit, co zrovna chcete vědět

Obecných aplikací na předpověď počasí je nespočet, jenže často skončí jen u základní informace o počasí a nenabídnou odpovědi na řadu praktických otázek. A tak jsme si položili právě několik takových otázek a hledali aplikace či meteoslužby, které nám nejlépe odpoví.

Karel Kilián | 4


Aktuální číslo časopisu Computer

Megatest: nejlepší notebooky do 20 000 Kč

Test 8 levných IP kamer

Jak vybrat bezdrátová sluchátka

Testujeme Android 11