Tartalomjegyzék:
- 1. lépés: Standard Ukelele hangolás
- 2. lépés: Tisztán digitális elméleti modell létrehozása
- 3. lépés: Ezután az analóg áramkör
- 4. lépés: Analóg jelek olvasása a DAQ Assistant segítségével
- 5. lépés: Következtetés
Videó: Ukelele Tuner a LabView és az NI USB-6008 használatával: 5 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
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
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
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
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
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
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:
A gyorsulás felügyelete a Raspberry Pi és az AIS328DQTR használatával Python használatával: 6 lépés
A gyorsulás nyomon követése a Raspberry Pi és az AIS328DQTR használatával Python használatával: A gyorsulás véges, azt hiszem, a fizika egyes törvényei szerint.- Terry Riley A gepárd elképesztő gyorsulást és gyors sebességváltozásokat használ üldözés közben. A leggyorsabb lény a parton időnként kihasználja csúcssebességét a zsákmány elkapására. Az
Neopixel Ws2812 Rainbow LED izzás M5stick-C - Szivárvány futtatása a Neopixel Ws2812 készüléken az M5stack M5stick C használatával Arduino IDE használatával: 5 lépés
Neopixel Ws2812 Rainbow LED izzás M5stick-C | Szivárvány futása a Neopixel Ws2812-en az M5stack M5stick C használatával Arduino IDE használatával: Sziasztok, srácok, ebben az oktatási útmutatóban megtanuljuk, hogyan kell használni a neopixel ws2812 LED-eket, vagy led szalagot vagy led mátrixot vagy led gyűrűt m5stack m5stick-C fejlesztőtáblával Arduino IDE-vel, és elkészítjük szivárványos mintát vele
RF 433MHZ rádióvezérlés HT12D HT12E használatával - Rf távirányító készítése HT12E és HT12D használatával 433 MHz -en: 5 lépés
RF 433MHZ rádióvezérlés HT12D HT12E használatával | Rf távirányító létrehozása HT12E és HT12D használatával 433 MHz -en: Ebben az oktatóanyagban megmutatom, hogyan készítsünk RADIO távirányítót a 433 MHz -es adó vevőmodul használatával HT12E kódolással & HT12D dekódoló IC. Ebben az utasításban nagyon olcsó komponenseket küldhet és fogadhat, mint például: HT
Vezeték nélküli távirányító 2,4 GHz -es NRF24L01 modul használatával Arduino - Nrf24l01 4 csatorna / 6 csatornás adó vevő négykópás - Rc Helikopter - Rc sík az Arduino használatával: 5 lépés (képekkel)
Vezeték nélküli távirányító 2,4 GHz -es NRF24L01 modul használatával Arduino | Nrf24l01 4 csatorna / 6 csatornás adó vevő négykópás | Rc Helikopter | Rc sík Arduino használatával: Rc autó működtetése | Quadcopter | Drone | RC sík | RC csónak, mindig szükségünk van vevőre és adóra, tegyük fel, hogy az RC QUADCOPTER esetében szükségünk van egy 6 csatornás adóra és vevőre, és az ilyen típusú TX és RX túl költséges, ezért készítünk egyet
Barkács EKG analóg felfedezés 2 és LabVIEW használatával: 8 lépés
Barkács EKG analóg felfedezés 2 és LabVIEW használatával: Ebben az utasításban megmutatom, hogyan készíthet házi elektrokardiográfot (EKG). Ennek a gépnek a célja a szív által létrehozott természetes elektromos potenciál felerősítése, mérése és rögzítése. Az EKG rengeteg információt tárhat fel a