Sadržaj:

Analogni VU mjerač s omogućenim Bluetooth -om: 6 koraka
Analogni VU mjerač s omogućenim Bluetooth -om: 6 koraka

Video: Analogni VU mjerač s omogućenim Bluetooth -om: 6 koraka

Video: Analogni VU mjerač s omogućenim Bluetooth -om: 6 koraka
Video: ARYLIC B50 (Recensione e Misurazioni Acustiche) 2024, Novembar
Anonim
Analogni VU mjerač sa omogućenim Bluetooth -om
Analogni VU mjerač sa omogućenim Bluetooth -om

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

Korak 1: Korištene komponente

  • STM32F103RB razvojna ploča
  • HC-05 zs040 bluetooth modul
  • Analogna ploča VU mjerača (veza)
  • Električni mikrofon
  • LM324N quad op-amp
  • 2 tranzistora TIP120
  • 3 1N4148 diode
  • Razni kondenzatori i otpornici

Iako ovaj krug možete isključiti sa 5V šine ploče, koristio sam i vanjsko napajanje od 5V.

Korak 2: Sljedbenik koverti

Envelope Follower
Envelope Follower
Envelope Follower
Envelope Follower

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

Sirovi signal iz mikrofona prvo se propušta kroz pojačalo s pojačanjem od 150.

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

Posljednji dio je oduzimanje ofsetnog napona od 1,65 V s izlaza slijednika 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 koverti implementiran je iz ovog sjajnog odgovora StackExchange.

Korak 3: PWM za analogni mjerač

Da 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 pređe s 0 na 100.

Detaljno ću prikazati proces prikaza tač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 završio, napisao sam tada jednostavan kod za korištenje ADC -a i provjerio da li se vrijednost čitanja zaista mijenja u skladu s glasnoćom u prostoriji.

Da bih "preveo" ovu vrijednost u stvarno očitanje dB, koristio 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 dB nivoa (ili barem dovoljno blizu očitavanja mog telefona).

Vidimo da ovo slijedi logaritamsku skalu mikrofona.

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

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 sistema je da je maksimalna dužina riječi poslana preko Bluetootha 8 bita, a ADC vrijednost predstavljena kao 12 bita. Da bih prevladao ovaj problem, podijelio sam jednu vrijednost ADC -a u 2 odvojene vrijednosti od 6 bita (MSB i LSB) s preostala 2 bita koja se koriste za identifikaciju vrste poruke (MSB, LSB, CHK).

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

Nakon provjere integriteta vrijednosti, možemo primijeniti istu funkciju kako bismo dobili nivo dB i iscrtali ga na grafikonu uživo.

Korak 6: Sažetak

Iako dio ovog projekta s mikrokontrolerom radi prilično dobro prikazujući jačinu zvuka u prostoriji, 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 smatrate da je ovo na bilo koji način korisno.

Preporučuje se: