İçindekiler:

Bluetooth Etkin Analog VU Metre: 6 Adım
Bluetooth Etkin Analog VU Metre: 6 Adım

Video: Bluetooth Etkin Analog VU Metre: 6 Adım

Video: Bluetooth Etkin Analog VU Metre: 6 Adım
Video: BU VİDEOYU İZLEMEDEN ELEKTRİK - ELEKTRONİK CİHAZLARINIZI TAMİR ETTİRMEYİN... 2024, Temmuz
Anonim
Bluetooth Etkin Analog VU Metre
Bluetooth Etkin Analog VU Metre

Bu, SMP adlı üniversite derslerimden biri için benim projemdi. STM32F103RB geliştirme kartını kullandığımız için, basit bir VU metreden başlayarak projemi buna dayandırdım. Daha sonra basit bir dB grafiği oluşturmak için ADC'den bir Android uygulamasına değerleri yayınlamak için Bluetooth desteği gibi bazı ekstra özellikler ekledim.

Adım 1: Kullanılan Bileşenler

  • STM32F103RB geliştirme kartı
  • HC-05 zs040 bluetooth modülü
  • Analog VU ölçüm paneli (bağlantı)
  • elektret mikrofon
  • LM324N dörtlü op-amp
  • 2 TIP120 transistör
  • 3 1N4148 diyot
  • Çeşitli kapasitörler ve dirençler

Bu devreyi kartın 5V rayından çıkarabilmenize rağmen, harici bir 5V güç kaynağı da kullandım.

2. Adım: Zarf Takipçisi

Zarf Takipçisi
Zarf Takipçisi
Zarf Takipçisi
Zarf Takipçisi

Bu tasarımın ana parçası, elektret mikrofondan sinyal alan ve mikrofonun sinyal genliği ile orantılı bir voltaj veren zarf takipçisidir.

Mikrofondan gelen ham sinyal önce 150 kazançlı bir amplifikatörden geçirilir.

Sinyal daha sonra sadece pozitif sinyal parçalarını vermesi gereken gerçek zarf takipçisinden geçirilir.

Son kısım, dahili ile uyumlu olması gereken ses yokken 0 V, orta ses için 1,65 V ve yüksek ses için 3,3 V sinyal sağlamak için zarf takipçisinin çıkışından 1,65V ofset voltajını çıkarmaktır. Kurulun ADC'si.

Bu zarf takipçisi, bu harika StackExchange yanıtından uygulanır.

Adım 3: Analog Metre için PWM

Göstergenin iğnesini çalıştırmak için mikrodenetleyici kartının TIM4 zamanlayıcısını yaklaşık 500 Hz frekansta yapılandırdım.

Art arda farklı görev döngülerini deneyerek, iğneyi 0'dan 100'e çıkarmak için yeterli olan bazı değerlere karar verdim.

Bir sonraki adımda biraz matematik uygulayarak kesin bir değer görüntüleme sürecini detaylandıracağım.

Adım 4: Mikrofon Kalibrasyonu

Mikrofon Kalibrasyonu
Mikrofon Kalibrasyonu
Mikrofon Kalibrasyonu
Mikrofon Kalibrasyonu

Zarf takipçisini yaptıktan sonra, ADC'yi kullanmak için bazı basit kodlar yazdım ve okuma değerinin gerçekten de odanın içindeki ses yüksekliğine göre değiştiğini doğruladım.

Bu değeri gerçek bir dB okumasına "çevirmek" için, referans okuma sağlamak için 550 Hz frekanslı bir çevrimiçi ton üreteci ve Android'imi kullandım.

Bu değerleri çizdim ve ADC okumalarını dB seviyelerinin gerçek yaklaşık değerlerine (veya en azından telefonumun okumalarına yeterince yakın) eşleyen bir işlev elde etmek için MatLAB'ın Eğri Sığdırma Aracını kullandım.

Bunun mikrofonun logaritmik ölçeğini takip ettiğini görebiliriz.

Aynı şeyi iğne konumunu PWM değerlerine eşlemek için de yaptım. Bu değerleri, PWM değerini, ölçeğinde okuma ihtiyacı olana kadar art arda 10 artırarak topladım.

Bu 2 işlevi birleştirerek, ADC'den gelen değeri gösterge göstergesindeki gerçek bir değere göstermenin kolay bir yolunu buldum.

Adım 5: Android Uygulaması

Uygulama, bayt bilgisi alışverişi yapmak için Bluetooth seri aracılığıyla iletişim kurmak için bu harika kitaplığı kullanıyor.

Bu sistemin ana uyarısı, Bluetooth üzerinden gönderilen maksimum kelime uzunluğunun 8 bit olması ve ADC değerinin 12 bit olarak gösterilmesidir. Bu sorunun üstesinden gelmek için, bir ADC değerini 2 ayrı 6 bitlik değere (MSB ve LSB) ayırdım ve kalan 2 biti mesaj tipini (MSB, LSB, CHK) tanımlamak için kullandım.

Bu nedenle yayınlamak istediğimiz tek bir ADC değeri için gerçek değeri 2 mesaja bölüyoruz. Bu mesajların bütünlüğünü kontrol etmek için, ilk 2 mesajın XOR'u ile üçüncü bir mesaj gönderdim.

Değer bütünlüğü kontrol edildikten sonra, dB seviyesini almak için aynı işlevi uygulayabilir ve canlı grafiğimize çizebiliriz.

6. Adım: Özet

Bu projenin mikro denetleyici kısmı, bir odadaki ses yüksekliğini görüntülemek için oldukça iyi çalışıyor olsa da, Bluetooth üzerinden veri gönderirken paket kaybı nedeniyle bazı sorunlarla karşılaştım.

Bu projenin kaynak kodu burada bulunabilir:

  • Android arkadaşı uygulaması - repo
  • Mikrodenetleyici kodu - repo

Bunu herhangi bir şekilde faydalı bulursanız katkıda bulunmaktan çekinmeyin.

Önerilen: