Obsah:

Analógový merač VU s povolenou technológiou Bluetooth: 6 krokov
Analógový merač VU s povolenou technológiou Bluetooth: 6 krokov

Video: Analógový merač VU s povolenou technológiou Bluetooth: 6 krokov

Video: Analógový merač VU s povolenou technológiou Bluetooth: 6 krokov
Video: Arduino GSM Module Проект по измерению температуры птицы с FireBeetle и Micro Solar Power Manager 2024, November
Anonim
Analógový merač VU s povolenou technológiou Bluetooth
Analógový merač VU s povolenou technológiou Bluetooth

Bol to môj projekt pre jednu z mojich univerzitných tried s názvom SMP. Keď sme použili vývojovú dosku STM32F103RB, na základe toho som postavil svoj projekt, pričom som vychádzal z jednoduchého merača VU. Potom som pridal niekoľko ďalších funkcií, ako je podpora Bluetooth, na vysielanie hodnôt z ADC do aplikácie pre Android, aby som vytvoril jednoduchý dB diagram.

Krok 1: Použité komponenty

  • Vývojová doska STM32F103RB
  • Modul bluetooth HC-05 zs040
  • Panel analógového merača VU (odkaz)
  • Elektretový mikrofón
  • Štvornásobný zosilňovač LM324N
  • 2 tranzistory TIP120
  • 3 diódy 1N4148
  • Rôzne kondenzátory a odpory

Aj keď môžete tento obvod vyhnať z 5V lišty dosky, použil som aj externý 5V zdroj.

Krok 2: Nasledovník obálky

Nasledovník obálky
Nasledovník obálky
Nasledovník obálky
Nasledovník obálky

Hlavnou súčasťou tohto návrhu je sledovač obálok, ktorý odoberá signál z elektretového mikrofónu a vydáva napätie úmerné amplitúde signálu mikrofónu.

Surový signál z mikrofónu je najskôr vedený cez zosilňovač so ziskom 150.

Signál je potom vedený cez skutočný sledovač obálky, ktorý by mal vydávať iba časti pozitívneho signálu.

Posledná časť je odpočítaním ofsetového napätia 1,65 V od výstupu sledovača obálky na poskytnutie signálu 0 V pre žiadny zvuk, 1,65 V pre stredný zvuk a 3,3 V pre hlasný zvuk, ktorý by mal byť kompatibilný so vstavaným ADC dosky.

Tento sledovateľ obálok je implementovaný z tejto skvelej odpovede StackExchange.

Krok 3: PWM pre analógový merač

Aby som rozbehol ručičku meradla, nakonfiguroval som časovač TIM4 dosky mikrokontroléra s frekvenciou okolo 500 Hz.

Postupným skúšaním rôznych pracovných cyklov som sa vyrovnal s niektorými hodnotami, ktoré stačili na to, aby sa ručička pohybovala od 0 do 100.

V nasledujúcom kroku podrobne popíšem postup zobrazenia presnej hodnoty pomocou matematiky.

Krok 4: Kalibrácia mikrofónu

Kalibrácia mikrofónu
Kalibrácia mikrofónu
Kalibrácia mikrofónu
Kalibrácia mikrofónu

Po dokončení sledovača obálok som potom napísal jednoduchý kód na použitie ADC a overil som, že hodnota čítania sa skutočne mení podľa hlasitosti v miestnosti.

Aby som "preložil" túto hodnotu na skutočnú hodnotu dB, použil som online generátor tónov s frekvenciou 550 Hz a svoj Android na poskytnutie referenčného čítania.

Tieto hodnoty som vykreslil a použil nástroj MatLAB Curve Fit Tool na získanie funkcie, ktorá mapuje namerané hodnoty ADC na skutočné aproximácie úrovní dB (alebo aspoň dostatočne blízko hodnotám môjho telefónu).

Vidíme, že to nasleduje po logaritmickej stupnici mikrofónu.

To isté som urobil aj pre mapovanie polohy ihly na hodnoty PWM. Tieto hodnoty som zhromaždil postupným zvyšovaním hodnoty PWM o 10, kým sa nedosiahlo potrebné čítanie na jeho stupnici.

Kombináciou týchto dvoch funkcií som získal ľahký spôsob, ako zobraziť hodnoty z ADC na skutočnú hodnotu na indikátore meradla.

Krok 5: Aplikácia pre Android

Aplikácia používa túto skvelú knižnicu na komunikáciu prostredníctvom sériového rozhrania Bluetooth na výmenu informácií o bajtoch.

Hlavnou výhradou tohto systému je, že maximálna dĺžka slova odoslaného cez Bluetooth je 8 bitov a hodnota ADC je vyjadrená ako 12 bitov. Aby som tento problém vyriešil, rozdelil som jednu hodnotu ADC na 2 samostatné 6 bitové hodnoty (MSB a LSB) so zvyšnými 2 bitmi použitými na identifikáciu typu správy (MSB, LSB, CHK).

Preto pre jednu hodnotu ADC, ktorú chceme vysielať, rozdelíme skutočnú hodnotu do 2 správ. Aby som skontroloval integritu týchto správ, poslal som tretie správy s XOR prvých 2 správ.

Potom, čo je skontrolovaná integrita hodnôt, môžeme použiť rovnakú funkciu na získanie úrovne dB a vykresliť ju do nášho živého grafu.

Krok 6: Zhrnutie

Aj keď časť mikrokontroléra tohto projektu funguje celkom dobre na zobrazenie hlasitosti v miestnosti, pri odosielaní údajov cez Bluetooth som narazil na problémy kvôli strate paketov.

Zdrojový kód tohto projektu nájdete tu:

  • Sprievodná aplikácia pre Android - repo
  • Kód mikrokontroléra - repo

Ak vám to bude nejakým spôsobom užitočné, môžete prispieť.

Odporúča: