Kazalo:
- 1. korak: Uporabljene komponente
- Korak: Naslednik ovojnic
- 3. korak: PWM za analogni števec
- 4. korak: Umerjanje mikrofona
- 5. korak: aplikacija za Android
- 6. korak: Povzetek
Video: Analogni merilnik VU, ki omogoča Bluetooth: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
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
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
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:
Merilnik vrtljajev (merilnik vrtljajev): 5 korakov
DIY tahometer (RPM Meter): V tem projektu vam bom pokazal, kako deluje IR senzor razdalje 3 € in kako ga lahko uporabimo za izdelavo ustreznega DIH tahometra, ki deluje pravilno. Začnimo
556 Čas omogoča vnos ure v dva desetletna števca, ki poganjata 20 LED: 6 korakov
556 čas omogoča vnos ure v 2 desetletna števca, ki poganjajo 20 LED: ta navodila bodo pokazala, kako bo časovnik 556 zagotovil vhodne ure za števce 2 desetletja. Desetletni števci bodo poganjali 20 LED. LED bodo utripale v zaporedju 10
Daljinski upravljalnik, ki omogoča Alexa (z uporabo WEMO D1 Mini): 3 koraki
Daljinski upravljalnik z omogočeno Alexa (z uporabo WEMO D1 Mini): To je posodobljena različica prejšnje objave: https: //www.instructables.com/id/Voice-Activated-R … V prejšnji različici sem uporabil Geetech glasovni modul za upravljanje običajnega daljinskega upravljalnika za odpiranje garažnih vrat. V tem navodilu sem zamenjal vo
Velikanski analogni merilnik CO2: 6 korakov (s slikami)
Velikanski analogni merilnik CO2: Trenutno ozračje nad goro na Havajih vsebuje približno 400 ppm ogljikovega dioksida. Ta številka je izjemno pomembna za vse, ki živijo na površini planetov. Zdaj smo obkroženi bodisi z zanikanjem te skrbi bodisi s tistimi, ki si krčijo
Analogni merilnik temperature: 4 koraki
Analogni merilnik temperature: To analogno temperaturo sem ustvaril, da cenim tiste dni, ko smo analogne pripomočke videli le v dneh, ko so živeli naši stari starši. Danes vidimo samo digitalno … zato sem ustvaril analogno temperaturo, ki je zelo dobra za začetnike in