Sisällysluettelo:

Bluetooth -yhteensopiva analoginen VU -mittari: 6 vaihetta
Bluetooth -yhteensopiva analoginen VU -mittari: 6 vaihetta

Video: Bluetooth -yhteensopiva analoginen VU -mittari: 6 vaihetta

Video: Bluetooth -yhteensopiva analoginen VU -mittari: 6 vaihetta
Video: Arduino with HC-05 Bluetooth Module as Master and Slave 2024, Marraskuu
Anonim
Bluetooth -yhteensopiva analoginen VU -mittari
Bluetooth -yhteensopiva analoginen VU -mittari

Tämä oli projektini yhdelle yliopisto -luokalleni nimeltä SMP. Kun käytimme STM32F103RB -kehityskorttia, perustin projektini tähän ja aloitin yksinkertaisesta VU -mittarista. Lisäsin sitten joitakin lisäominaisuuksia, kuten Bluetooth -tuen, arvojen lähettämiseksi ADC: stä Android -sovellukseen yksinkertaisen dB -kaavion luomiseksi.

Vaihe 1: Käytetyt komponentit

  • STM32F103RB -kehityskortti
  • HC-05 zs040 bluetooth-moduuli
  • Analoginen ajoneuvoyksikön mittari (linkki)
  • Elektreettimikrofoni
  • LM324N quad op-vahvistin
  • 2 TIP120 -transistoria
  • 3 1N4148 diodia
  • Erilaisia kondensaattoreita ja vastuksia

Vaikka voit ajaa tämän piirin pois levyn 5V -kiskosta, käytin myös ulkoista 5V -virtalähdettä.

Vaihe 2: Kirjekuoren seuraaja

Kirjekuoren seuraaja
Kirjekuoren seuraaja
Kirjekuoren seuraaja
Kirjekuoren seuraaja

Tämän suunnittelun pääosa on kirjekuoren seuraaja, joka ottaa signaalin elektreettimikrofonista ja antaa jännitteen, joka on verrannollinen mikrofonin signaalin amplitudiin.

Raaka signaali mikrofonista välitetään ensin vahvistimen kautta, jonka vahvistus on 150.

Signaali välitetään sitten varsinaisen kirjekuoren seuraajan läpi, jonka pitäisi lähettää vain positiiviset signaaliosat.

Viimeinen osa on 1,65 V: n offset-jännitteen vähentäminen kirjekuoren seuraajan ulostulosta, jotta saadaan 0 V: n signaali ilman ääntä, 1,65 V keskikokoiselle äänelle ja 3,3 V kovalle äänelle, jonka pitäisi olla yhteensopiva sisäänrakennetun Hallituksen ADC.

Tämä kirjekuoren seuraaja on toteutettu tästä upeasta StackExchange -vastauksesta.

Vaihe 3: PWM analogiselle mittarille

Saadaksesi mittarin neulan käyntiin, olen määrittänyt mikrokortin TIM4 -ajastimen, jonka taajuus on noin 500 Hz.

Kokeilemalla peräkkäin erilaisia käyttöjaksoja olen ratkaissut joitakin arvoja, jotka riittivät saamaan neulan siirtymään nollasta sataan.

Tarkennan tarkan arvon näyttämisprosessia seuraavassa vaiheessa soveltamalla jonkin verran matematiikkaa.

Vaihe 4: Mikrofonin kalibrointi

Mikrofonin kalibrointi
Mikrofonin kalibrointi
Mikrofonin kalibrointi
Mikrofonin kalibrointi

Kun kirjekuoren seuraaja oli tehty, kirjoitin sitten yksinkertaisen koodin ADC: n käyttämiseksi ja varmistin, että lukuarvo todellakin muuttuu huoneen äänenvoimakkuuden mukaan.

Jotta voisin "kääntää" tämän arvon todelliseksi dB -lukemaksi, olen käyttänyt online -äänigeneraattoria, jonka taajuus on 550 Hz, ja Android -laitteeni vertailulukeman tarjoamiseksi.

Olen piirtänyt nämä arvot ja käyttänyt MatLABin Curve Fit -työkalua saadakseen toiminnon, joka yhdistää ADC -lukemat todellisiin likimääräisiin dB -tasoihin (tai ainakin riittävän lähellä puhelimen lukemia).

Voimme nähdä, että tämä seuraa mikrofonin logaritmista asteikkoa.

Tein myös saman asian kartoittaaksesi neulan asennon PWM -arvoihin. Keräsin nämä arvot lisäämällä PWM -arvoa 10 peräkkäin, kunnes tarve osui lukemaan asteikollaan.

Yhdistämällä nämä kaksi toimintoa sain helpon tavan näyttää lukema ADC: stä todelliseen arvoon mittarin ilmaisimessa.

Vaihe 5: Android -sovellus

Sovellus käyttää tätä viileää kirjastoa kommunikoidakseen Bluetooth -sarjan kautta tavutietojen vaihtamiseen.

Tämän järjestelmän tärkein varoitus on, että Bluetoothin kautta lähetettävän sanan enimmäispituus on 8 bittiä ja ADC -arvo 12 bittiä. Tämän ongelman ratkaisemiseksi jaoin yhden ADC -arvon kahteen erilliseen 6 -bittiseen arvoon (MSB ja LSB) ja loput 2 bittiä käytetään viestityypin tunnistamiseen (MSB, LSB, CHK).

Siksi yhdelle ADC -arvolle, jonka haluamme lähettää, jaamme todellisen arvon kahteen viestiin. Näiden viestien eheyden tarkistamiseksi lähetin kolmannen viestin, jossa oli kahden ensimmäisen viestin XOR.

Kun arvon eheys on tarkistettu, voimme käyttää samaa funktiota saadaksemme dB -tason ja piirtämään sen reaaliaikaiseen kaavioon.

Vaihe 6: Yhteenveto

Vaikka tämän projektin mikro-ohjainosa toimii melko hyvin näyttäen äänenvoimakkuuden huoneen sisällä, kohtasin joitain ongelmia lähettäessäsi tietoja Bluetoothin kautta pakettien katoamisen vuoksi.

Projektin lähdekoodi löytyy täältä:

  • Android -kumppanisovellus - repo
  • Mikro -ohjaimen koodi - repo

Voit vapaasti osallistua, jos pidät tätä hyödyllisenä millään tavalla.

Suositeltava: