Tartalomjegyzék:

Ukelele Tuner a LabView és az NI USB-6008 használatával: 5 lépés
Ukelele Tuner a LabView és az NI USB-6008 használatával: 5 lépés

Videó: Ukelele Tuner a LabView és az NI USB-6008 használatával: 5 lépés

Videó: Ukelele Tuner a LabView és az NI USB-6008 használatával: 5 lépés
Videó: University of Arizona - AME487 - Ukulele tuner project 2024, Július
Anonim
Ukelele Tuner LabView és NI USB-6008 használatával
Ukelele Tuner LabView és NI USB-6008 használatával
Ukelele Tuner LabView és NI USB-6008 használatával
Ukelele Tuner LabView és NI USB-6008 használatával

Probléma-alapú tanulási projektként a Humber College (Electronics Engineering Technology) LabVIEW & Instrumentation tanfolyamán létrehoztam egy ukulele tunert, amely analóg bemenetet (ukulele karakterlánc hangot) vesz fel, megtalálja az alapvető frekvenciát, eldönti, milyen hangot próbál hangolni kell, és mondja meg a felhasználónak, hogy a karakterláncot felfelé vagy lefelé kell -e hangolni. Az analóg bemenet digitális bemenetre való lefordítására használt eszköz a National Instruments USB-6008 DAQ (adatgyűjtő eszköz) volt, és a felhasználói felületet a LabVIEW segítségével valósították meg.

1. lépés: Standard Ukelele hangolás

Standard Ukelele hangolás
Standard Ukelele hangolás
Standard Ukelele hangolás
Standard Ukelele hangolás

Az első lépés az volt, hogy megtudjuk a zenei hangok alapvető frekvenciáit, és azt, hogy az ukulele húrok milyen tartományban vannak hangolva. Ezt a két diagramot használtam, és úgy döntöttem, hogy a hangszíntartományomat 262 Hz (C) és 494 Hz (magas B) között teszem. A 252 Hz -nél kisebb értéket túl alacsonynak kell tekinteni ahhoz, hogy a program megfejtse, milyen hangot próbálnak lejátszani, és az 500 Hz -nél nagyobbat túl magasnak. A program azonban továbbra is megmondja a felhasználónak, hogy hány Hz -re van a legközelebbi megfejthető hangtól, és hogy a karakterláncot felfelé (túl alacsony hang) vagy lefelé (túl magas) kell hangolni, hogy elérje a rendelkezésre álló hangot.

Ezenkívül minden egyes hanghoz tartományokat hoztam létre, nem pedig egyetlen frekvenciát, hogy a program könnyebben megtalálhassa a lejátszott hangot. Például a program közölné a felhasználóval, hogy C -t játszik le, ha a hang alapfrekvenciája 252 Hz (félig B) és 269 Hz (félig C#) között van, de azért, hogy eldöntse, szükséges -e hangolni vagy lefelé, akkor is a játszott hangot hasonlítaná a C alapfrekvenciájához, amely 262 Hz.

2. lépés: Tisztán digitális elméleti modell létrehozása

Tisztán digitális elméleti modell létrehozása
Tisztán digitális elméleti modell létrehozása
Tisztán digitális elméleti modell létrehozása
Tisztán digitális elméleti modell létrehozása

Mielőtt belevetném magam a projekt analóg oldalába, meg akartam nézni, hogy tudok -e létrehozni egy LabVIEW programot, amely legalább elvégzi a hangminta fő feldolgozását, például elolvas egy audio.wav mintát, megtalálja az alapvető frekvenciát és a szükséges összehasonlításokat a frekvenciatáblával annak megállapításához, hogy a hangot felfelé vagy lefelé kell hangolni.

A LabVIEW -ban elérhető SoundFileSimpleRead. VI -val egy.wav fájlt olvastam az általam kijelölt útvonalról, a jelet egy indexelt tömbbe helyeztem, és ezt a jelet a HarmonicDistortionAnalyzer. VI -be töltöttem, hogy megtaláljam az alapvető frekvenciát. A jelet a SoundFileSimpleRead. VI -ból is vettem, és közvetlenül egy hullámforma diagram -jelzőhöz csatlakoztattam, hogy a felhasználó láthassa a fájl hullámformáját az előlapon.

Létrehoztam 2 esetszerkezetet: az egyiket annak elemzésére, hogy melyik hangot játsszák le, a másikat pedig annak meghatározására, hogy fel kell -e fordítani a karakterláncot. Az első esetben minden hangjegyhez tartományokat hoztam létre, és ha a HarmonicDistortionAnalyzer. VI alapfrekvenciás jele ebben a tartományban volt, akkor megmondja a felhasználónak, hogy milyen hangot játszik le. A hang meghatározása után a lejátszott hang értékét kivontuk a hang tényleges alapfrekvenciájából, majd az eredményt áthelyeztük a második esetbe, amely a következőket határozta meg: ha az eredmény nulla felett van, akkor a karakterláncot le kell hangolni; ha az eredmény hamis (nem nulla feletti), akkor az eset ellenőrzi, hogy az érték nulla -e, és ha igaz, akkor a program értesíti a felhasználót, hogy a jegyzet összhangban van; ha az érték nem egyenlő nullával, akkor ez azt jelenti, hogy nullánál kisebbnek kell lennie, és a karakterláncot fel kell hangolni. Az eredmény abszolút értékét vettem, hogy megmutassam a felhasználónak, hogy hány Hz -re vannak a valódi hangtól.

Úgy döntöttem, hogy a mérőmutató lenne a legjobb, ha vizuálisan megmutatná a felhasználónak, mit kell tennie a jegyzet hangolásához.

3. lépés: Ezután az analóg áramkör

Ezután az analóg áramkör
Ezután az analóg áramkör
Ezután az analóg áramkör
Ezután az analóg áramkör
Ezután az analóg áramkör
Ezután az analóg áramkör

A projekthez használt mikrofon a CMA-6542PF kondenzátor elektret mikrofon. Ennek a mikrofonnak az adatlapja az alábbiakban található. A legtöbb ilyen típusú kondenzátor mikrofonnal ellentétben nem kellett aggódnom a polaritás miatt. Az adatlap azt mutatja, hogy ennek a mikrofonnak az üzemi feszültsége 4,5 - 10 V, de 4,5 V ajánlott, és az áramfelvétele legfeljebb 0,5 mA, ezért óvatosnak kell lennie, amikor előerősítő áramkört tervez hozzá. A működési frekvencia 20 Hz és 20 kHz között van, ami tökéletes hangzáshoz.

Egy egyszerű előerősítő áramkört terveztem a kenyértáblán, és beállítottam a bemeneti feszültséget, ügyelve arra, hogy a mikrofonon ne legyen több, mint 0,5 mA. A kondenzátor az egyenáramú zaj szűrésére szolgál, amely összekapcsolható az elektromos jelekkel (kimenet), és a kondenzátor polaritással rendelkezik, ezért feltétlenül csatlakoztassa a pozitív végét a mikrofon kimeneti tüskéjéhez.

Miután az áramkör befejeződött, az áramkör kimenetét az USB-6008 első analóg bemeneti érintkezőjéhez (AI0, 2. tű) csatlakoztattam, és a kenyérsütő lap földjét az analóg földelőcsaphoz (GND, 1. tű). Csatlakoztattam az USB-6008-at a PC-hez USB-vel, és itt az ideje, hogy módosítsam a LabVIEW programot, hogy valódi analóg jelet vegyenek fel.

4. lépés: Analóg jelek olvasása a DAQ Assistant segítségével

Analóg jelek olvasása a DAQ Assistant segítségével
Analóg jelek olvasása a DAQ Assistant segítségével
Analóg jelek olvasása a DAQ Assistant segítségével
Analóg jelek olvasása a DAQ Assistant segítségével

A SoundFileSimpleRead. VI és a HarmonicDistortionAnalyzer. VI használata helyett a DAQ Assistant. VI -t és a ToneMeasurements. VI -t használtam az analóg bemenet kezelésére. A DAQ Assistant beállítása meglehetősen egyszerű, és maga a VI végigvezeti a lépéseken. A ToneMeasurements. VI számos kimenet közül választhat (amplitúdó, frekvencia, fázis), ezért a frekvenciakimenetet használtam, amely megadja a bemeneti hang alapvető frekvenciáját (a DAQ Assistant. VI -ból). A ToneMeasurements. VI kimenetét át kellett alakítani és tömbbe kell helyezni, mielőtt használni lehetne a tokstruktúrákban, de a többi LabVIEW programozás/mutató változatlan maradt.

5. lépés: Következtetés

Következtetés
Következtetés

A projekt sikeres volt, de határozottan sok hiba volt. Amikor a hangolót zajos osztályteremben működtettem, a programnak nagyon nehéz volt meghatározni, hogy mi a zaj és mi a hang. Ez valószínűleg annak köszönhető, hogy az előerősítő áramköre nagyon egyszerű, és a mikrofon nagyon olcsó. Amikor azonban csendes volt, a program jó megbízhatósággal dolgozott azon, hogy meghatározza a lejátszani kívánt hangot. Az idő szűkössége miatt nem hajtottam végre további változtatásokat, de ha megismételném a projektet, vásárolnék egy jobb mikrofont, és több időt töltenék az előerősítő áramkörön.

Ajánlott: