İçindekiler:
- Adım 1: Kullanılan Bileşenler
- 2. Adım: Zarf Takipçisi
- Adım 3: Analog Metre için PWM
- Adım 4: Mikrofon Kalibrasyonu
- Adım 5: Android Uygulaması
- 6. Adım: Özet
Video: Bluetooth Etkin Analog VU Metre: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
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
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
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:
WiFi Etkin Matrix Lambası: 6 Adım (Resimlerle)
WiFi Özellikli Matrix Lamba: Evdeki diğer lambalarla senkronize olan ve animasyonlar gösterebilen çarpıcı lambaya kim sahip olmak istemez ki? Öyle değil mi? O yüzden özel bir RGB lamba yaptım. Lamba, ayrı ayrı adreslenebilen 256 adet LED'den oluşur ve tüm LED'ler kontrol edilebilir
Dev Analog CO2 Metre: 6 Adım (Resimlerle)
Dev Analog CO2 Ölçer: Hawaii'deki bir dağın üzerindeki mevcut atmosfer yaklaşık 400 ppm Karbon Dioksit içerir. Bu sayı, gezegen yüzeyinde yaşayan herkes için son derece önemlidir. Şimdi etrafımız ya bu endişeyi inkar edenler, ya da canlarını sıkanlarla çevrili
Bluetooth Etkin Nerf Blaster: 7 Adım
Bluetooth Etkin Nerf Blaster: Colin Furze'nin projesinden ilham aldım ve Remix Challenge için kendi yorumumu yapmaya karar verdim. Kullandığım tasarım benzer ama daha amatörce ve taretin telefonumdan kontrol edilmesini sağlayan bir Bluetooth modülüne sahip.Bu
Herhangi Bir Kulaklığı Bluetooth'a Yapın - Etkin Kulaklıklar: 4 Adım
Bluetooth'a Herhangi Bir Kulaklığı Yapın - Etkin Kulaklıklar: Son zamanlarda cep telefonumun ses jakı çalışmayı durdurdu ve bu nedenle benim gibi bir genç için oldukça büyük bir şey olan müzik dinleyemedim veya youtube izleyemedim. Bu proje, üzerinde çalışılacak eğlenceli bir projeden ziyade zorunluluktan doğdu. Öyle değil
Bluetooth Etkin Joystick Denetleyici: 9 Adım (Resimlerle)
Bluetooth Etkin Joystick Denetleyicisi: Etkileşimli bir A/V web uygulaması olan "HypnoEllipse"e baktıklarında arkadaşlarınızı şaşırtın ve ailenizi şaşırtın. Bluetooth özellikli bir joystick muhafazası oluşturun, onu web tarayıcısına bağlayın ve sırayla kendi kendine hipnoz gerçekleştirin. Bu bir