Mündəricat:

Bluetooth Aktiv Analog VU Ölçən: 6 Addım
Bluetooth Aktiv Analog VU Ölçən: 6 Addım

Video: Bluetooth Aktiv Analog VU Ölçən: 6 Addım

Video: Bluetooth Aktiv Analog VU Ölçən: 6 Addım
Video: Часы G-Shock до 250 долларов-15 лучших часов Casio G до 250 доллар... 2024, Noyabr
Anonim
Bluetooth Aktiv Analog VU Ölçən
Bluetooth Aktiv Analog VU Ölçən

Bu, SMP adlı universitet dərslərimdən biri üçün layihəm idi. STM32F103RB inkişaf etdirmə lövhəsini istifadə edərkən, sadə VU sayğacından başlayaraq layihəmi buna əsasladım. Daha sonra sadə bir dB cədvəli yaratmaq üçün ADC -dən bir Android tətbiqinə dəyərləri yayımlamaq üçün Bluetooth dəstəyi kimi bəzi əlavə xüsusiyyətlər əlavə etdim.

Addım 1: İstifadə olunan komponentlər

  • STM32F103RB inkişaf lövhəsi
  • HC-05 zs040 bluetooth modulu
  • Analog VU sayğac paneli (keçid)
  • Elektret mikrofonu
  • LM324N dördlü op-amp
  • 2 TIP120 tranzistoru
  • 3 1N4148 diod
  • Müxtəlif kondansatörlər və rezistorlar

Bu dövrəni lövhənin 5V rayından çıxara bilsəniz də, xarici 5V enerji təchizatı istifadə etdim.

Addım 2: Zərf İzləyicisi

Zərf İzləyicisi
Zərf İzləyicisi
Zərf İzləyicisi
Zərf İzləyicisi

Bu dizaynın əsas hissəsi, elektret mikrofonundan siqnal alan və mikrofonun siqnal amplitüdünə mütənasib bir gərginlik verən zərf izləyicisidir.

Mikrofondan gələn xam siqnal əvvəlcə 150 qazancı olan bir gücləndiricidən keçir.

Siqnal daha sonra yalnız müsbət siqnal hissələrini çıxarmalı olan əsl zərf izləyicisi vasitəsi ilə ötürülür.

Son hissə, zərf izləyicisinin çıxışından 1.65V ofset gərginliyini çıxarıb səssiz 0 V, orta səs üçün 1.65 V və yüksək səs üçün 3.3 V siqnal təmin etmək üçün quraşdırılmış ilə uyğun olmalıdır. İdarə heyətinin ADC.

Bu zərf izləyicisi bu böyük StackExchange cavabından həyata keçirilir.

Addım 3: Analog Metr üçün PWM

Göstəricinin iynəsini işə salmaq üçün, təxminən 500 Hz tezlikdə mikrokontroller lövhəsinin TIM4 taymerini konfiqurasiya etdim.

Fərqli vəzifə dövrlərini ardıcıl olaraq sınayaraq, iynənin 0 -dan 100 -ə keçməsini təmin etmək üçün kifayət qədər dəyərlər əldə etdim.

Növbəti mərhələdə bir riyazi tətbiq edərək dəqiq bir dəyərin göstərilməsi prosesini ətraflı izah edəcəyəm.

Addım 4: Mikrofonun Kalibrlənməsi

Mikrofonun Kalibrlənməsi
Mikrofonun Kalibrlənməsi
Mikrofonun Kalibrlənməsi
Mikrofonun Kalibrlənməsi

Zərf izləyicisini tamamladıqdan sonra ADC -dən istifadə etmək üçün bir neçə sadə kod yazdım və oxu dəyərinin həqiqətən otağın içindəki səs -küyə uyğun olaraq dəyişdiyini təsdiq etdim.

Bu dəyəri həqiqi bir dB oxunuşuna "çevirmək" üçün, 550 Hz tezliyində bir onlayn ton generatoru və bir Android oxu təmin etmək üçün Android -dən istifadə etdim.

Mən bu dəyərləri qurdum və MatLAB -ın Curve Fit Alətindən istifadə edərək ADC oxunuşlarını dB səviyyələrinin faktiki yaxınlaşmalarına uyğunlaşdıran bir funksiya əldə etdim (və ya heç olmasa telefonumun oxunuşlarına kifayət qədər yaxın).

Bunun mikrofonun logaritmik ölçüsünü izlədiyini görə bilərik.

İynə mövqeyini PWM dəyərləri ilə müqayisə etmək üçün eyni şeyi etdim. PWM dəyərini ardıcıl olaraq 10 artıraraq bu dəyərləri ölçüsündə oxumağa ehtiyac duyana qədər topladım.

Bu 2 funksiyanı birləşdirərək ADC -dən oxunuşu indikatorun faktiki dəyərinə keçirmək üçün asan bir yol tapdım.

Addım 5: Android Tətbiqi

Tətbiq, bayt məlumat mübadiləsi üçün Bluetooth seriyası ilə ünsiyyət qurmaq üçün bu sərin kitabxanadan istifadə edir.

Bu sistemin əsas xəbərdarlığı Bluetooth üzərindən göndərilən maksimum söz uzunluğunun 8 bit olması və ADC dəyərinin 12 bit olaraq göstərilməsidir. Bu problemi aradan qaldırmaq üçün bir ADC dəyərini 2 ayrı 6 bit dəyərinə (MSB və LSB) ayırdım, qalan 2 biti mesaj növünü (MSB, LSB, CHK) müəyyən etmək üçün istifadə etdim.

Buna görə yayımlamaq istədiyimiz bir ADC dəyəri üçün əsl dəyəri 2 mesaja bölürük. Bu mesajların bütövlüyünü yoxlamaq üçün ilk 2 mesajın XOR ilə üçüncü bir mesaj göndərdim.

Dəyər bütövlüyü yoxlanıldıqdan sonra, eyni funksiyanı tətbiq edərək dB səviyyəsini əldə edə və canlı qrafikimizə qoya bilərik.

Addım 6: Xülasə

Bu layihənin mikro nəzarətçi hissəsi, bir otaq içərisində yüksəkliyi göstərmək üçün olduqca yaxşı işləsəm də, paket itkisi səbəbindən Bluetooth üzərindən məlumat göndərərkən bəzi problemlərlə qarşılaşdım.

Bu layihənin mənbə kodunu burada tapa bilərsiniz:

  • Android yoldaş proqramı - repo
  • Mikro nəzarətçi kodu - repo

Bunu hər hansı bir şəkildə faydalı hesab edirsinizsə, töhfə verməkdən çekinmeyin.

Tövsiyə: