Detector de spargere geam

by donpedro

Partea a II-a

Algoritm
Figura 4 prezintă schema logică a SW de nivel înalt al algoritmului. Cele trei piese importante ale SW sunt detectarea activităţii, detectarea bufniturii şi spargerea sticlei în ordinea de apariţie în timp. Aproximativ la fiecare 2,5 de milisecunde, microfonul şi AO1 sunt pornite pentru a se verifica orice activitate de sunet. În absenţa oricărei activităţi semnificative, acestea sunt oprite şi MCU-ul intră în stare de consum energetic redus. Dacă există activitate semni­ficativă, atunci SW conti­nuă la de­tec­ţia bufniturii, unde ADC-ul este pornit, urmat de o procesare de semnal pentru a verifica componenta de bufnitură. Numai dacă este pre­zentă o bufnitură algoritmul va trece la detectarea propriu-zisă a spargerii sticlei. Altfel, algoritmul va reveni la activitatea de detecţie. Dacă detecţia spargerii sticlei are succes, va fi activat un LED/buzzer on-board pentru a indica acest eveniment. GBD ca reveni apoi la detectarea activităţii.

Figura 4: Schema logică a programului de detecţie

Detectarea activităţii compară doar valorile de intrare ADC la praguri prestabilite pe fiecare parte a punctului de zero pentru a distinge semnalul real de zgomot. Cum a fost men­ţionat mai devreme, o bufnitură este o componentă de frecvenţă joasă la aproximativ 300Hz. Din moment ce componenta de buf­nitură apare nu­mai la impactul iniţial, nu­mai primele câteva eşanti­oane din semnalul re­cep­ţionat sunt filtrate. Acest lucru este realizat utilizând un LPF (Low-Pass Filter) digital cu o frecvenţă de tăiere de 350Hz. Mostrele filtrate sunt acumulate, mediate şi comparate cu un prag de energie pre-definit.
Dacă energia depă­şeşte pragul, ar trebui iniţiate o com­ponentă de bufni­tură şi spargere de sticlă.
Pentru ca LPF-ul digital să fie în mai mic şi încă eficient, frecvenţa de eşantionare de la mostrele iniţiale este mult mai scăzută şi menţinută la numai 4kHz. Totuşi, un AAF cu frec­vent de tăiere la 2kHz este utilizat în schimbul AAF-ului cu tăiere de 20kHz pentru această secţiune de algoritm. Algoritmul de detecţie al spar­gerii sticlei este mai complex decât detec­tarea bufniturii şi este divizat în două părţi, SA1 (Signal Analysis 1) şi SA2 (Signal Analysis 2). SA1 este pri­ma etapă a procesării şi apare la fie­care eşantionare, odată ce a fost de­tec­tată o bufnitură. În timpul SA1, este ales AAF-ul de 20kHz şi frecven­ţa de eşan­tionare ADC este ridicată până la 40kHz. Operaţiile pentru SA1 includ medierea semnalului, detecţia inter­secţiei cu zero şi detecţia vârfurilor.

Figura 5: Reprezentarea semnalului pentru SA1

Acest lucru se realizează pentru o perioadă de aproximativ 60ms ceea ce însumează aproximativ 2400 de eşantioane. Odată ce SA1 este complet, SA2 este iniţializat pentru a termina analiza întregului semnal. Figura 5 prezintă o reprezentare de semnal în timpul SA1 şi Figura 6 diagrama software curentă.
Eşantioanele care sosesc notate prin p(n) sunt iniţial trecute printr-un simplu filtru de mutare a mediei pentru a reduce zgomotul la ieşire s(n).
Integrarea semnalului p(n) este reali­zată utilizând numai eşantioane pozitive pentru a calcula energia semnalului notată ca integ_total pentru a fi utilizată în SA2. Contoare de vârf şi trecere de zero sunt realizate pentru s(n). pentru a extrage componentele HF ale semnalului care soseşte este utilizat un HPF (High-Pass Filter) cu o frecvenţă de tăiere de şi fiecare eşantion al p(n) este supus la această filtrare. Simultan, numai eşantioanele pozitive ale ieşirii filtrate sunt acumulate în rezultatul notat ca integ_HPF_ total, care va fi utilizat în SA2. Întregul SA1 este realizat la fiecare eşantionare şi trebuie completat înainte de sosirea următorului eşantion p(n+1) pentru operarea în timp real, presupunând că numărul total de cicluri disponibile CPU nu sunt decât frecvenţa CPU/40 kHz. Filtrarea este în general o operaţie consumatoare de timp.
Din motive de eficienţă sunt utilizate LWDF-uri (Lattice Wave Digital Filters) [1] şi algoritmul lui Horner [2] atât LPF-ul pentru detecţia bufniturii şi HPF în SA1. Odată ce 60ms de date au fost procesate prin SA1, algoritmul trece la SA2, a doua etapă a procesării. SA2 nu necesită o operaţiune în timp real, rezumatul operaţiunilor fiind prezentat în Figura 7. În plus, dacă într-adevăr s-a produs spargerea sticlei va fi confirmat la sfârşitul SA2.

Figura 6: Schema logică pentru SA1

Figura 7: Schema logică pentru SA2

Coeficientul de energie totală pentru semnal la semnalul filtrat trece-sus este calculat şi verificat faţă de unui prag. Rezultatele indică un coeficient între 1,75 şi 14 pentru numărul de sunete de spargere sticlă. Similar, numărul de vârfuri este verificat dacă este între 160 şi 320 şi numărul de treceri prin zero este între 95 şi 300. Ar fi fost posibilă o spargere de sticlă validă dacă fiecare dintre cele trei condiţii de mai sus sunt satisfăcute. Chiar dacă una dintre condiţii dă greş, detectorul se spargere sticlă este reiniţializat şi se revine la detecţia activităţii. Aceste praguri şi domenii vor necesita ajustaje minore în func­ţie de acustica unei camere, locaţia GBD, zgomotul din mediu etc.

Implementarea pe MCU
Platforma MCU MSP430™ de la Texas Instruments (TI) are o varietate de dispozitive în portofoliul său. MSP 430F2274 este un MCU de 16-biţi din familia 2×× de platforme MSP430 de consum energetic scăzut [3]. MCU-ul este capabil să lucreze la frecvenţe de până la 16MHz. Acesta are de asemenea un oscilator intern VLO (Very-low-power Low-frequency Oscillator) care operează la 12kHz la tempe­ra­tura camerei. Acesta are două temporizatoare pe 16-biţi şi un convertor analogic-digital pe 10-biţi (ADC10) care suportă rate de conversie de până la 200kHz. ADC10 poate fi configurat să lucreze cu amplificatoare operaţionale on-chip (AO0 şi AO1) pentru condiţionarea semnalului a­na­logic. Consumul de curent de 0,7μA din timpul modului de aştep­tare (LPM3) şi 250μA în timpul modului activ îl fac o alegere excelentă pentru aplicaţii alimentate pe baterii.

Figura 8: Diagrama bloc a nivelului sistemului unui GBD utilizând MSP430

Figura 9: Profilul de consum de curent pentru detecţia activităţii

Figura 8 prezintă diagrama bloc a nivelului sistemului utilizând MSP 430F2274 cu perifericele sale integrate. Din moment ce microfonul are o bandă de trecere de la 20Hz la 20kHz şi MSP430F2274 nu are decât două AO integrate, se poate permite înlăturarea AAF-ului de 20kHz de la implemen­tare. Deşi acest fapt este o încălcare clară a teoriei de eşanti­onare, s-a observat că rezultatele nu variază cu absenţa acestuia. Totuşi, dacă alt AO este disponibil, AAF-ul de 20kHz poate încă să fie parte din schemă.
MSP430F2274 are două amplificatoare operaţionale configurabile software notate AO0 şi AO1. AO0 este utilizat ca amplificator inversat cu câştig de 7 pentru a asigura amplificarea la ieşirea microfonului. AO1 este confi­gurat ca un filtru trece-jos cu câştig unitar, care este un tip Butterworth de ordin doi realizat prin utilizarea arhitecturii Sallen-Key [5]. Filtrul are o frecvenţă de tăiere de 3-dB la 2kHz. Ieşirile AO1 şi AO2 sunt conectate intern cu canalele A1 şi A13 respectiv.

Consumul de curent
Consumul de curent al întregului GBD depinde de modurile de putere scăzută alese în timpul operaţiilor acestuia şi de comutarea selectivă ON/OF a perifericelor.
Profilul de consum de curent pentru implementarea pe MSP430 pentru trei moduri de operare este prezen­tată în Figurile 9, 10 şi 11.
Figura 9 prezintă profilul de consum de curent în timpul detecţiei acti­vităţii. Dispozitivul se activează la fiecare 2,5ms pentru a verifica activi­tatea şi intră în mod activ (AM1) pentru 20μs, timp în care ceasul CPU este setat la 12MHz. Când nu este detectată nici o activitate la microfonul extern, dispozitivul revine la modul de aşteptare sau modul de putere scăzută 3 (LPM3). Activări periodice de la modul de aşteptare sunt realizate prin utilizarea unui temporizator on-chip cu ceasul său setat la ~12kHz la temperatura camerei.
Figura 10 prezintă profilul consumului de curent când există activitate sem­ni­ficativă detectată la microfonul extern şi algoritmul începe detecţia impactului. Dispozitivul intră în AM1 pentru 18μs şi este configurat să opereze în mod de detecţie bufnitură. CPU-ul func­ţionează acum la 8MHz, iar dispozitivul intră în modul activ (AM2).
În acest mod, ADC este configurat să eşantioneze la o rată de 4kHz. Analiza de semnal apare la fiecare eşantion pentru o perioadă de 32ms, adică 128 eşantioane. Dacă nu este detectată o bufnitură validă, dispozitivul reintră în AM1 pentru 12μs, timp în care dispo­zi­tivul este reiniţializat şi configurat să se întoarcă la detecţia activită­ţilor.

Figura 10: Profilul de consum de curent pentru detecţia impactului

Figura 11: Profilul consumului de curent pentru detecţia spargerii sticlei

Figura 11 prezintă profilul consumului de curent când este confirmat un impact valid şi dispozitivul urmează mo­dul de detecţie al spargerii sticlei. În timpul detecţiei spargerii sticlei, ceasul CPU este configurat iar la 12MHz, şi dispozitivul intră în mod activ (AM3) cu rata de eşantionare ADC de 40kHz.
Analiza de semnal apare pe fiecare eşantion pentru o perioadă de 60ms, ceea ce înseamnă 2400 de eşan­tioane. Dacă nu este detectată o spargere de sticlă validă, dispozitivul revine la AM1 pentru 4,6ms, timp în care dispozitivul este reiniţializat şi configurat să repornească modul de detecţie al activităţii cu activări periodice de 2,5ms. La apariţia unei spargeri de sticlă valide, dispozitivul activează un LED/buzzer on-board pentru trei secunde şi revine la detecţia de activitate.
Tabelul 1 furnizează o listă a tuturor perifericelor şi ceasurilor [4] care sunt ON în timpul diferitelor moduri de operare. Aceste periferice sunt contribuitori semnificativi la consumul total de curent în timpul fiecărei etape.
Placa GBD utilizând MSP430 este alimentată de două baterii AAA furnizând 800mAh. Deşi nu este uşor de prezis durata de viaţă a bateriei unei astfel de aplicaţii, presupunând că nu s-a detectat nici o spargere de sticlă, consumul total de curentul este în jur de 80μA pentru a oferi o viaţă a bateriei de aproximativ 416 de zile. Durata de viaţă a bateriei poate creşte în continuare dacă perioada de activare a detecţiei de activitate ar creşte faţă de 2,5 milisecunde; totuşi, posibilitatea ratării unui eveniment sonor creşte.

Tabelul 1: Consideraţii de curent şi timp semnificative

În acest articol a fost analizată o soluţie de detector de spargere sticlă simplu şi robust, dar şi ilustrarea componentelor unui semnal de spargere sticlă şi a metodelor pentru ca acestea să fie extrase.
Cerinţele HW şi SW precum şi implementările acestora pe un MCU au fost prezentate şi au fost furnizate perspective noi în consumul de curent pentru această implementare în timp real.

Kripasagar Venkat – Biografie
Venkat este inginer de sisteme de aplicaţii al Texas Instruments, Dallas, TX. El a lucrat cu grupul de microcontrolere MSP430 încă din 2006 şi a publicat câteva rapoarte tehnice discutând filtrarea digitală opti­mizată, contorizarea energiei şi alte documente specifice pentru apli­caţii. Venkat deţine un masterat la University of Texas la Dallas cu specializare în procesarea semnalelor şi comu­nicaţii. Preocu­pă­rile lui cu­rente includ contorizarea energiei, filtre digitale etc.

Contact:
Irina Marin / ECAS ELECTRO
Tel.: 021 204 8100
Fax: 021 204 8130
www.ecas.ro

Gabriela Petrache / TI / Suport Clienţi România
eecsc@ti.com

S-ar putea să vă placă și