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.
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.
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í.
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).
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ě