Pojďme programovat elektroniku

Programování elektroniky: Detektor štěkotu, sousedovy vrtačky i padajících skleniček

  • Paní Bledé doma štěkají psi, jak je sledovat za pár kaček?
  • Dnes to zkusíme pomocí primitivního mikrofonu a Arduina
  • Při velké zvukové amplitudě spustíme alarm a dorazí notifikace

Paní Bledá má nevychované psy, kteří celý den štěkají. Dnes si proto naprogramujeme zvukový detektor ruchů, který při štěkotu odešle třeba varovnou notifikaci.

Do naší redakční schránky doputovala další kutilská prosba a výzva v jednom. Paní Ludmila Bledá z Kozojed se stará o dva nevychované psy, kteří obtěžují celou obec. Bledá totiž stojí od rána do večera u výčepu a štěkot osamocených rošťáků se nese přes les až do nedalekých Masojed.

Co s tím? Kolegové by samozřejmě paní Ludmile doporučili tu nejlepší a nejchytřejší chůvičku na trhu, tady jsme ale na stránkách našeho seriálu o programování elektroniky, a tak do hry zapojíme primitivní elektretový mikrofon, mikrofonový zesilovač MAX9814 od Maxim Integrated a vhodnou prototypovací destičku s A/D převodníkem a nějakou formou konektivity – ideálně Wi-Fi.

Podívejte se na video, co si dnes postavíme:

Mikrofon bude neustále snímat zvukové vlny z okolí, čip MAX9814, který je vybavený automatickým vyrovnáváním citlivosti (AGC), tyto vlny adekvátně zesílí a mikrokontroler na prototypovací desce je pomocí analogově digitálního převodníku transformuje na diskrétní číslo.

Postavíme to na ESP32

Nakonec jsme sáhli po prototypovací desce s Wi-Fi čipem ESP32. Můžete samozřejmě použít jakýkoliv laciný model, referenčními boardy v našem seriál jsou ale tuzemské desky z řady ESP32-LPKit od Laskakitu.

Na stejném e-shopu můžete rovnou do košíku přihodit i kombinovaný modul s mikrofonem a zesilovačem. Stojí něco málo přes sto korun.

e3e94c7e-3f99-4fc6-bd93-3910afa24502
Obvod s řídící deskou a analogovým mikrofonem se zesilovačem

Destičku s mikrofonem můžete napájet jak z 3V zdroje, což je ostatně i pracovní napětí desek s čipy ESP322, tak z 5V zdroje, který je zase typický pro robustní desky Arduino s 8bitovými čipy architektury AVR. V každém případě, podle dokumentace výrobce modul snese napětí až 10 V.

Mikrofonový modul s nastavením citlivosti

Modul má pět pinů se standardní prototypovací roztečí 2,54 mm. GND (-) a Vdd (+) slouží pro připojení zdroje napětí. Jelikož budeme pracovat s deskou ESP32-LPKit, GND propojíme se stejnojmenným pinem a Vdd připojíme k pinu 3V3. Samotný zvukový signál bude oscilovat na pinu Out, který připojíme k některému z pinů na řídící desce, který je propojený s A/D převodníkem. My zvolíme pin 33.

d4e056d4-ba16-44a8-ac8a-7f74fe99463c
Modul elektretového mikrofonu se zesilovačem MAX9814

Na drobném modulu s integrovaným obvodem MAX9814 najdete ještě piny Gain a AR. Gain pomáhá nastavit citlivost, přičemž přímo na destičce je naznačeno, jak jej zapojit a změnit zesílení.

V nezapojeném stavu (floating) bude zesílení mikrofonu rovno 60 dB. Pokud pin Gain připojíte do GND, získáte 50 dB, no a pokud ke zdroji napájení (Vdd), bude roven 40 dB. Jestli jste s podobnými zesilovači ještě nepracovali, těch čísel se nebojte a jednoduše si vyzkoušejte všechny scénáře s tím, že sami uvidíte, jak se výstup chová a který průběh vám bude vyhovovat nejlépe. Stručně řečeno, různým zapojením se změní citlivost mikrofonu, a tedy i odstup signálu, který nás zajímá, od šumu na pozadí.

c468c81f-dc1f-401a-a174-9be4fdcfac60
Pomocí pinů můžete přečíst analogovou hodnotu a nastavit citlivost

Nakonec na destičce najdete ještě pin A/R. Nechte jej klidně nezapojený – ve výchozím stavu. Jedná se o zkratku pro attack-release a je to vlastně vzorkovací poměr, podle kterého pracuje vnitřní obvod automatického zesílení citlivosti (automatic gain control).

5e9e378f-b481-43e7-b37a-186257f1095b e88d7cab-64ec-4b86-a7b5-edd6bcfa470b
Detail propojení mikrofonu a řídící desky

Poměr se opět nastavuje podle toho, jestli je tento pin nezapojený (floating), připojený ke zdroji (Vdd), nebo k systémové zemi (GND). Více detailů k této funkci, která může ještě dále upravit chování zesilovače, najdete v dokumentaci, na kterou odkazuji v úvodu článku. O samotném principu attack-release se dočtete třeba v dotazovně na StackExchange.

Primitivní analogový mikrofon versus MEMS

Primitivní elektretový mikrofon (byť se zesilovačem) a s analogovým výstupem jsme zvolili proto, že si na něm můžeme jednoduše demonstrovat zvukové vlny interpretované prostým oscilujícím elektrickým signálem.

Současné pokročilé chůvičky, reproduktory chytrých asistentů a další podobná elektronika nicméně obsahuje sofistikovanější a digitální MEMS mikrofony často ve formě celých všesměrových polí. Podobné mikrofony jsou vybavené vlastním A/D převodníkem i zesilovačem a řídícímu počítači odesílají rovnou digitální signál v pulzně kódové modulaci PCM zpravidla po speciální zvukové sběrnici I2S.

Výkonnější mikrokontrolery už sběrnici I2S podporují a je to i případ našeho čipu ESP32. Právě pro tu nejjednodušší možnou demonstraci, kdy budeme jen číst analogový signál pomocí A/D převodníku, nám ale bohatě stačí základní a také zpravidla mnohem levnější mikrofon.

Vypisujeme zvukové vlny na plotr

Wi-Fi čip ESP32 je vybavený 12bitovým A/D převodníkem. Co to znamená v praxi? Vstupní napětí z povoleného rozsahu (0-3,3V), které se objeví na pinu 33, vyjádří celočíselnou hodnotou z rozsahu 212, tedy 0 až 4 095.

Pokračování článku patří k prémiovému obsahu pro předplatitele

Chci Premium a Živě.cz bez reklam Od 41 Kč měsíčně
Váš názor Další článek: Tesla otevírá beta verzi autonomního řízení všem. Ovšem jen v Severní Americe a za peníze

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , , ,