Mündəricat:

LabView və NI USB-6008 istifadə edərək Ukelele Tuner: 5 addım
LabView və NI USB-6008 istifadə edərək Ukelele Tuner: 5 addım

Video: LabView və NI USB-6008 istifadə edərək Ukelele Tuner: 5 addım

Video: LabView və NI USB-6008 istifadə edərək Ukelele Tuner: 5 addım
Video: Сравнение протоколов TCP и UDP 2024, Iyul
Anonim
LabView və NI USB-6008 istifadə edərək Ukelele Tuner
LabView və NI USB-6008 istifadə edərək Ukelele Tuner
LabView və NI USB-6008 istifadə edərək Ukelele Tuner
LabView və NI USB-6008 istifadə edərək Ukelele Tuner

Humber Kollecində (Elektronika Mühəndisliyi Texnologiyası) LabVIEW & Instrumentation kursum üçün problemə əsaslanan bir öyrənmə layihəsi olaraq, analoq girişi (ukulele simli tonu) götürəcək, əsas tezliyi tapacaq, hansı notun çalışdığına qərar verən bir ukulele tuner yaratdım. tənzimlənməlidir və istifadəçiyə simin yuxarı və ya aşağı tənzimlənməsinin lazım olub olmadığını bildirin. Analoq girişi rəqəmsal girişə çevirmək üçün istifadə etdiyim cihaz National Instruments USB-6008 DAQ (məlumat toplama cihazı) idi və istifadəçi interfeysi LabVIEW ilə həyata keçirildi.

Addım 1: Standart Ukelele Tuning

Standart Ukelele Tuning
Standart Ukelele Tuning
Standart Ukelele Tuning
Standart Ukelele Tuning

İlk addım, musiqi notlarının əsas tezliklərini və ukulele simlərinin ümumiyyətlə hansı aralığa uyğunlaşdırıldığını öyrənmək idi. Bu iki qrafikdən istifadə etdim və 262 Hz (C) ilə 494Hz (Yüksək B) arasında səs tonumu seçəcəyimə qərar verdim. Proqramın 252 Hz -dən az bir şeyin nə çalmağa çalışdığını deşifr etməsi üçün çox aşağı, 500 Hz -dən çox olan isə çox yüksək hesab ediləcək. Proqram, hələ də istifadəçiyə ən yaxın deşifr edilə bilən qeyddən neçə Hz məsafədə olduqlarını və mövcud bir nota çatmaq üçün sətrin yuxarı (aşağı çox qeyd) və ya aşağı (çox yüksək qeyd) tənzimlənməli olduğunu bildirir.

Əlavə olaraq, proqramın hansı notun çalındığını tapmasını asanlaşdırmaq üçün tək bir tezlikdən çox deyil, hər not üçün silsilələr yaratdım. Məsələn, proqram istifadəçiyə notun 252 Hz (B -nin yarısı) və 269Hz (C#-in yarısı) arasında bir əsas frekansa sahib olsaydı C -nin çalınacağını bildirərdi, ancaq bunun tənzimlənməsinin lazım olub -olmamasına qərar vermək üçün. və ya aşağı olsa da, çalınan notu C2 -nin əsas tezliyi olan 262Hz ilə müqayisə edərdi.

Addım 2: Tamamilə Rəqəmsal Nəzəri Model Yaratmaq

Tamamilə Rəqəmsal Nəzəri Model Yaratmaq
Tamamilə Rəqəmsal Nəzəri Model Yaratmaq
Tamamilə Rəqəmsal Nəzəri Model Yaratmaq
Tamamilə Rəqəmsal Nəzəri Model Yaratmaq

Layihənin analoji tərəfinə girməzdən əvvəl, ən azından səs.wav nümunəsi oxumaq, əsas tezliyi tapmaq və etmək kimi bir səs nümunəsinin əsas işlənməsini həyata keçirəcək bir LabVIEW proqramı yarada biləcəyimi görmək istədim. Səsin yuxarı və ya aşağı tənzimlənməli olub olmadığını öyrənmək üçün tezlik cədvəli ilə müqayisə etmək lazımdır.

Mən təyin etdiyim bir yoldan bir.wav faylını oxumaq, siqnalı indekslənmiş bir sıra daxil etmək və əsas tezliyi tapmaq üçün bu siqnalı HarmonicDistortionAnalyzer. VI -ə ötürmək üçün LabVIEW -də mövcud olan SoundFileSimpleRead. VI -dən istifadə etdim. Mən də SoundFileSimpleRead. VI -dən siqnalı götürdüm və istifadəçini ön paneldəki faylın dalğa formasını görə bilməsi üçün birbaşa dalğa şəkli göstəricisi ilə əlaqələndirdim.

2 hal quruluşu yaratdım: biri hansı notun çalındığını təhlil etmək üçün, digəri isə ipin yuxarı və ya aşağı çevrilməsinin lazım olub olmadığını müəyyən etmək üçün. Birinci halda, hər not üçün diapazonlar yaratdım və əgər HarmonicDistortionAnalyzer. VI -dən olan əsas tezlik siqnalı bu diapazonda olsaydı, istifadəçiyə hansı notun çalındığını bildirərdi. Qeyd müəyyən edildikdən sonra, çalınan notun dəyəri əskinasın əsl əsas tezliyi ilə çıxarıldı və sonra nəticə aşağıdakıları təyin edən ikinci vəziyyətə köçürüldü: nəticə sıfırın üstündədirsə, simin tənzimlənməsi lazımdır; nəticə yalan olarsa (sıfırdan yuxarı deyil), iş dəyərin sıfıra bərabər olub olmadığını yoxlayır və doğru olarsa, proqram istifadəçiyə qeydin uyğun olduğunu bildirir; dəyər sıfıra bərabər deyilsə, bu sıfırdan az olması və simin tənzimlənməsinin lazım olduğunu bildirir. İstifadəçiyə əsl qeyddən neçə Hz məsafədə olduqlarını göstərmək üçün nəticənin mütləq dəyərini götürdüm.

İstifadəçiyə notu uyğun etmək üçün nə edilməli olduğunu əyani şəkildə göstərmək üçün bir sayğac göstəricisinin ən yaxşı olacağına qərar verdim.

Addım 3: Sonra, Analog Dövrə

Sonra, Analog Dövrə
Sonra, Analog Dövrə
Sonra, Analog Dövrə
Sonra, Analog Dövrə
Sonra, Analog Dövrə
Sonra, Analog Dövrə

Bu layihə üçün istifadə etdiyim mikrofon CMA-6542PF kondensator elektret mikrofonudur. Bu mikrofon üçün məlumat cədvəli aşağıda verilmişdir. Bu tip kondensator mikrofonlarının əksəriyyətindən fərqli olaraq, polarite haqqında narahat olmaq lazım deyildi. Məlumat cədvəli göstərir ki, bu mikrofonun işləmə gərginliyi 4,5 - 10 V, lakin 4,5 V tövsiyə olunur və onun cari istehlakı maksimum 0,5 mA -dır, buna görə də preamp dövrə tərtib edərkən diqqətli olmaq lazımdır. Əməliyyat tezliyi 20Hz -dən 20kHz -ə qədərdir, bu da səs üçün idealdır.

Çörək taxtasında sadə bir preamp dövrə dizaynı tətbiq etdim və mikrofonda 0,5 mA -dan çox olmadığından əmin olaraq giriş gərginliyini tənzimlədim. Kondansatör, elektrik siqnalları (çıxışı) ilə birləşdirilə bilən DC səs -küyünü süzmək üçün istifadə olunur və kondansatörün polaritesi var, buna görə də müsbət ucunu mikrofon çıxış pininə bağladığınızdan əmin olun.

Dövrə tamamlandıqdan sonra, dövrənin çıxışını USB-6008-in ilk analoq giriş pininə (AI0, pin 2) bağladım və çörək taxtasının zəminini analog torpaq pininə (GND, pin 1) bağladım. USB-6008-i USB ilə PC-yə bağladım və həqiqi analoq siqnalı qəbul etmək üçün LabVIEW proqramına düzəlişlər etmək vaxtı gəldi.

Addım 4: DAQ köməkçisi ilə analoq siqnalları oxuyun

DAQ köməkçisi ilə analoq siqnalların oxunması
DAQ köməkçisi ilə analoq siqnalların oxunması
DAQ köməkçisi ilə analoq siqnalların oxunması
DAQ köməkçisi ilə analoq siqnalların oxunması

SoundFileSimpleRead. VI və HarmonicDistortionAnalyzer. VI istifadə etmək əvəzinə, analog girişlə məşğul olmaq üçün DAQ Assistant. VI və ToneMeasurements. VI istifadə etdim. DAQ köməkçisi quruluşu olduqca sadədir və VI özü sizi addımlardan keçir. ToneMeasurements. VI -nin (amplituda, tezlik, faza) seçmək üçün bir çox çıxışı var, buna görə giriş tonunun əsas tezliyini verən tezlik çıxışından istifadə etdim (DAQ Assistant. VI -dən). ToneMeasurements. VI çıxışı, konstruksiyalarda istifadə olunmazdan əvvəl çevrilməli və bir sıra halına salınmalı idi, lakin LabVIEW proqramlaşdırma/göstəricilərinin qalan hissəsi eyni qaldı.

Addım 5: Nəticə

Nəticə
Nəticə

Layihə uğurla başa çatdı, amma bir çox çatışmazlıqlar var idi. Tüneri səs -küylü bir sinifdə işlədərkən, proqramın nə səs -küy olduğunu və hansı tonda çalındığını təyin etmək çox çətin idi. Çox güman ki, preamp dövrəsinin çox sadə olması və mikrofonun çox ucuz olmasıdır. Səssiz olanda, proqram çalınmağa çalışılan notu müəyyən etmək üçün yaxşı etibarlılıqla çalışdı. Vaxt məhdudiyyətləri səbəbindən heç bir əlavə dəyişiklik etmədim, amma layihəni təkrarlasam daha yaxşı bir mikrofon alardım və preamp dövrəsinə daha çox vaxt sərf edərdim.

Tövsiyə: