Satura rādītājs:

Ukelele Tuner, izmantojot LabView un NI USB-6008: 5 soļi
Ukelele Tuner, izmantojot LabView un NI USB-6008: 5 soļi

Video: Ukelele Tuner, izmantojot LabView un NI USB-6008: 5 soļi

Video: Ukelele Tuner, izmantojot LabView un NI USB-6008: 5 soļi
Video: Укулеле - все аккорды и ритмы для укулеле в одном видео! 2024, Novembris
Anonim
Ukelele Tuner, izmantojot LabView un NI USB-6008
Ukelele Tuner, izmantojot LabView un NI USB-6008
Ukelele Tuner, izmantojot LabView un NI USB-6008
Ukelele Tuner, izmantojot LabView un NI USB-6008

Kā uz problēmu balstīts mācību projekts savam LabVIEW & Instrumentation kursam Humber koledžā (elektronikas inženierijas tehnoloģija), es izveidoju ukuleles uztvērēju, kas ņemtu analogo ieeju (ukuleles stīgu tonis), atrastu pamata frekvenci, izlemtu, kādu noti mēģināt jānoskaņo, un pastāstiet lietotājam, vai virkne ir jāpielāgo augšup vai lejup. Ierīce, ko izmantoju analogās ieejas tulkošanai digitālajā ievadē, bija National Instruments USB-6008 DAQ (datu ieguves ierīce), un lietotāja saskarne tika ieviesta ar LabVIEW.

1. solis: standarta Ukelele tuning

Standarta Ukelele Tuning
Standarta Ukelele Tuning
Standarta Ukelele Tuning
Standarta Ukelele Tuning

Pirmais solis bija noskaidrot mūzikas notu pamata frekvences un to, kādā diapazonā ukuleles stīgas parasti tiek noregulētas. Es izmantoju šīs divas diagrammas un nolēmu, ka iestatīšu toņu diapazonu no 262 Hz (C) līdz 494 Hz (augsts B). Viss, kas ir mazāks par 252 Hz, tiktu uzskatīts par pārāk zemu, lai programma varētu atšifrēt, kādu noti mēģināja atskaņot, un viss, kas lielāks par 500 Hz, tiktu uzskatīts par pārāk augstu. Tomēr programma joprojām norāda lietotājam, cik Hz ir tālu no tuvākās atšifrējamās piezīmes, un vai virkne ir jāpielāgo uz augšu (piezīme par zemu) vai uz leju (par augstu), lai sasniegtu pieejamo piezīmi.

Turklāt es izveidoju diapazonus katrai notij, nevis tikai vienai frekvencei, lai programmai būtu vieglāk atrast atskaņojamo noti. Piemēram, programma pastāstītu lietotājam, ka tiek atskaņots C, ja notis pamatfrekvence ir no 252 Hz (līdz pusei līdz B) līdz 269 Hz (pusceļā līdz C#), bet, lai izlemtu, vai tā ir jāpielāgo vai uz leju, tā joprojām salīdzinātu atskaņoto noti ar C pamatfrekvenci, kas ir 262 Hz.

2. solis: tīri digitāla teorētiskā modeļa izveide

Tīri digitāla teorētiskā modeļa izveide
Tīri digitāla teorētiskā modeļa izveide
Tīri digitāla teorētiskā modeļa izveide
Tīri digitāla teorētiskā modeļa izveide

Pirms ienirt projekta analogajā pusē, es vēlējos noskaidrot, vai es varētu izveidot LabVIEW programmu, kas vismaz veiktu skaņas parauga galveno apstrādi, piemēram, lasītu audio.wav paraugu, atrastu pamata frekvenci un izveidotu nepieciešamos salīdzinājumus ar frekvenču diagrammu, lai noskaidrotu, vai skaņa ir jānoskaņo uz augšu vai uz leju.

Es izmantoju LabVIEW pieejamo SoundFileSimpleRead. VI, lai nolasītu.wav failu no manis norādītā ceļa, ievietotu signālu indeksētā masīvā un ievadītu šo signālu HarmonicDistortionAnalyzer. VI, lai atrastu pamata frekvenci. Es arī paņēmu signālu no SoundFileSimpleRead. VI un pievienoju to tieši viļņu diagrammas indikatoram, lai lietotājs priekšējā panelī varētu redzēt faila viļņu formu.

Es izveidoju 2 lietu struktūras: vienu, lai analizētu, kāda nots tika atskaņota, un otru, lai noteiktu, vai virkne ir jāpagriež uz augšu vai uz leju. Pirmajā gadījumā es izveidoju diapazonus katrai notij, un, ja HarmonicDistortionAnalyzer. VI pamata frekvences signāls būtu šajā diapazonā, tas lietotājam pateiktu, kāda nots tika atskaņota. Kad notis tika noteikta, atskaņotās notas vērtība tika atņemta nošu faktiskajā pamatfrekvencē, un pēc tam rezultāts tika pārvietots uz otro gadījumu, kas noteica sekojošo: ja rezultāts ir virs nulles, tad virkne ir jāsamazina; ja rezultāts ir nepatiess (nav lielāks par nulli), tad gadījums pārbauda, vai vērtība ir vienāda ar nulli, un, ja tā ir patiesa, tad programma paziņos lietotājam, ka piezīme ir noskaņota; ja vērtība nav vienāda ar nulli, tas nozīmē, ka tai jābūt mazākai par nulli un virkne ir jāpielāgo. Es ņēmu rezultāta absolūto vērtību, lai parādītu lietotājam, cik Hz viņi ir prom no patiesās nots.

Es nolēmu, ka skaitītāja indikators būtu labākais, lai lietotājam vizuāli parādītu, kas jādara, lai piezīme būtu saskaņota.

3. solis: Tālāk - analogā shēma

Tālāk - analogā shēma
Tālāk - analogā shēma
Tālāk - analogā shēma
Tālāk - analogā shēma
Tālāk - analogā shēma
Tālāk - analogā shēma

Mikrofons, ko izmantoju šim projektam, ir CMA-6542PF kondensatora elektrīta mikrofons. Šī mikrofona datu lapa ir zemāk. Atšķirībā no vairuma šāda veida kondensatora mikrofonu, man nebija jāuztraucas par polaritāti. Datu lapa parāda, ka šī mikrofona darba spriegums ir 4,5 - 10 V, bet ieteicams ir 4,5 V, un tā strāvas patēriņš ir līdz 0,5 mA, tāpēc tas ir kaut kas, kas jāuzmanās, veidojot priekšpastiprinājuma ķēdi. Darba frekvence ir no 20 Hz līdz 20 kHz, kas ir ideāli piemērota skaņai.

Uz maizes dēļa es ieviesu vienkāršu priekšpastiprinātāja shēmas dizainu un noregulēju ieejas spriegumu, pārliecinoties, ka mikrofonā nav vairāk par 0,5 mA. Kondensatoru izmanto, lai filtrētu līdzstrāvas troksni, kas varētu būt savienots ar elektriskajiem signāliem (izeju), un kondensatoram ir polaritāte, tāpēc noteikti pievienojiet pozitīvo galu mikrofona izejas tapai.

Kad ķēde bija pabeigta, es pievienoju ķēdes izeju USB-6008 pirmajai analogās ieejas tapai (AI0, 2. tapa) un savienoju maizes dēļa zemi ar analogo zemējuma tapu (GND, 1. tapa). Es pievienoju USB-6008 datoram, izmantojot USB, un bija pienācis laiks pielāgot LabVIEW programmu, lai uztvertu faktisko analogo signālu.

4. darbība. Analogo signālu lasīšana ar DAQ palīgu

Analogo signālu lasīšana ar DAQ palīgu
Analogo signālu lasīšana ar DAQ palīgu
Analogo signālu lasīšana ar DAQ palīgu
Analogo signālu lasīšana ar DAQ palīgu

Tā vietā, lai izmantotu SoundFileSimpleRead. VI un HarmonicDistortionAnalyzer. VI, es izmantoju DAQ Assistant. VI un ToneMeasurements. VI, lai tiktu galā ar analogo ievadi. DAQ palīga iestatīšana ir diezgan vienkārša, un pats VI sniedz jums norādījumus. ToneMeasurements. VI ir daudz izeju, no kurām izvēlēties (amplitūda, frekvence, fāze), tāpēc es izmantoju frekvences izeju, kas nodrošina ievades signāla pamatfrekvenci (no DAQ palīga. VI). ToneMeasurements. VI izlaide bija jāpārveido un jāievada masīvā, pirms to varēja izmantot lietu struktūrās, bet pārējā LabVIEW programmēšana/rādītāji palika nemainīgi.

5. darbība. Secinājums

Secinājums
Secinājums

Projekts bija veiksmīgs, taču noteikti bija daudz trūkumu. Kad es darbināju skaņotāju trokšņainā klasē, programmai bija ļoti grūti noteikt, kas ir troksnis un kāds tonis tiek atskaņots. Tas, iespējams, ir saistīts ar to, ka priekšpastiprinājuma ķēde ir ļoti vienkārša un mikrofons ir ļoti lēts. Tomēr, kad bija kluss, programma strādāja ar labu uzticamību, lai noteiktu noti, kuru mēģināja atskaņot. Laika ierobežojumu dēļ es neveicu nekādas papildu izmaiņas, bet, ja es atkārtotu projektu, es iegādātos labāku mikrofonu un vairāk laika pavadītu priekšpastiprinājuma ķēdē.

Ieteicams: