Obsah:

Ukelele tuner pomocí LabView a NI USB-6008: 5 kroků
Ukelele tuner pomocí LabView a NI USB-6008: 5 kroků

Video: Ukelele tuner pomocí LabView a NI USB-6008: 5 kroků

Video: Ukelele tuner pomocí LabView a NI USB-6008: 5 kroků
Video: Jak naladit ukulele 2024, Červenec
Anonim
Ukelele tuner pomocí LabView a NI USB-6008
Ukelele tuner pomocí LabView a NI USB-6008
Ukelele tuner pomocí LabView a NI USB-6008
Ukelele tuner pomocí LabView a NI USB-6008

Jako učební projekt založený na problémech pro můj kurz LabVIEW & Instrumentation na Humber College (Electronics Engineering Technology) jsem vytvořil tuner ukulele, který by převzal analogový vstup (tón řetězce ukulele), našel základní frekvenci a rozhodl, o jakou notu se pokouší naladit a sdělit uživateli, zda je třeba řetězec naladit nahoru nebo dolů. Zařízení, které jsem použil k převodu analogového vstupu na digitální vstup, bylo National Instruments USB-6008 DAQ (zařízení pro sběr dat) a uživatelské rozhraní bylo implementováno pomocí LabVIEW.

Krok 1: Standardní ladění ukelele

Standardní ladění ukelele
Standardní ladění ukelele
Standardní ladění ukelele
Standardní ladění ukelele

Prvním krokem bylo zjištění základních frekvencí hudebních not a toho, v jakém rozsahu jsou struny ukulele obvykle naladěny. Použil jsem tyto dva grafy a rozhodl jsem se, že svůj rozsah tónů nastavím mezi 262 Hz (C) a 494 Hz (High B). Cokoli menší než 252 Hz by bylo považováno za příliš nízké na to, aby program rozluštil notu, kterou se pokoušel zahrát, a cokoli většího než 500 Hz by bylo považováno za příliš vysoké. Program však uživateli stále říká, kolik Hz jsou mimo nejbližší dešifrovatelnou notu, a pokud by měl být řetězec naladěn nahoru (příliš nízká nota) nebo dolů (příliš vysoká nota), aby dosáhl dostupné noty.

Navíc jsem pro každou notu vytvořil rozsahy, nikoli jen jednu frekvenci, aby bylo pro program jednodušší najít, která nota se hraje. Program by například sdělil uživateli, že se hraje C, pokud by nota měla základní frekvenci mezi 252 Hz (na půli cesty k B) a 269 Hz (na půli cesty k C#), ale aby se rozhodl, zda je třeba ji vyladit nebo dolů, stále by to srovnávalo přehrávanou notu se základní frekvencí C, která je 262 Hz.

Krok 2: Vytvoření čistě digitálního teoretického modelu

Vytvoření čistě digitálního teoretického modelu
Vytvoření čistě digitálního teoretického modelu
Vytvoření čistě digitálního teoretického modelu
Vytvoření čistě digitálního teoretického modelu

Než se ponořím do analogové stránky projektu, chtěl jsem zjistit, zda bych mohl vytvořit program LabVIEW, který by přinejmenším provedl hlavní zpracování zvukové ukázky, jako je čtení zvukové ukázky.wav, nalezení základní frekvence a vytvoření požadovaná srovnání s frekvenčním grafem, aby se zjistilo, zda má být zvuk naladěn nahoru nebo dolů.

Použil jsem SoundFileSimpleRead. VI dostupný v LabVIEW ke čtení souboru.wav z cesty, kterou jsem určil, vložil signál do indexovaného pole a přivedl tento signál do HarmonicDistortionAnalyzer. VI, abych našel základní frekvenci. Také jsem vzal signál z SoundFileSimpleRead. VI a připojil jej přímo k indikátoru křivky grafu, aby uživatel viděl průběh souboru na předním panelu.

Vytvořil jsem 2 případové struktury: jednu analyzovat, jaká nota se hraje, a druhou, abych určil, zda je třeba strunu otočit nahoru nebo dolů. V prvním případě jsem pro každou notu vytvořil rozsahy a pokud by byl základní frekvenční signál z HarmonicDistortionAnalyzer. VI v tomto rozsahu, řekl by uživateli, jaká nota se hraje. Jakmile byla nota určena, byla hodnota odehrané noty odečtena skutečnou základní frekvencí noty a poté byl výsledek přesunut do druhého případu, který určoval následující: pokud je výsledek nad nulou, pak je třeba strunu doladit; pokud je výsledek nepravdivý (ne nad nulou), pak případ zkontroluje, zda je hodnota rovna nule, a pokud je pravdivý, pak program upozorní uživatele, že nota je v souladu; pokud se hodnota nerovná nule, pak to znamená, že musí být menší než nula a že řetězec je třeba vyladit. Vzal jsem absolutní hodnotu výsledku, abych uživateli ukázal, kolik Hz jsou mimo skutečnou notu.

Rozhodl jsem se, že indikátor metru bude nejlepší k tomu, aby uživateli vizuálně ukázal, co je třeba udělat, aby byla poznámka v souladu.

Krok 3: Další, analogový obvod

Dále analogový obvod
Dále analogový obvod
Dále analogový obvod
Dále analogový obvod
Dále analogový obvod
Dále analogový obvod

Mikrofon, který jsem pro tento projekt použil, je kondenzátorový elektretový mikrofon CMA-6542PF. Datasheet k tomuto mikrofonu je níže. Na rozdíl od většiny kondenzátorových mikrofonů tohoto typu jsem se nemusel starat o polaritu. Datový list ukazuje, že provozní napětí pro tento mikrofon je 4,5 - 10 V, ale doporučuje se 4,5 V a jeho proudová spotřeba je max. 0,5 mA, na což je třeba při návrhu obvodu předzesilovače dávat pozor. Pracovní frekvence je 20 Hz až 20 kHz, což je ideální pro zvuk.

Implementoval jsem jednoduchý návrh obvodu předzesilovače na prkénko a upravil vstupní napětí, přičemž jsem se ujistil, že přes mikrofon není více než 0,5 mA. Kondenzátor se používá k filtrování stejnosměrného šumu, který může být spojen s elektrickými signály (výstup), a kondenzátor má polaritu, takže nezapomeňte připojit kladný konec k výstupnímu kolíku mikrofonu.

Poté, co byl obvod dokončen, připojil jsem výstup obvodu k prvnímu analogovému vstupnímu pinu (AI0, pin 2) USB-6008 a připojil jsem uzemnění nepájivého pole k analogovému zemnicímu pinu (GND, pin 1). Připojil jsem USB-6008 k počítači pomocí USB a bylo na čase provést úpravy programu LabVIEW tak, aby přijímal skutečný analogový signál.

Krok 4: Čtení analogových signálů pomocí DAQ Assistant

Čtení analogových signálů pomocí DAQ Assistant
Čtení analogových signálů pomocí DAQ Assistant
Čtení analogových signálů pomocí DAQ Assistant
Čtení analogových signálů pomocí DAQ Assistant

Místo toho, abych použil SoundFileSimpleRead. VI a HarmonicDistortionAnalyzer. VI, použil jsem DAQ Assistant. VI a ToneMeasurements. VI k řešení analogového vstupu. Nastavení DAQ Assistant je poměrně jednoduché a VI vás provede jednotlivými kroky. ToneMeasurements. VI má na výběr mnoho výstupů (amplituda, frekvence, fáze), takže jsem použil frekvenční výstup, který udává základní frekvenci vstupního tónu (z DAQ Assistant. VI). Výstup ToneMeasurements. VI musel být převeden a vložen do pole, než mohl být použit ve strukturách případu, ale zbytek programování/indikátorů LabVIEW zůstal stejný.

Krok 5: Závěr

Závěr
Závěr

Projekt byl úspěšný, ale rozhodně zde bylo mnoho nedostatků. Když jsem provozoval tuner v hlučné třídě, bylo pro program velmi těžké určit, co je hluk a jaký tón se hraje. To je pravděpodobně způsobeno tím, že obvod předzesilovače je velmi základní a mikrofon je velmi levný. Když bylo ticho, program pracoval s dobrou spolehlivostí, aby určil notu, která se pokoušela hrát. Kvůli časové tísni jsem neprováděl žádné další změny, ale kdybych měl projekt opakovat, koupil bych si lepší mikrofon a strávil bych více času na obvodu předzesilovače.

Doporučuje: