INHOUDSOPGAWE:

Bluetooth -geaktiveerde analoog VU -meter: 6 stappe
Bluetooth -geaktiveerde analoog VU -meter: 6 stappe

Video: Bluetooth -geaktiveerde analoog VU -meter: 6 stappe

Video: Bluetooth -geaktiveerde analoog VU -meter: 6 stappe
Video: Connecting Bluetooth transmitter to your TV 2024, November
Anonim
Bluetooth -geaktiveerde analoog VU -meter
Bluetooth -geaktiveerde analoog VU -meter

Dit was my projek vir een van my universiteit klasse genoem SMP. Terwyl ons die ontwikkelingsbord STM32F103RB gebruik het, het ek my projek hierop gebaseer op 'n eenvoudige VU -meter. Daarna het ek 'n paar ekstra funksies soos Bluetooth -ondersteuning bygevoeg om waardes van die ADC na 'n Android -program uit te saai om 'n eenvoudige dB -grafiek te skep.

Stap 1: Gebruikte komponente

  • STM32F103RB ontwikkelingsbord
  • HC-05 zs040 bluetooth module
  • Analoog VU meter paneel (skakel)
  • Elektret mikrofoon
  • LM324N quad op-amp
  • 2 TIP120 transistors
  • 3 1N4148 diodes
  • Verskeie kapasitors en weerstande

Alhoewel u hierdie kring van die 5V -spoor van die bord af kan dryf, het ek ook 'n eksterne 5V -kragtoevoer gebruik.

Stap 2: Envelope Volgeling

Koevertvolgers
Koevertvolgers
Koevertvolgers
Koevertvolgers

Die belangrikste deel van hierdie ontwerp is die koevertvolger wat die sein van die elektretmikrofoon neem en 'n spanning lewer wat eweredig is aan die mikrofoon se seinamplitude.

Die rou sein van die mikrofoon word eers deur 'n versterker met 'n versterking van 150 deurgegee.

Die sein word dan deurgegee deur die werklike koevertvolger wat slegs die positiewe seindele moet lewer.

Die laaste deel is om die offsetspanning van 1,65V af te trek van die uitset van die koevertvolgers om 'n sein van 0 V vir geen geluid te gee, 1,65 V vir medium klank en 3,3 V vir harde klank wat verenigbaar moet wees met die ingeboude ADC van die raad.

Hierdie koevertvolger word geïmplementeer vanuit hierdie wonderlike StackExchange -antwoord.

Stap 3: PWM vir die analoog meter

Om die naald van die meter aan die gang te kry, het ek die TIM4 -timer van die mikrokontrollerbord ingestel met 'n frekwensie van ongeveer 500 Hz.

Deur agtereenvolgens verskillende dienssiklusse uit te probeer, het ek 'n paar waardes gekry wat genoeg was om die naald van 0 na 100 te laat beweeg.

Ek sal die proses van die vertoon van 'n presiese waarde in die volgende stap in detail beskryf deur wiskunde toe te pas.

Stap 4: mikrofoon Kalibrasie

Mikrofoon kalibrasie
Mikrofoon kalibrasie
Mikrofoon kalibrasie
Mikrofoon kalibrasie

Nadat ek die koevertvolger gedoen het, skryf ek 'n paar eenvoudige kode om die ADC te gebruik en verifieer dat die leeswaarde inderdaad dienooreenkomstig verander na die hardheid in die kamer.

Om hierdie waarde in 'n werklike dB -lesing te "vertaal", het ek 'n aanlyn toongenerator met 'n frekwensie van 550 Hz en my Android gebruik om 'n verwysingslesing te gee.

Ek het die waardes geskets en MatLAB se Curve Fit Tool gebruik om 'n funksie te kry wat ADC -lesings in kaart bring tot die werklike benaderings van die dB -vlakke (of ten minste naby genoeg aan my telefoon se lesings).

Ons kan sien dat dit volg op die logaritmiese skaal van die mikrofoon.

Ek het ook dieselfde gedoen om die naaldposisie aan PWM -waardes te koppel. Ek het hierdie waardes versamel deur die PWM -waarde agtereenvolgens met 10 te verhoog totdat die behoefte op sy skaal gelees het.

Deur hierdie twee funksies te kombineer, het ek 'n maklike manier om die meting van ADC na die werklike waarde op die meteraanwyser te vertoon.

Stap 5: Android -app

Die app gebruik hierdie oulike biblioteek om via Bluetooth -reeks te kommunikeer om byte -inligting uit te ruil.

Die belangrikste voorbehoud van hierdie stelsel is dat die maksimum woordlengte wat via Bluetooth gestuur word, 8 bis is en die ADC -waarde as 12 bisse voorgestel word. Om hierdie probleem te oorkom, verdeel ek een ADC -waarde in 2 afsonderlike 6 biswaardes (MSB en LSB) met die oorblywende 2 bisse wat gebruik word om die tipe boodskap (MSB, LSB, CHK) te identifiseer.

Daarom, vir 'n enkele ADC -waarde wat ons wil uitsaai, verdeel ons die werklike waarde in 2 boodskappe. Om die integriteit van die boodskappe te kontroleer, stuur ek 'n derde boodskap met die XOR van die eerste 2 boodskappe.

Nadat die waarde -integriteit nagegaan is, kan ons dieselfde funksie toepas om die dB -vlak te kry en dit op ons lewendige grafiek in te teken.

Stap 6: Opsomming

Alhoewel ek, die mikrobeheerder-deel van hierdie projek, baie goed werk in die vertoning van 'n kamer, het ek probleme ondervind tydens die stuur van data oor Bluetooth as gevolg van pakkieverlies.

Die bron-kode vir die projek kan hier gevind word:

  • Android metgesel app - repo
  • Mikrobeheerder-kode - repo

Voel vry om by te dra as jy vind dit nuttig in enige manier.

Aanbeveel: