Sadržaj:

Analogni VU mjerač s omogućenim Bluetoothom: 6 koraka
Analogni VU mjerač s omogućenim Bluetoothom: 6 koraka

Video: Analogni VU mjerač s omogućenim Bluetoothom: 6 koraka

Video: Analogni VU mjerač s omogućenim Bluetoothom: 6 koraka
Video: Kospet TANK T2 Smartwatch Review: The Complete Guide! 2024, Studeni
Anonim
Analogni VU mjerač s omogućenim Bluetoothom
Analogni VU mjerač s omogućenim Bluetoothom

Ovo je bio moj projekt za jedan od mojih sveučilišnih razreda pod nazivom SMP. Dok smo koristili razvojnu ploču STM32F103RB, svoj sam projekt zasnovao na ovome, počevši od jednostavnog VU mjerača. Zatim sam dodao neke dodatne značajke poput Bluetooth podrške za emitiranje vrijednosti iz ADC -a u Android aplikaciju za stvaranje jednostavnog dB grafikona.

Korak 1: Korištene komponente

  • Razvojna ploča STM32F103RB
  • Bluetooth-modul HC-05 zs040
  • Analogna ploča VU mjerača (veza)
  • Električni mikrofon
  • LM324N četvero op-pojačalo
  • 2 tranzistora TIP120
  • 3 diode 1N4148
  • Razni kondenzatori i otpornici

Iako ovaj krug možete isključiti s 5V šine ploče, također sam koristio vanjsko napajanje od 5V.

Korak 2: Sljedbenik omotnice

Sljedbenik omotnica
Sljedbenik omotnica
Sljedbenik omotnica
Sljedbenik omotnica

Glavni dio ovog dizajna je sljedbenik ovojnice koji uzima signal iz elektronskog mikrofona i emitira napon proporcionalan amplitudi signala mikrofona.

Sirovi signal iz mikrofona najprije se prolazi kroz pojačalo s pojačanjem od 150.

Signal se zatim propušta kroz stvarni sljedbenik ovojnice koji bi trebao emitirati samo pozitivne dijelove signala.

Posljednji dio je oduzimanje pomaka napona od 1,65 V s izlaza sljedbenika omotnice kako bi se dobio signal od 0 V za bez zvuka, 1,65 V za srednji zvuk i 3,3 V za glasan zvuk koji bi trebao biti kompatibilan s ugrađenim ADC ploče.

Ovaj sljedbenik omotnice implementiran je iz ovog sjajnog odgovora StackExchange.

Korak 3: PWM za analogni mjerač

Kako bih pokrenuo iglu mjerača, konfigurirao sam TIM4 mjerač vremena na ploči mikrokontrolera s frekvencijom od oko 500 Hz.

Uzastopnim isprobavanjem različitih ciklusa rada zadovoljio sam neke vrijednosti koje su bile dovoljne da igla prijeđe od 0 do 100.

Detaljno ću opisati proces prikazivanja točne vrijednosti u sljedećem koraku primjenom neke matematike.

Korak 4: Kalibracija mikrofona

Kalibracija mikrofona
Kalibracija mikrofona
Kalibracija mikrofona
Kalibracija mikrofona

Nakon što je sljedbenik omotnice učinio, napisao sam jednostavan kod za korištenje ADC -a i provjerio da li se vrijednost čitanja doista mijenja u skladu s glasnoćom u prostoriji.

Kako bih "preveo" ovu vrijednost u stvarno očitanje dB, upotrijebio sam internetski generator tonova s frekvencijom od 550 Hz i svoj Android za pružanje referentnog očitanja.

Iscrtao sam te vrijednosti i upotrijebio MatLAB -ov alat Curve Fit Tool da dobijem funkciju koja preslikava očitanja ADC -a na stvarne aproksimacije razina dB (ili barem dovoljno blizu očitanja moga telefona).

Vidimo da ovo slijedi logaritamsku ljestvicu mikrofona.

Isto sam učinio i za mapiranje položaja igle na vrijednosti PWM -a. Prikupio sam te vrijednosti povećanjem vrijednosti PWM -a za 10 uzastopno sve dok potreba nije naišla na čitanje na ljestvici.

Kombinirajući te dvije funkcije, dobio sam jednostavan način za prikaz očitanja iz ADC -a do stvarne vrijednosti na pokazivaču mjerača.

Korak 5: Android aplikacija

Aplikacija koristi ovu super biblioteku za komunikaciju putem Bluetooth serije za razmjenu podataka o bajtovima.

Glavno upozorenje ovog sustava je da je maksimalna dužina riječi poslana preko Bluetootha 8 bita, a ADC vrijednost predstavljena kao 12 bita. Kako bih prevladao ovaj problem, podijelio sam jednu vrijednost ADC -a u 2 zasebne 6 -bitne vrijednosti (MSB i LSB), a preostala 2 bita koristi se za identifikaciju vrste poruke (MSB, LSB, CHK).

Stoga smo za jednu vrijednost ADC -a koju želimo emitirati podijelili stvarnu vrijednost u 2 poruke. Kako bih provjerio integritet tih poruka, poslao sam treću poruku s XOR prve dvije poruke.

Nakon provjere integriteta vrijednosti, možemo primijeniti istu funkciju kako bismo dobili razinu dB i iscrtali je na našem grafikonu uživo.

Korak 6: Sažetak

Iako dio ovog projekta s mikrokontrolerom radi prilično dobro i prikazuje glasnoću unutar prostorije, naišao sam na neke probleme prilikom slanja podataka putem Bluetootha zbog gubitka paketa.

Izvorni kod za ovaj projekt možete pronaći ovdje:

  • Prateća aplikacija za Android - repo
  • Kod mikrokontrolera - repo

Slobodno pridonesite ako vam se to na bilo koji način učini korisnim.

Preporučeni: