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í, IoT, Pohyb, Zajímavosti, Arduino, Sigfox, Řídicí jednotka, Bosch Sensortec, Naprostý začátečník, Knihovna, Delay, DealeXtreme, Arduino pro mini, Čidlo, Bezdrátový protokol, Photon, Dallas, Prostředí Arduino, Cactus, Maličké Arduino, Arduino Uno, Analogový


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

Porno insider: Jak Greg Lansky mění internet pro dospělé

Porno insider: Jak Greg Lansky mění internet pro dospělé

** Erotický obsah generoval ohromné peníze, pak ale přišel internet... ** Pornografie dostupná všude a zdarma uvedla tvůrce do krize ** Někteří ale dokázali potenciál internetu využít i v tomto oboru

Jan Dudek | 11

Roboruka se 100 let učila otočit kostičku. Skutečné A.I. se možná nikdy nedočkáme

Roboruka se 100 let učila otočit kostičku. Skutečné A.I. se možná nikdy nedočkáme

** Strojové učení v posledních deseti letech dokázalo divy ** Používáme ho dnes každý den nejen ve vyhledávači ** A přesto se člověku nepřibližuje ani náznakem

Jakub Čížek | 59

Externí SSD se může hodit. Je rychlé, malé zvenku, velké uvnitř a cena už se snese

Externí SSD se může hodit. Je rychlé, malé zvenku, velké uvnitř a cena už se snese

** Vyzkoušeli jsme rychlé externí SSD Samsung T5 ** Externí SSD je lepší než flešky i velké plotnové disky, většímu rozšíření doposud bránila především cena ** Samsung T5 zvládne i chytré šifrování a připojení k mobilu

David Polesný | 27

Tesla je stále ve ztrátě, ale elektromobily Model 3 se prodávají neuvěřitelně dobře

Tesla je stále ve ztrátě, ale elektromobily Model 3 se prodávají neuvěřitelně dobře

** Tesla má rekordní příjem, je ale ve ztrátě ** Objem výroby se zvyšuje, dochází ale baterie ** Pomoci mají nové továrny Gigafactory

Karel Javůrek | 94

Nová zbraň proti hackerům: obrovské množství chyb v softwaru

Nová zbraň proti hackerům: obrovské množství chyb v softwaru

** Vědci vymysleli nový systém obrany proti hackerům ** Pomocí speciálního systému implementují do softwaru spoustu chyb ** Tyto chyby nejsou zneužitelné, což útočník zjistí až po čase

Karel Javůrek | 28


Aktuální číslo časopisu Computer

Megatest: 13 grafických karet

Srovnání 7 dokovacích stanic s USB-C

Jak na perfektní noční fotografie

Kvalitní zdroje informací pro sebevzdělávání