Isi kandungan:

Meteran Analog VU Bluetooth Diaktifkan: 6 Langkah
Meteran Analog VU Bluetooth Diaktifkan: 6 Langkah

Video: Meteran Analog VU Bluetooth Diaktifkan: 6 Langkah

Video: Meteran Analog VU Bluetooth Diaktifkan: 6 Langkah
Video: Detik detik hp meledak 2024, November
Anonim
Meteran Analog VU Bluetooth Diaktifkan
Meteran Analog VU Bluetooth Diaktifkan

Ini adalah projek saya untuk salah satu kelas universiti saya yang dipanggil SMP. Semasa kami menggunakan papan pengembangan STM32F103RB, saya membuat projek saya berdasarkan ini, bermula dari meter VU sederhana. Saya kemudian menambahkan beberapa ciri tambahan seperti sokongan Bluetooth untuk menyiarkan nilai dari ADC ke aplikasi Android untuk membuat carta dB ringkas.

Langkah 1: Komponen yang Digunakan

  • Papan pengembangan STM32F103RB
  • Modul bluetooth HC-05 zs040
  • Panel meter VU analog (pautan)
  • Mikrofon electret
  • LM324N quad op-amp
  • 2 transistor TIP120
  • 3 1N4148 dioda
  • Pelbagai kapasitor dan perintang

Walaupun anda boleh mengeluarkan litar ini dari rel 5V papan, saya juga menggunakan bekalan kuasa 5V luaran.

Langkah 2: Pengikut Sampul

Pengikut sampul surat
Pengikut sampul surat
Pengikut sampul surat
Pengikut sampul surat

Bahagian utama reka bentuk ini adalah pengikut sampul yang mengambil isyarat dari mikrofon electret dan mengeluarkan voltan yang setara dengan amplitud isyarat mikrofon.

Isyarat mentah dari mikrofon pertama kali dilewatkan melalui penguat dengan keuntungan 150.

Sinyal kemudian dihantar melalui pengikut sampul sebenar yang hanya mengeluarkan bahagian isyarat positif.

Bahagian terakhir adalah mengurangkan voltan offset 1.65V dari output pengikut sampul untuk memberikan isyarat 0 V tanpa suara, 1,65 V untuk suara sederhana dan 3,3 V untuk bunyi kuat yang harus serasi dengan yang terpasang ADC dewan.

Pengikut sampul surat ini dilaksanakan dari jawapan StackExchange yang hebat ini.

Langkah 3: PWM untuk Analog Meter

Untuk mendapatkan jarum tolok, saya telah mengkonfigurasi pemasa TIM4 papan mikrokontroler dengan frekuensi sekitar 500 Hz.

Dengan berturut-turut mencuba kitaran tugas yang berbeza, saya telah menyelesaikan beberapa nilai yang cukup untuk membuat jarum meningkat dari 0 hingga 100.

Saya akan memperincikan proses memaparkan nilai tepat pada langkah seterusnya dengan menerapkan beberapa matematik.

Langkah 4: Penentukuran Mikrofon

Penentukuran Mikrofon
Penentukuran Mikrofon
Penentukuran Mikrofon
Penentukuran Mikrofon

Setelah pengikut sampul selesai, saya kemudian menulis beberapa kod mudah untuk menggunakan ADC dan mengesahkan bahawa nilai baca sememangnya berubah sesuai dengan ketegaran di dalam bilik.

Untuk "menterjemahkan" nilai ini menjadi bacaan dB sebenar, saya telah menggunakan penjana nada dalam talian dengan frekuensi 550 Hz dan Android saya untuk memberikan bacaan rujukan.

Saya telah memplot nilai-nilai tersebut dan menggunakan MatLAB's Curve Fit Tool untuk mendapatkan fungsi yang memetakan bacaan ADC dengan anggaran sebenar tahap dB (atau sekurang-kurangnya cukup dekat dengan bacaan telefon saya).

Kita dapat melihat bahawa ini mengikuti skala logaritma mikrofon.

Saya juga melakukan perkara yang sama untuk memetakan kedudukan jarum ke nilai PWM. Saya mengumpulkan nilai-nilai tersebut dengan menambahkan nilai PWM sebanyak 10 berturut-turut sehingga keperluan membaca pada skala.

Menggabungkan 2 fungsi tersebut, saya mendapat cara mudah untuk memaparkan bacaan dari ADC hingga nilai sebenar pada penunjuk tolok.

Langkah 5: Aplikasi Android

Aplikasi ini menggunakan perpustakaan keren ini untuk berkomunikasi melalui siri Bluetooth untuk bertukar maklumat bait.

Peringatan utama sistem ini ialah panjang perkataan maksimum yang dihantar melalui Bluetooth adalah 8 bit dan nilai ADC dinyatakan sebagai 12 bit. Untuk mengatasi masalah ini, saya membahagikan satu nilai ADC menjadi 2 nilai 6 bit yang terpisah (MSB dan LSB) dengan baki 2 bit yang digunakan untuk mengenal pasti jenis mesej (MSB, LSB, CHK).

Oleh itu, untuk satu nilai ADC yang ingin disiarkan, kami membahagikan nilai sebenar menjadi 2 mesej. Untuk memeriksa integriti mesej tersebut, saya menghantar mesej ketiga dengan XOR dari 2 mesej pertama.

Setelah nilai integriti diperiksa, kita dapat menerapkan fungsi yang sama untuk mendapatkan tahap dB dan memplotnya ke carta langsung kita.

Langkah 6: Ringkasan

Walaupun bahagian mikro pengawal projek ini berfungsi dengan cukup baik untuk menunjukkan ketegaran di dalam bilik, saya menghadapi beberapa masalah semasa menghantar data melalui Bluetooth kerana kehilangan paket.

Kod sumber untuk projek ini boleh didapati di sini:

  • Aplikasi pendamping Android - repo
  • Kod mikrokontroler - repo

Jangan ragu untuk menyumbang sekiranya anda merasakan ini berguna dengan cara apa pun.

Disyorkan: