Daftar Isi:

Tuner Ukelele Menggunakan LabView dan NI USB-6008: 5 Langkah
Tuner Ukelele Menggunakan LabView dan NI USB-6008: 5 Langkah

Video: Tuner Ukelele Menggunakan LabView dan NI USB-6008: 5 Langkah

Video: Tuner Ukelele Menggunakan LabView dan NI USB-6008: 5 Langkah
Video: Сравнение протоколов TCP и UDP 2024, November
Anonim
Tuner Ukelele Menggunakan LabView dan NI USB-6008
Tuner Ukelele Menggunakan LabView dan NI USB-6008
Tuner Ukelele Menggunakan LabView dan NI USB-6008
Tuner Ukelele Menggunakan LabView dan NI USB-6008

Sebagai proyek pembelajaran berbasis masalah untuk kursus LabVIEW & Instrumentasi saya di Humber College (Teknologi Teknik Elektro), saya membuat tuner ukulele yang akan mengambil input analog (nada senar ukulele), menemukan frekuensi dasar, memutuskan nada apa yang dicoba untuk disetel, dan beri tahu pengguna jika string perlu disetel ke atas atau ke bawah. Perangkat yang saya gunakan untuk menerjemahkan input analog menjadi input digital adalah National Instruments USB-6008 DAQ (perangkat akuisisi data), dan antarmuka pengguna diimplementasikan dengan LabVIEW.

Langkah 1: Penyetelan Ukelele Standar

Penyetelan Ukelele Standar
Penyetelan Ukelele Standar
Penyetelan Ukelele Standar
Penyetelan Ukelele Standar

Langkah pertama adalah mencari tahu frekuensi dasar not musik, dan pada kisaran berapa senar ukulele biasanya disetel. Saya menggunakan dua grafik ini, dan memutuskan bahwa saya akan membuat rentang nada saya antara 262 Hz (C) dan 494Hz (Tinggi B). Apa pun yang kurang dari 252 Hz akan dianggap terlalu rendah bagi program untuk menguraikan nada apa yang coba dimainkan, dan apa pun yang lebih besar dari 500 Hz akan dianggap terlalu tinggi. Program, bagaimanapun, masih memberi tahu pengguna berapa Hz mereka jauh dari nada yang dapat diuraikan terdekat, dan jika string harus disetel ke atas (not terlalu rendah) atau ke bawah (not terlalu tinggi) untuk mencapai nada yang tersedia.

Selain itu, saya membuat rentang untuk setiap nada, bukan hanya satu frekuensi, sehingga akan lebih mudah bagi program untuk menemukan nada mana yang sedang dimainkan. Misalnya, program akan memberi tahu pengguna bahwa C sedang dimainkan jika nada memiliki frekuensi dasar antara 252 Hz (setengah ke B) dan 269Hz (setengah ke C#), tetapi untuk memutuskan apakah perlu disetel atau turun, itu masih akan membandingkan nada yang dimainkan dengan frekuensi dasar C yaitu 262Hz.

Langkah 2: Membuat Model Teoritis Digital Murni

Membuat Model Teoritis Digital Murni
Membuat Model Teoritis Digital Murni
Membuat Model Teoritis Digital Murni
Membuat Model Teoritis Digital Murni

Sebelum masuk ke sisi analog proyek, saya ingin melihat apakah saya bisa membuat program LabVIEW yang setidaknya akan melakukan pemrosesan utama sampel suara, seperti membaca sampel audio.wav, menemukan frekuensi dasar, dan membuat perbandingan yang diperlukan ke grafik frekuensi untuk menemukan apakah suara harus disetel ke atas atau ke bawah.

Saya menggunakan SoundFileSimpleRead. VI yang tersedia di LabVIEW untuk membaca file.wav dari jalur yang saya tentukan, memasukkan sinyal ke dalam array terindeks, dan memasukkan sinyal itu ke HarmonicDistortionAnalyzer. VI untuk menemukan frekuensi dasar. Saya juga mengambil sinyal dari SoundFileSimpleRead. VI dan menghubungkannya langsung ke indikator grafik bentuk gelombang sehingga pengguna dapat melihat bentuk gelombang file di panel depan.

Saya membuat 2 struktur kasus: satu untuk menganalisis nada apa yang sedang dimainkan, dan yang lainnya untuk menentukan apakah senar perlu dinaikkan atau diturunkan. Untuk kasus pertama, saya membuat rentang untuk setiap nada, dan jika sinyal frekuensi dasar dari HarmonicDistortionAnalyzer. VI berada dalam rentang itu, ia akan memberi tahu pengguna nada apa yang sedang dimainkan. Setelah nada ditentukan, nilai nada yang dimainkan dikurangi dengan frekuensi dasar nada yang sebenarnya, dan kemudian hasilnya dipindahkan ke kasus kedua yang menentukan sebagai berikut: jika hasilnya di atas nol, maka senar perlu disetel ke bawah; jika hasilnya salah (tidak di atas nol), maka kasing akan memeriksa apakah nilainya sama dengan nol, dan jika benar, maka program akan memberi tahu pengguna bahwa nada tersebut selaras; jika nilainya tidak sama dengan nol, maka itu berarti harus kurang dari nol dan senar perlu disetel. Saya mengambil nilai absolut dari hasil untuk menunjukkan kepada pengguna berapa banyak Hz mereka jauh dari nada sebenarnya.

Saya memutuskan indikator meteran akan menjadi yang terbaik untuk menunjukkan secara visual kepada pengguna apa yang perlu dilakukan untuk membuat nada selaras.

Langkah 3: Selanjutnya, Sirkuit Analog

Selanjutnya, Sirkuit Analog
Selanjutnya, Sirkuit Analog
Selanjutnya, Sirkuit Analog
Selanjutnya, Sirkuit Analog
Selanjutnya, Sirkuit Analog
Selanjutnya, Sirkuit Analog

Mikrofon yang saya gunakan untuk proyek ini adalah mic electret kondensor CMA-6542PF. Datasheet untuk mic ini ada di bawah. Tidak seperti kebanyakan mikrofon kondensor jenis ini, saya tidak perlu khawatir tentang polaritas. Datasheet menunjukkan bahwa tegangan operasi untuk mic ini adalah 4,5 - 10V, tetapi 4,5 V direkomendasikan, dan konsumsi arusnya maksimum 0,5mA sehingga harus berhati-hati saat merancang rangkaian preamp untuknya. Frekuensi operasi adalah 20Hz hingga 20kHz yang sempurna untuk audio.

Saya menerapkan desain sirkuit preamp sederhana pada papan tempat memotong roti dan menyesuaikan tegangan input, memastikan tidak lebih dari 0,5mA di seluruh mikrofon. Kapasitor digunakan untuk menyaring kebisingan DC yang mungkin digabungkan bersama dengan sinyal listrik (output), dan kapasitor memang memiliki polaritas jadi pastikan untuk menghubungkan ujung positif ke pin output mikrofon.

Setelah rangkaian selesai, saya menghubungkan output rangkaian ke pin input analog pertama (AI0, pin 2) dari USB-6008, dan menghubungkan ground papan tempat memotong roti ke pin ground analog (GND, pin 1). Saya menghubungkan USB-6008 ke PC dengan USB dan sudah waktunya untuk membuat penyesuaian pada program LabVIEW untuk menerima sinyal analog yang sebenarnya.

Langkah 4: Membaca Sinyal Analog Dengan DAQ Assistant

Membaca Sinyal Analog Dengan Asisten DAQ
Membaca Sinyal Analog Dengan Asisten DAQ
Membaca Sinyal Analog Dengan Asisten DAQ
Membaca Sinyal Analog Dengan Asisten DAQ

Alih-alih menggunakan SoundFileSimpleRead. VI dan HarmonicDistortionAnalyzer. VI, saya menggunakan DAQ Assistant. VI dan ToneMeasurements. VI untuk menangani input analog. Pengaturan DAQ Assistant cukup mudah, dan VI itu sendiri membawa Anda melalui langkah-langkahnya. ToneMeasurements. VI memiliki banyak output untuk dipilih (amplitudo, frekuensi, fase), jadi saya menggunakan output frekuensi yang memberikan frekuensi dasar nada input (dari DAQ Assistant. VI). Output dari ToneMeasurements. VI harus dikonversi dan dimasukkan ke dalam array sebelum dapat digunakan dalam struktur kasus, tetapi pemrograman/indikator LabVIEW lainnya tetap sama.

Langkah 5: Kesimpulan

Kesimpulan
Kesimpulan

Proyek ini sukses tetapi pasti ada banyak kekurangan. Ketika saya mengoperasikan tuner di ruang kelas yang bising, sangat sulit bagi program untuk menentukan apa itu noise dan nada apa yang dimainkan. Ini kemungkinan karena rangkaian preamp sangat mendasar, dan mikrofon sangat murah. Namun, saat sunyi, program bekerja dengan keandalan yang baik untuk menentukan nada yang coba dimainkan. Karena keterbatasan waktu, saya tidak membuat perubahan tambahan, tetapi jika saya mengulangi proyek ini, saya akan membeli mikrofon yang lebih baik dan menghabiskan lebih banyak waktu di sirkuit preamp.

Direkomendasikan: