Tartalomjegyzék:

Bluetooth engedélyezett analóg VU mérő: 6 lépés
Bluetooth engedélyezett analóg VU mérő: 6 lépés

Videó: Bluetooth engedélyezett analóg VU mérő: 6 lépés

Videó: Bluetooth engedélyezett analóg VU mérő: 6 lépés
Videó: Privacy, Security, Society - Computer Science for Business Leaders 2016 2024, November
Anonim
Bluetooth engedélyezett analóg VU mérő
Bluetooth engedélyezett analóg VU mérő

Ez volt a projektem az egyik egyetemi osztályomhoz, az SMP -hez. Mivel az STM32F103RB fejlesztőlapot használtuk, erre építettem a projektemet, egy egyszerű VU mérőből kiindulva. Ezután hozzáadtam néhány extra funkciót, például a Bluetooth támogatást, hogy az értékeket az ADC -ből egy Android -alkalmazásba sugározza, hogy egyszerű dB -diagramot hozzon létre.

1. lépés: Használt összetevők

  • STM32F103RB fejlesztőlap
  • HC-05 zs040 bluetooth modul
  • Analóg JE mérőpanel (link)
  • Elektret mikrofon
  • LM324N négy opciós erősítő
  • 2 db TIP120 tranzisztor
  • 3 1N4148 dióda
  • Különféle kondenzátorok és ellenállások

Bár ezt az áramkört le lehet vezetni a tábla 5 V -os sínjéről, külső 5 V -os tápegységet is használtam.

2. lépés: Borítékkövető

Borítékkövető
Borítékkövető
Borítékkövető
Borítékkövető

Ennek a kialakításnak a fő eleme a borítékkövető, amely veszi az elektret mikrofonból érkező jelet, és a mikrofon jel amplitúdójával arányos feszültséget ad ki.

A mikrofonból származó nyers jelet először 150 erősítésű erősítőn keresztül továbbítják.

A jel ezután áthalad a tényleges borítékkövetőn, amely csak a pozitív jelrészeket adja ki.

Az utolsó rész az 1.65V eltolási feszültség levonása a borítékkövető kimenetéből, hogy 0 V-os jelet biztosítson, ha nincs hang, 1,65 V-ot közepes hangon és 3,3 V-ot a hangos hangon, amely kompatibilis a beépített A testület ADC.

Ez a borítékkövető ebből a nagyszerű StackExchange válaszból valósult meg.

3. lépés: PWM az analóg mérőhöz

Annak érdekében, hogy a mérőeszköz tűje működőképes legyen, konfiguráltam a mikrokontroller TIM4 időzítőjét 500 Hz körüli frekvenciával.

A különböző munkaciklusok egymás utáni kipróbálásával néhány olyan értékkel számoltam, amelyek elegendőek voltak ahhoz, hogy a tű 0 -ról 100 -ra álljon.

A következő lépésben részletes matematikai módszerekkel részletezem a pontos érték megjelenítésének folyamatát.

4. lépés: A mikrofon kalibrálása

Mikrofon kalibrálása
Mikrofon kalibrálása
Mikrofon kalibrálása
Mikrofon kalibrálása

Miután elvégeztem a borítékkövetőt, írtam néhány egyszerű kódot az ADC használatához, és ellenőriztem, hogy az olvasási érték valóban változik -e a helyiség hangosságának megfelelően.

Annak érdekében, hogy ezt az értéket tényleges dB leolvasássá lehessen fordítani, egy online hanggenerátort használtam, amelynek frekvenciája 550 Hz, és az Androidomat, hogy referenciaértéket biztosítsak.

Ábrázoltam ezeket az értékeket, és a MatLAB Curve Fit Tool eszközt használva egy olyan funkciót kaptam, amely leképezi az ADC -leolvasásokat a dB -szintek tényleges közelítéseihez (vagy legalábbis elég közel a telefonom leolvasásához).

Láthatjuk, hogy ez a mikrofon logaritmikus skáláját követi.

Ugyanezt tettem a tű pozíciójának PWM értékekhez való hozzárendelésével is. Ezeket az értékeket úgy gyűjtöttem össze, hogy a PWM értékét egymás után 10 -gyel növeltem, amíg a szükséglet el nem érte a skáláját.

A két funkció kombinálásával egyszerű módot kaptam arra, hogy megjelenítsem az ADC -ről a tényleges értéket a mérő kijelzőjén.

5. lépés: Android -alkalmazás

Az alkalmazás ezt a hűvös könyvtárat használja a Bluetooth soros kommunikációhoz, hogy bájtadatokat cseréljen.

Ennek a rendszernek a fő figyelmeztetése az, hogy a Bluetooth -on keresztül küldött szó maximális hossza 8 bit, az ADC értéke pedig 12 bit. A probléma kiküszöbölése érdekében egy ADC értéket 2 külön 6 bites értékre (MSB és LSB) osztottam fel, a fennmaradó 2 bittel pedig az üzenet típusát (MSB, LSB, CHK) használtam.

Ezért egyetlen sugározni kívánt ADC -érték esetén a tényleges értéket 2 üzenetre osztjuk. Ezen üzenetek integritásának ellenőrzésére küldtem egy harmadik üzenetet az első 2 üzenet XOR -jával.

Az érték integritásának ellenőrzése után ugyanezt a funkciót alkalmazva megkaphatjuk a dB szintet, és lerajzolhatjuk az élő diagramunkra.

6. lépés: Összefoglalás

Míg én a projekt mikrovezérlő részével nagyon jól működök, és megjelenítem a hangosságot a helyiségben, néhány problémával találkoztam, amikor csomagvesztés miatt adatokat küldtem Bluetooth-on keresztül.

A projekt forráskódja itt található:

  • Android társalkalmazás - repo
  • Mikrokontroller kód - repo

Nyugodtan járuljon hozzá, ha ezt bármilyen módon hasznosnak találja.

Ajánlott: