Kazalo:

Analogni merilnik VU, ki omogoča Bluetooth: 6 korakov
Analogni merilnik VU, ki omogoča Bluetooth: 6 korakov

Video: Analogni merilnik VU, ki omogoča Bluetooth: 6 korakov

Video: Analogni merilnik VU, ki omogoča Bluetooth: 6 korakov
Video: Сводные таблицы Excel с нуля до профи за полчаса + Дэшборды! | 1-ое Видео курса "Сводные Таблицы" 2024, November
Anonim
Analogni merilnik VU z omogočeno Bluetooth
Analogni merilnik VU z omogočeno Bluetooth

To je bil moj projekt za enega od mojih univerzitetnih razredov, imenovanega SMP. Ko smo uporabljali razvojno ploščo STM32F103RB, sem svoj projekt zasnoval na tem, začenši s preprostim merilnikom VU. Nato sem dodal nekaj dodatnih funkcij, kot je podpora Bluetooth za oddajanje vrednosti iz ADC -ja v aplikacijo za Android, da bi ustvaril preprost dB grafikon.

1. korak: Uporabljene komponente

  • Razvojna plošča STM32F103RB
  • Modul bluetooth HC-05 zs040
  • Analogna merilna plošča VU (povezava)
  • Električni mikrofon
  • Quad op-amp LM324N
  • 2 tranzistorja TIP120
  • 3 diode 1N4148
  • Različni kondenzatorji in upori

Čeprav lahko to vezje odpeljete s plošče 5V tirnice, sem uporabil tudi zunanji napajalnik 5V.

Korak: Naslednik ovojnic

Sledilnik ovojnic
Sledilnik ovojnic
Sledilnik ovojnic
Sledilnik ovojnic

Glavni del te zasnove je sledilnik ovojnic, ki sprejema signal iz elektronskega mikrofona in oddaja napetost, sorazmerno z amplitudo signala mikrofona.

Neobdelani signal iz mikrofona najprej prehaja skozi ojačevalnik z ojačitvijo 150.

Signal nato preide skozi dejanski sledilnik ovojnice, ki naj oddaja le pozitivne dele signala.

Zadnji del je odštevanje odmikalne napetosti 1,65 V od izhoda sledilnika ovojnice, da se zagotovi signal 0 V za brez zvoka, 1,65 V za srednji zvok in 3,3 V za glasen zvok, ki bi moral biti združljiv z vgrajenim ADC plošče.

Ta spremljevalec ovojnic je izveden iz tega odličnega odgovora StackExchange.

3. korak: PWM za analogni števec

Za zagon igle merilnika sem nastavil časovnik TIM4 na plošči mikrokrmilnika s frekvenco okoli 500 Hz.

Z zaporednim preizkušanjem različnih delovnih ciklov sem se strinjal z nekaterimi vrednostmi, ki so zadostovale, da se je igla premaknila od 0 do 100.

Postopek prikaza natančne vrednosti bom v naslednjem koraku podrobno opisal z uporabo matematike.

4. korak: Umerjanje mikrofona

Kalibracija mikrofona
Kalibracija mikrofona
Kalibracija mikrofona
Kalibracija mikrofona

Ko sem naredil sledilca ovojnic, sem nato napisal nekaj preproste kode za uporabo ADC -ja in preveril, ali se vrednost branja resnično spreminja glede na glasnost v prostoru.

Da bi to vrednost "prevedli" v dejansko branje dB, sem uporabil spletni generator tonov s frekvenco 550 Hz in svoj Android, da sem zagotovil referenčno odčitavanje.

Naredil sem te vrednosti in uporabil orodje MatLAB Curve Fit Tool, da dobim funkcijo, ki preslika odčitke ADC na dejanske približke ravni dB (ali vsaj dovolj blizu odčitkov mojega telefona).

Vidimo, da to sledi logaritemski lestvici mikrofona.

Enako sem storil tudi za preslikavo položaja igle na vrednosti PWM. Te vrednosti sem zbral tako, da sem vrednost PWM povečal za 10 zaporedoma, dokler ni naletelo na branje na njeni lestvici.

S kombinacijo teh dveh funkcij sem dobil enostaven način za prikaz odčitkov iz ADC -ja do dejanske vrednosti na kazalniku merilnika.

5. korak: aplikacija za Android

Aplikacija uporablja to kul knjižnico za komunikacijo prek serijske povezave Bluetooth za izmenjavo podatkov o bajtih.

Glavno opozorilo tega sistema je, da je največja dolžina besede, poslana prek Bluetootha, 8 bitov, vrednost ADC pa je predstavljena kot 12 bitov. Da bi odpravili to težavo, sem eno vrednost ADC razdelil na 2 ločeni 6 -bitni vrednosti (MSB in LSB), preostala 2 bita pa za identifikacijo vrste sporočila (MSB, LSB, CHK).

Zato za eno vrednost ADC, ki jo želimo oddajati, dejansko vrednost razdelimo na 2 sporočila. Za preverjanje celovitosti teh sporočil sem poslal tretje sporočilo z XOR prvih dveh sporočil.

Ko se preveri celovitost vrednosti, lahko uporabimo isto funkcijo, da dobimo raven dB in jo vnesemo v grafikon v živo.

6. korak: Povzetek

Medtem ko del tega projekta z mikrokrmilnikom deluje precej dobro in prikazuje glasnost v prostoru, sem pri pošiljanju podatkov prek Bluetootha naletel na nekatere težave zaradi izgube paketov.

Izvorno kodo tega projekta najdete tukaj:

  • Spremljevalna aplikacija za Android - repo
  • Koda mikrokrmilnika - repo

Če ste kakor koli koristni, lahko prispevate.

Priporočena: