Isi kandungan:

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

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

Video: Penala Ukelele Menggunakan LabView dan NI USB-6008: 5 Langkah
Video: tuning ukulele (tuning ukulele senar 4) 2024, November
Anonim
Penala Ukelele Menggunakan LabView dan NI USB-6008
Penala Ukelele Menggunakan LabView dan NI USB-6008
Penala Ukelele Menggunakan LabView dan NI USB-6008
Penala Ukelele Menggunakan LabView dan NI USB-6008

Sebagai projek pembelajaran berasaskan masalah untuk kursus LabVIEW & Instrumentasi saya di Humber College (Teknologi Kejuruteraan Elektronik), saya membuat penala ukulele yang akan mengambil input analog (nada rentetan ukulele), mencari frekuensi asas, memutuskan nota apa yang dicuba untuk ditala, dan beritahu pengguna jika rentetan perlu disetel ke atas atau ke bawah. Peranti yang saya gunakan untuk menerjemahkan input analog ke input digital adalah National Instruments USB-6008 DAQ (peranti pemerolehan data), dan antara muka pengguna dilaksanakan dengan LabVIEW.

Langkah 1: Penalaan Ukelele Piawai

Penalaan Ukelele Piawai
Penalaan Ukelele Piawai
Penalaan Ukelele Piawai
Penalaan Ukelele Piawai

Langkah pertama adalah mencari frekuensi asas nota muzik, dan jarak rentetan ukulele yang biasanya disetel. Saya menggunakan kedua-dua carta ini, dan memutuskan bahawa nada saya akan berkisar antara 262 Hz (C) dan 494Hz (B Tinggi). Apa-apa yang kurang dari 252 Hz akan dianggap terlalu rendah untuk program untuk menguraikan nota apa yang cuba dimainkan, dan apa pun yang lebih besar dari 500 Hz akan dianggap terlalu tinggi. Program ini, bagaimanapun, masih memberi tahu pengguna berapa Hz yang mereka tinggalkan dari nota yang dapat dihuraikan yang paling dekat, dan jika rentetan harus disetel ke atas (catatan terlalu rendah) atau ke bawah (catatan terlalu tinggi) untuk mencapai catatan yang tersedia.

Selain itu, saya membuat julat untuk setiap nota, bukan hanya satu frekuensi, sehingga lebih mudah bagi program untuk mencari nota mana yang dimainkan. Sebagai contoh, program ini akan memberitahu pengguna bahawa C sedang dimainkan jika nota mempunyai frekuensi mendasar antara 252 Hz (setengah ke B) dan 269Hz (setengah ke C #), tetapi untuk memutuskan apakah perlu disetel atau turun, ia masih membandingkan nota yang dimainkan dengan frekuensi asas C iaitu 262Hz.

Langkah 2: Membuat Model Teori Digital Murni

Membuat Model Teori Digital Murni
Membuat Model Teori Digital Murni
Membuat Model Teori Digital Murni
Membuat Model Teori Digital Murni

Sebelum menyelami bahagian analog projek, saya ingin melihat apakah saya dapat membuat program LabVIEW yang sekurang-kurangnya akan melakukan pemprosesan utama sampel bunyi, seperti membaca sampel audio.wav, mencari frekuensi asas, dan membuat perbandingan yang diperlukan dengan carta frekuensi untuk mengetahui sama ada suaranya mesti diselaraskan ke atas atau ke bawah.

Saya menggunakan SoundFileSimpleRead. VI yang terdapat di LabVIEW untuk membaca fail.wav dari jalan yang saya tetapkan, memasukkan isyarat ke dalam array yang diindeks, dan memasukkan isyarat itu ke dalam HarmonicDistortionAnalyzer. VI untuk mencari frekuensi asas. Saya juga mengambil isyarat dari SoundFileSimpleRead. VI dan menghubungkannya terus ke penunjuk carta bentuk gelombang supaya pengguna dapat melihat bentuk gelombang fail di panel depan.

Saya membuat 2 struktur casing: satu untuk menganalisis nota apa yang sedang dimainkan, dan yang lain untuk menentukan apakah rentetan itu perlu dinaikkan atau diturunkan. Untuk kes pertama, saya membuat julat untuk setiap nota, dan jika isyarat frekuensi asas dari HarmonicDistortionAnalyzer. VI berada dalam julat itu, ia akan memberitahu pengguna nota apa yang sedang dimainkan. Setelah nota ditentukan, nilai not yang dimainkan dikurangkan oleh frekuensi asas sebenar nota, dan kemudian hasilnya dipindahkan ke dalam kes kedua yang menentukan perkara berikut: jika hasilnya melebihi nol, maka rentetan itu perlu diturunkan; jika hasilnya salah (tidak melebihi nol), maka kes akan memeriksa apakah nilainya sama dengan sifar, dan jika benar, maka program akan memberitahu pengguna bahawa nota tersebut sesuai; jika nilainya tidak sama dengan sifar, maka itu bermaksud mestilah kurang dari sifar dan rentetan itu perlu diselaraskan. Saya mengambil nilai mutlak hasilnya untuk menunjukkan kepada pengguna berapa banyak Hz yang mereka jauh dari nota sebenarnya.

Saya memutuskan penunjuk meter akan menjadi yang terbaik untuk menunjukkan secara visual kepada pengguna apa yang perlu dilakukan untuk membuat nota selaras.

Langkah 3: Seterusnya, Litar Analog

Seterusnya, Litar Analog
Seterusnya, Litar Analog
Seterusnya, Litar Analog
Seterusnya, Litar Analog
Seterusnya, Litar Analog
Seterusnya, Litar Analog

Mikrofon yang saya gunakan untuk projek ini ialah mikrofon electret kondensor CMA-6542PF. Lembar data untuk mikrofon ini ada di bawah. Tidak seperti kebanyakan mikrofon kondensor jenis ini, saya tidak perlu bimbang tentang kekutuban. Lembar data menunjukkan bahawa voltan operasi untuk mikrofon ini adalah 4.5 - 10V, tetapi disyorkan 4.5 V, dan penggunaannya sekarang adalah 0.5mA maks. Frekuensi operasi adalah 20Hz hingga 20kHz yang sangat sesuai untuk audio.

Saya melaksanakan reka bentuk litar preamp sederhana di papan roti dan menyesuaikan voltan input, memastikan tidak terdapat lebih daripada 0.5mA di mikrofon. Kapasitor digunakan untuk menyaring kebisingan DC yang mungkin digabungkan bersama dengan isyarat elektrik (output), dan kapasitor memang mempunyai polaritas jadi pastikan untuk menghubungkan ujung positif ke pin output mikrofon.

Setelah litar selesai, saya menyambungkan output litar ke pin input analog pertama (AI0, pin 2) USB-6008, dan menghubungkan tanah papan roti ke pin ground analog (GND, pin 1). Saya menyambungkan USB-6008 ke PC dengan USB dan sudah tiba masanya untuk membuat penyesuaian pada program LabVIEW untuk menggunakan isyarat analog yang sebenarnya.

Langkah 4: Membaca Isyarat Analog Dengan Pembantu DAQ

Membaca Isyarat Analog Dengan Pembantu DAQ
Membaca Isyarat Analog Dengan Pembantu DAQ
Membaca Isyarat Analog Dengan Pembantu DAQ
Membaca Isyarat Analog Dengan Pembantu DAQ

Daripada menggunakan SoundFileSimpleRead. VI dan HarmonicDistortionAnalyzer. VI, saya menggunakan DAQ Assistant. VI dan ToneMeasurements. VI untuk menangani input analog. Persediaan DAQ Assistant agak lurus ke hadapan, dan VI itu sendiri membawa anda melalui langkah-langkahnya. ToneMeasurements. VI mempunyai banyak output untuk dipilih (amplitud, frekuensi, fasa), jadi saya menggunakan output frekuensi yang memberikan frekuensi asas nada input (dari DAQ Assistant. VI). Keluaran ToneMeasurements. VI harus ditukar dan dimasukkan ke dalam array sebelum dapat digunakan dalam struktur kes, tetapi selebihnya pengaturcaraan / petunjuk LabVIEW tetap sama.

Langkah 5: Kesimpulannya

Kesimpulannya
Kesimpulannya

Projek ini berjaya tetapi pasti ada banyak kekurangan. Semasa saya mengoperasikan penala di kelas yang bising, sangat sukar bagi program untuk menentukan apa itu bunyi bising dan nada apa yang dimainkan. Ini mungkin disebabkan oleh rangkaian preamp yang sangat asas, dan mikrofonnya sangat murah. Namun, ketika sunyi, program ini berfungsi dengan penuh kebolehpercayaan untuk menentukan nota yang cuba dimainkan. Oleh kerana kekangan masa saya tidak membuat perubahan tambahan, tetapi jika saya mengulangi projek, saya akan membeli mikrofon yang lebih baik dan menghabiskan lebih banyak masa di litar preamp.

Disyorkan: