Përmbajtje:

Akorduesi Ukelele duke përdorur LabView dhe NI USB-6008: 5 hapa
Akorduesi Ukelele duke përdorur LabView dhe NI USB-6008: 5 hapa

Video: Akorduesi Ukelele duke përdorur LabView dhe NI USB-6008: 5 hapa

Video: Akorduesi Ukelele duke përdorur LabView dhe NI USB-6008: 5 hapa
Video: Сравнение протоколов TCP и UDP 2024, Korrik
Anonim
Akorduesi Ukelele duke përdorur LabView dhe NI USB-6008
Akorduesi Ukelele duke përdorur LabView dhe NI USB-6008
Akorduesi Ukelele duke përdorur LabView dhe NI USB-6008
Akorduesi Ukelele duke përdorur LabView dhe NI USB-6008

Si një projekt mësimi i bazuar në probleme për kursin tim LabVIEW & Instrumentation në Humber College (Teknologjia Inxhinierike Elektronike), krijova një akordues ukulele që do të merrte një hyrje analoge (toni i vargut ukulele), do të gjeja frekuencën themelore, do të vendosja se çfarë shënimi po provonte për tu akorduar dhe tregoni përdoruesit nëse vargu duhej të akordohej lart ose poshtë. Pajisja që kam përdorur për të përkthyer hyrjen analoge në hyrje dixhitale ishte National Instruments USB-6008 DAQ (pajisje për marrjen e të dhënave) dhe ndërfaqja e përdoruesit u zbatua me LabVIEW.

Hapi 1: Akordimi Standard i Ukelele

Akordimi Standard Ukelele
Akordimi Standard Ukelele
Akordimi Standard Ukelele
Akordimi Standard Ukelele

Hapi i parë ishte zbulimi i frekuencave themelore të notave muzikore, dhe se në cilën varg vargjet e ukulele janë rregulluar në mënyrë tipike. Kam përdorur këto dy tabela dhe vendosa që të ndryshoja tonin tim midis 262 Hz (C) dhe 494Hz (High B). Çdo gjë më pak se 252 Hz do të konsiderohej shumë e ulët për programin për të deshifruar atë notë që po përpiqej të luhej, dhe çdo gjë më e madhe se 500 Hz do të konsiderohej shumë e lartë. Programi, megjithatë, ende i tregon përdoruesit sa Hz janë larg shënimit më të afërt të deshifrueshëm, dhe nëse vargu duhet të akordohet lart (shënim shumë i ulët) ose poshtë (shënim shumë i lartë) për të arritur një shënim të disponueshëm.

Për më tepër, unë krijova vargje për secilën notë, në vend se vetëm një frekuencë të vetme, në mënyrë që të ishte më e lehtë për programin të gjente se cila notë po luhej. Për shembull, programi do t'i tregonte përdoruesit se një C po luhej nëse shënimi kishte një frekuencë themelore midis 252 Hz (gjysma e rrugës deri në B) dhe 269Hz (gjysma e rrugës deri në C#), por për të vendosur nëse duhej të akordohej ose poshtë, ai ende do të krahasojë notën që luhet me frekuencën themelore të C e cila është 262Hz.

Hapi 2: Krijimi i një modeli teorik thjesht dixhital

Krijimi i një modeli teorik thjesht dixhital
Krijimi i një modeli teorik thjesht dixhital
Krijimi i një modeli teorik thjesht dixhital
Krijimi i një modeli teorik thjesht dixhital

Para se të zhyten në anën analoge të projektit, doja të shihja nëse mund të krijoja një program LabVIEW që të paktën do të bënte përpunimin kryesor të një mostre të zërit, të tilla si leximi i një mostre audio.wav, gjetja e frekuencës themelore dhe bërja krahasimet e kërkuara me tabelën e frekuencave për të gjetur nëse tingulli duhet të akordohet lart ose poshtë.

Kam përdorur SoundFileSimpleRead. VI të disponueshëm në LabVIEW për të lexuar një skedar.wav nga një shteg që unë e caktova, e vendosa sinjalin në një grup të indeksuar dhe e futa atë sinjal në HarmonicDistortionAnalyzer. VI në mënyrë që të gjeja frekuencën themelore. Unë gjithashtu mora sinjalin nga SoundFileSimpleRead. VI dhe e lidha atë drejtpërdrejt në një tregues të tabelës së formës valore, në mënyrë që përdoruesi të mund të shohë formën valore të skedarit në panelin e përparmë.

Krijova 2 struktura rastesh: njëra për të analizuar atë notë që po luhej, dhe tjetra për të përcaktuar nëse vargu duhej të kthehej lart ose poshtë. Për rastin e parë, unë krijova diapazone për secilën shënim, dhe nëse sinjali i frekuencës themelore nga HarmonicDistortionAnalyzer. VI ishte në atë diapazon, do t'i tregonte përdoruesit se çfarë shënimi po luhej. Pasi nota u përcaktua, vlera e notës së luajtur zbritet nga frekuenca themelore aktuale e shënimit, dhe më pas rezultati u zhvendos në rastin e dytë që përcaktoi sa vijon: nëse rezultati është mbi zero, atëherë vargu duhet të akordohet poshtë; nëse rezultati është i rremë (jo mbi zero), atëherë rasti kontrollon nëse vlera është e barabartë me zero, dhe nëse është e vërtetë, atëherë programi do të njoftonte përdoruesin se shënimi është në sintoni; nëse vlera nuk është e barabartë me zero, atëherë do të thotë se duhet të jetë më pak se zero dhe se vargu duhet të akordohet. Mora vlerën absolute të rezultatit për t'i treguar përdoruesit sa Hz janë larg shënimit të vërtetë.

Vendosa që një tregues i njehsorit do të ishte më i miri për t'i treguar vizualisht përdoruesit atë që duhet bërë për të bërë shënimin në harmoni.

Hapi 3: Tjetra, Qarku Analog

Tjetra, Qarku Analog
Tjetra, Qarku Analog
Tjetra, Qarku Analog
Tjetra, Qarku Analog
Tjetra, Qarku Analog
Tjetra, Qarku Analog

Mikrofoni që kam përdorur për këtë projekt është mikrofoni elektrik i kondensatorit CMA-6542PF. Fleta e të dhënave për këtë mikrofon është më poshtë. Ndryshe nga shumica e mikrofonëve kondensatorë të këtij lloji, nuk më duhej të shqetësohesha për polaritetin. Fleta e të dhënave tregon se tensioni i funksionimit për këtë mikrofon është 4.5 - 10V, por rekomandohet 4.5 V, dhe konsumi aktual i tij është 0.5mA max, kështu që është diçka për të cilën duhet pasur kujdes kur hartoni një qark preamp për të. Frekuenca e funksionimit është 20Hz deri 20kHz, e cila është perfekte për audio.

Kam zbatuar një model të thjeshtë të qarkut preamp në tabelën e bukës dhe rregullova tensionin e hyrjes, duke u siguruar që nuk kishte më shumë se 0.5mA në mikrofon. Kondensatori përdoret për të filtruar zhurmën DC që mund të bashkohet së bashku me sinjalet elektrike (dalja), dhe kondensatori ka polaritet, prandaj sigurohuni që të lidhni fundin pozitiv me kunjin dalës të mikrofonit.

Pasi qarku ishte i plotë, unë lidha daljen e qarkut me pinin e parë analog të hyrjes (AI0, kunja 2) e USB-6008, dhe lidha tokën e dërrasës së bukës me kunjën analoge të tokëzimit (GND, kunja 1). Unë e lidha USB-6008 me kompjuterin me një USB dhe ishte koha për të bërë rregullime në programin LabVIEW për të marrë një sinjal analog aktual.

Hapi 4: Leximi i sinjaleve analoge me ndihmësin DAQ

Leximi i sinjaleve analoge me ndihmësin DAQ
Leximi i sinjaleve analoge me ndihmësin DAQ
Leximi i sinjaleve analoge me ndihmësin DAQ
Leximi i sinjaleve analoge me ndihmësin DAQ

Në vend që të përdor SoundFileSimpleRead. VI dhe HarmonicDistortionAnalyzer. VI, unë përdor DAQ Assistant. VI dhe ToneMeasurements. VI për t'u marrë me hyrjen analoge. Konfigurimi i Asistentit DAQ është mjaft i drejtpërdrejtë, dhe VI vetë ju çon nëpër hapa. ToneMeasurements. VI ka shumë dalje për të zgjedhur (amplituda, frekuenca, faza), kështu që kam përdorur daljen e frekuencës e cila jep frekuencën themelore të tonit hyrës (nga DAQ Assistant. VI). Dalja e ToneMeasurements. VI duhej të konvertohej dhe të vihej në një grup para se të mund të përdorej në strukturat e rastit, por pjesa tjetër e programimit/treguesve të LabVIEW mbeti e njëjtë.

Hapi 5: Përfundimi

Përfundim
Përfundim

Projekti ishte një sukses, por patjetër që kishte shumë të meta. Kur po punoja me akorduesin në një klasë të zhurmshme, ishte shumë e vështirë për programin të përcaktonte se çfarë ishte zhurma dhe cili ishte toni që luhej. Kjo ka të ngjarë të jetë për shkak se qarku preamp është shumë themelor, dhe mikrofoni është shumë i lirë. Sidoqoftë, kur ishte e qetë, programi funksionoi me besueshmëri të mirë për të përcaktuar notën që po përpiqej të luhej. Për shkak të kufizimeve kohore, unë nuk bëra ndonjë ndryshim shtesë, por nëse do ta përsërisja projektin, do të blija një mikrofon më të mirë dhe do të kaloja më shumë kohë në qarkun preamp.

Recommended: