Jste zde

Navrhujeme odolný detektor tříštění skla – 1.část

01.png

Praktické postřehy k samotnému vývoji jak HW tak i SW části přinášíme v překladu původního dokumentu s názvem A single chip low-cost microcontroller based solution of a robust Glass Breakage Detector.

Úvod

Prvořadým účelem detektoru rozbití skla (Glass Breakage Detector, v dalším textu také jako zkratka GBD) je zaznamenání příslušné události, vzniklé doma nebo třeba v zaměstnání v souvislosti s narušením oken či dveří. Pod tímto označením můžeme mít rovněž na mysli monitorovací zařízení, zvyšující zabezpečení domácnosti nebo celého podniku pro případ neoprávněného vstupu. V rámci zabezpečovacího zařízení přitom tyto detektory pracují samostatně nebo ve spojení s dalšími výstražnými systémy, instalovanými jako prevence proti krádeži. GBD v podstatě zachycuje jakoukoli akustickou nebo chcete - li zvukovou aktivitu, analyzuje ji a hlásí, zda přitom došlo k rozbití skla. Kvůli tomuto provoznímu režimu bude správná činnost detektoru velmi záviset na vlastnostech konkrétní události, takže před vývojáři vystupuje na povrch nejeden obtížný úkol. A aby toho nebylo málo, detektor musí vyloučit všechny zvuky, které se skutečným rozbitím skla nemají nic společného. Události, které případně spustí falešný poplach, pak představují selhání výstrahy. V tomto článku se proto zaměříme na účinný a také odolný návrh detektoru rozbití skla, založený na levném mikrokontroléru (MCU).

Pod označením MCU rozumíme low – endové procesory, nacházející své uplatnění v nejrůznějších aplikacích, jakými jsou např. digitální hodiny, vynikající svou jednoduchostí nebo také měřicí systémy, složité a chytré zároveň. Svou oblibu si MCU získaly především díky své nízké ceně, malé spotřebě a jednoduchému použití ve srovnání s většinou zbývajících typů digitálních procesorů. V jednoduchých aplikacích dosahujeme nízké ceny a také malé vlastní spotřeby docela dobře, máme totiž omezený soubor požadavků. Budeme – li však následovat trend v podobě nasazování MCU i do složitých systémů, budeme také muset čelit problémům, které s udržením nízkého rozpočtu a malé spotřeby nevyhnutelně souvisí. Od vývojářů se dnes prostě očekávají největší výkony za nejnižší možnou cenu. Při dosahování takového stavu však musíme čelit omezením architektur MCU, jako například menší vestavěné paměti, omezenému souboru periférií, nižší provozní rychlosti, menšímu počtu pinů apod. Abychom takové MCU mohli nasadit i do poměrně náročných aplikací typu detektorů rozbití skla, musíme optimalizovat a zužitkovat každou jejich část, byť by byla sebemenší.

Vývojové předpoklady

Odolný algoritmus pro GBD by měl umět poměrně snadno rozlišit mezi platným rozbitím skla a zbývajícími falešnými událostmi. Všechny algoritmy, používané v souvislosti s detektory rozbití skla, zachycují akustické události, analyzují jejich časovou a také frekvenční skladbu a činí rozhodnutí. Zvuk, vydávaný během tříštění skla, se přitom odvíjí od typu skla, jeho tloušťky, akustického prostředí, vzdálenosti, předmětu, kterým dochází k nárazu atd. Všechny algoritmy přitom budou ve své podstatě obdobné, jen se mohou nepatrně měnit v závislosti na konkrétních podmínkách. Bude tedy obtížné najít jediný algoritmus, který by vhodně pracoval za všech podmínek. Během konečné instalace v domácnosti nebo firmách proto ještě zpravidla dochází k jemnému doladění použitého postupu.

Platný signál rozbitého skla můžeme analyzovat v časové nebo také frekvenční oblasti. Typické průběhy v závislosti na čase nebo kmitočtu vidíme na obr. 1 a obr. 2. Takový zvuk vhodně spadá do audio oblasti od 20 Hz do 20 kHz. Průběh v časové oblasti odpovídá skutečnému zvuku, který slyšíme, přičemž kmitočtová oblast znázorňuje kompletní frekvenční zastoupení, nacházející se v daném signálu. Takovým způsobem získáváme cenné vstupní informace pro návrh účinného algoritmu, detekujícího roztříštění. Průběh, vykreslený v časové oblasti, vykazuje velkou hustotu, tj. spoustu aktivity během krátkého časového úseku. Souvisí to ostatně se skutečností, že v signálu nacházíme spoustu vysokofrekvenčních složek. Rovněž to znamená, že počet průchodů nulou, včetně souvisejících špiček takového průběhu, bude velký. Ikdyž se jedná o užitečnou a dobrou informaci, přesto se zdá, jako by charakteristiky chtěly napodobovat bílý šum. Je tedy nyní na vývojářích, aby se s tím vyrovnali a definovali jasné rozlišení.

Obr. 1: Rozbití skla a průběh signálu v časové oblasti

Obr. 2: Rozbití skla, zachycené ve frekvenční oblasti

Podíváme – li se na frekvenční odezvu, uvidíme podobný problém: U jednotlivých složek signálu, odpovídajícího roztříštění skla, se zdá, jakoby se s docela vyrovnanou energií rozprostřely po celém spektru, což typicky odpovídá bílému šumu. Zároveň však také vidíme pěknou špičku v nízkofrekvenční oblasti okolo 200 – 300 Hz, která nám poskytne tolik žádaný rozdíl. Tuto špičku reprezentuje kmitočtová složka signálu, způsobená počátečním nárazem do skla, ještě před jeho roztříštěním. Úder tedy vystupuje jako nízkofrekvenční signál mezi všemi vysokofrekvenčními zvuky rozbíjejícího se skla, které budou následovat. Takový náraz, nebo také „bouchnutí“ lze tedy chápat jako zvuk, provázející úder nástroje do skla. Tuto informaci sice neumíme v časové oblasti jednoduše rozeznat, ale víme, že zmíněná složka bude předcházet všem následujícím zvukům v souvislosti se samotným tříštěním. Na tomto místě se v případě signálu, provázejícího rozbití skla, potvrdilo několik věcí:

  • Obsahuje spoustu vysokofrekvenčních složek a proto také pozorujeme mnoho průchodů přes nulu včetně souvisejících špiček.
  • Obsahuje nízkofrekvenční složku v oblasti okolo 200 – 300 Hz v souvislosti s úderem nástroje do skla; vyskytuje se na začátku celé destrukce.

Systémové prvky

Na obr. 3 vidíme typický blokový diagram systému, určeného k detekci tříštění skla.

Obr. 3: Blokový diagram systému a související signálové trasy, využívané k detekci tříštění skla

Vidíme zde klíčové bloky, určené k vykonávání charakteristických činností. GBD má být neustále aktivní, přičemž by měl být schopen zpracovat jakýkoli akustický podnět v reálném čase. Některé z funkčních bloků detektoru však můžeme vypnout nebo je nechat přejít do nízkopříkonového režimu, nebudou – li zrovna používány. S takovou odlišností se ještě setkáme v následující části. Akustické podněty zde snímáme mikrofonem. Zesilovací stupeň, následovaný antialiasingovým filtrem (AAF) se zase stará o potřebné zesílení signálových úrovní včetně filtrace nežádoucích vysokofrekvenčních složek. Samotný filtr AAF je přitom navržen tak, aby potlačoval veškeré kmitočty nad slyšitelnou oblastí 20 kHz a zároveň zabránil porušení Nyquistova kritéria během digitalizace analogového signálu. Bloky, vymezené čárkovaně, již mohou být docela dobře součástí procesoru. Jako procesor zde přitom může vystupovat ASIC, MCU nebo také DSP (Digital Signal Processor). Analogově / číslicový převodník (ADC) převádí analogové průběhy na číslicové vzorky, určené ke zpracování v digitální oblasti. Vzorkovací kmitočet Fs přitom volíme s ohledem na frekvence, zastoupené ve vstupujícím signálu. Vzhledem k tomu, že byl použit AAF s 20 kHz, musíme automaticky volit vzorkovací rychlost větší nebo rovnu 40 kHz. Pouze tak totiž zachováme obsah původního signálu včetně jeho integrity. Blok, určený pro analýzu, zahrnuje veškeré postupy při zpracování signálu, nezbytné pro detekci, resp. zamítnutí zkoumané události (roztříštění skla). Pokud je vše hotovo, může rozhodovací blok aktivovat výstražnou indikaci typu LED nebo sirény a upozornit tak na poškození skla. V následujících částech se na jednotlivé bloky i jejich celkové požadavky zaměříme podrobněji.

Hardwarové požadavky

V této části zmíníme hardwarové (HW) požadavky, spojované s GBD i jejich odolností. Dříve, než vůbec začneme, musíme zmínit jeden důležitý předpoklad: Detektory rozbití skla jsou napájeny z baterií. Abychom tedy prodloužili jejich životnost, měl by celý návrh klást důraz na minimální vlastní spotřebu. Volba každého hardwarového prvku na této desce se tedy bude odvíjet od jeho schopnosti přispět svým dílem k nízkopříkonovému řešení.

Jak můžeme vidět na obr. 3, analogový signálový řetězec bude začínat mikrofonem a končit A/D převodníkem. Samotná volba je přitom nesmírně důležitá, protože svými parametry přispívá k úspěšnosti kteréhokoli algoritmu pro GBD. Mikrofon by měl být schopen zachytit a zachovat klíčové složky akustického signálu, kterými jsou výchozí úder spolu s dalšími vysokofrekvenčními kmity. Budeme s nimi totiž intenzivně pracovat v následném algoritmu. Abychom však dokázali podchytit jakýkoli zvukový podnět, musíme ponechat mikrofon prakticky neustále aktivní. S tím také souvisí požadavek na jeho nižší energetickou náročnost, která by se měla odrážet na proudové spotřebě celého systému. Na pozici zesilovacího stupně zpravidla osazujeme operační zesilovač (OA), pracující v invertujícím nebo také neinvertujícím režimu se zesílením, větším než jedna. Úkolem operačního zesilovače bude zajistit dostatečné zesílení signálu, snímaného mikrofonem, jehož velikost se zde pohybuje v řádu desítek milivoltů. I operační zesilovač, stejně jako připojený mikrofon, bude neustále aktivní a měl by proto vykazovat malou vlastní spotřebu. Polovodičovou strukturu operačního zesilovače ještě využijeme v případě AAF, zajišťujícího nezbytnou filtraci v analogové oblasti. Zpravidla se jedná o jednoduchý filtr typu dolní propusti (Low-Pass Filter, LPF) prvního nebo druhého řádu s jednotkovým zesílením.

Největší a zároveň také nejdůležitější možnosti volby v celém návrhu skýtá prostor pro signálový procesor. Jak již bylo zmíněno výše, můžeme zde nasadit ASIC, MCU nebo také DSP. Každá alternativa má svá pro a proti, takže se budeme muset odrazit od prvků, které by mohly naše řešení zjednodušit. Většina detektorů rozbití skla bude, stejně jako v případě detektorů kouře, umístěna v domácím nebo firemním prostředí tak, aby garantovala potřebnou míru bezpečí a také zajištění. Budeme však muset zajistit bateriové napájení a to hned ze dvou důvodů:

  • Detektory mohou být umístěny kdekoli, takže nemusíme řešit problémy s přívodem napájení a
  • zajistíme plnou funkčnost i v případě výpadku elektrické sítě

Zvolený procesor musí být zcela jistě nízkopříkonový, programovatelný, jednoduše použitelný, ne příliš drahý a měl by vhodně podporovat činnost v reálném čase. Chceme – li vyhovět každému z výše zmíněných požadavků, vybereme z dostupných možností právě MCU. A co více, některá MCU mají k dispozici integrované analogové periférie, díky kterým snížíme celkové systémové náklady ještě větší měrou.

Softwarové (SW) požadavky

Analogový signál z mikrofonu je filtrován AAF s mezním kmitočtem 20 kHz. Pro digitalizaci takového průběhu proto musíme použít vzorkování, převyšující 40 kHz, které musí zvolený A/D převodník podporovat. Z titulu činnosti v reálném čase bude potřeba dokončit požadované zpracování v době mezi po sobě jdoucími, vzorkovacími okamžiky. Bude – li např. maximální frekvence CPU činit 12 MHz, máme mezi následujícími vzorky k dispozici pouhých 300 cyklů CPU, což v případě zpracování signálu může znamenat problém. Můžeme tedy vybrat procesor, podporující rychlejší taktování a zvýšit tak počet dostupných cyklů CPU. Musíme však počítat s rostoucí spotřebou a tudíž i kratší provozní dobou z jednoho bateriového zdroje. Hledáme proto kompromis mezi stupněm složitosti daného algoritmu a provozní dobou napájecích článků.

Nyní si rozebereme skutečný algoritmus, použitelný k detekci rozbití skla. Na obr. 1 a obr. 2 jsme viděli, že zvuk, provázející tříštění skla, obsahuje vedle nízkofrekvenčního nárazu také spoustu vysokofrekvenčních složek, průchodů nulou i souvisejících špiček. Bouchnutí nebo náraz se přitom vyskytoval na počátku zkoumaného akustického projevu. Musíme si však uvědomit, že takový nárazový signál bývá přítomen ve většině okolních ruchů, např. ve spojení se zavíráním dřevěných dveří nebo skříní, pádem předmětu na zem, rychlým tlesknutím rukou, bušením na dveře apod. Žádný z těchto projevů však nebude následován vysokofrekvenčními složkami, očekávanými během našeho typického tříštění skla. Podobné je to v případě ruchů, způsobených kávomlýnkem, hudbou, závodem motocyklů v televizi, sklenicí od vína, rozbíjející se po dopadu na podlahu apod. Všechny totiž mají podobné vysokofrekvenční spektrum, jen zde zase chybí výchozí náraz. Algoritmus pro GBD, který si nyní popíšeme, proto využije poznatku, že právě zmíněné dvě složky jsou na jedné či druhé straně kmitočtového spektra, přičemž se v čase vyskytují nezávisle na sobě.

Dokončení příště.

Hodnocení článku: