Sisukord:

Ukelele tuuner LabView ja NI USB-6008 abil: 5 sammu
Ukelele tuuner LabView ja NI USB-6008 abil: 5 sammu

Video: Ukelele tuuner LabView ja NI USB-6008 abil: 5 sammu

Video: Ukelele tuuner LabView ja NI USB-6008 abil: 5 sammu
Video: AR Drone 2.0 firmware mit Node.js programmieren (German) 2024, Juuli
Anonim
Ukelele tuuner LabView ja NI USB-6008 abil
Ukelele tuuner LabView ja NI USB-6008 abil
Ukelele tuuner LabView ja NI USB-6008 abil
Ukelele tuuner LabView ja NI USB-6008 abil

Probleemipõhise õppeprojektina oma LabVIEW & Instrumentation kursusel Humber College'is (elektroonikatehnoloogia tehnoloogia) lõin ukulele-tuuneri, mis võtaks analoogsisendi (ukulele stringtoon), leiaks põhisageduse, otsustaks, millist nooti prooviti häälestamiseks ja öelge kasutajale, kas stringi on vaja üles või alla häälestada. Seade, mida ma kasutasin analoogsisendi digitaalseks sisendiks tõlkimiseks, oli National Instruments USB-6008 DAQ (andmete kogumise seade) ja kasutajaliides rakendati LabVIEW abil.

Samm: standardne Ukelele häälestus

Standardne Ukelele häälestus
Standardne Ukelele häälestus
Standardne Ukelele häälestus
Standardne Ukelele häälestus

Esimene samm oli välja selgitada nootide põhisagedused ja see, millises vahemikus ukulelekeele tavaliselt häälestatakse. Kasutasin neid kahte graafikut ja otsustasin, et toon toon vahemikku 262 Hz (C) kuni 494 Hz (kõrge B). Kõik, mis on väiksem kui 252 Hz, loetakse liiga madalaks, et programm saaks dešifreerida, millist nooti tahetakse esitada, ja kõike, mis on suurem kui 500 Hz, liiga kõrgeks. Programm aga ütleb kasutajale endiselt, mitu Hz on nad lähimast dešifreeritavast noodist eemal ja kas string peaks olema saadaval (noot liiga madal) või alla (liiga kõrge), et saadaolevat nooti saavutada.

Lisaks lõin igale noodile vahemikud, mitte ainult ühe sageduse, nii et programmil oleks lihtsam leida, millist nooti esitatakse. Näiteks ütleks programm kasutajale, et mängitakse C -d, kui noodi põhisagedus on vahemikus 252 Hz (pool B -st) kuni 269 Hz (poole C#-ni), kuid selleks, et otsustada, kas seda on vaja häälestada või alla, võrdleks see siiski mängitavat nooti C põhisagedusega, mis on 262 Hz.

2. samm: puhtalt digitaalse teoreetilise mudeli loomine

Puhtalt digitaalse teoreetilise mudeli loomine
Puhtalt digitaalse teoreetilise mudeli loomine
Puhtalt digitaalse teoreetilise mudeli loomine
Puhtalt digitaalse teoreetilise mudeli loomine

Enne projekti analoogse poole sukeldumist tahtsin näha, kas saaksin luua LabVIEW -programmi, mis teeks vähemalt heliproovi põhitöötluse, näiteks heli.wav -näidise lugemise, põhisageduse leidmise ja nõutavad võrdlused sagedustabeliga, et teha kindlaks, kas heli tuleks üles või alla häälestada.

Kasutasin LabVIEW -s saadaolevat SoundFileSimpleRead. VI -d, et lugeda.wav -faili minu määratud teelt, panna signaal indekseeritud massiivi ja sisestada see signaal HarmonicDistortionAnalyzer. VI -sse, et leida põhisagedus. Võtsin signaali ka SoundFileSimpleRead. VI -st ja ühendasin selle otse lainekuju diagrammi indikaatoriga, et kasutaja saaks esipaneelil näha faili lainekuju.

Lõin 2 juhtumistruktuuri: ühe analüüsisin, millist nooti mängiti, ja teise, et teha kindlaks, kas stringi on vaja üles või alla keerata. Esimesel juhul lõin igale noodile vahemikud ja kui HarmonicDistortionAnalyzer. VI põhisagedussignaal oli selles vahemikus, siis ütleks see kasutajale, millist nooti mängitakse. Kui noot oli kindlaks määratud, lahutati mängitud noodi väärtus noodi tegeliku põhisagedusega ja seejärel teisaldati tulemus teisele juhtumile, mis määras järgmise: kui tulemus on üle nulli, tuleb string häälestada; kui tulemus on vale (mitte üle nulli), siis kontrollib juhtum, kas väärtus on võrdne nulliga, ja kui see on tõene, teavitab programm kasutajat, et märkus on hääles; kui väärtus ei ole võrdne nulliga, tähendab see, et see peab olema väiksem kui null ja string tuleb häälestada. Võtsin tulemuse absoluutväärtuse, et näidata kasutajale, mitu Hz nad tegelikust noodist eemal on.

Otsustasin, et arvesti näitaja on parim, et kasutajale visuaalselt näidata, mida on vaja teha, et märge häälestada.

Samm 3: Järgmisena analoogring

Järgmisena analoogring
Järgmisena analoogring
Järgmisena analoogring
Järgmisena analoogring
Järgmisena analoogring
Järgmisena analoogring

Selle projekti jaoks kasutasin mikrofoni CMA-6542PF kondensaatori elektreetmik. Selle mikrofoni andmeleht on allpool. Erinevalt enamikust seda tüüpi kondensaatormikrofonidest ei pidanud ma polaarsuse pärast muretsema. Andmeleht näitab, et selle mikrofoni tööpinge on 4,5–10 V, kuid soovitatav on 4,5 V ja selle voolutarve on maksimaalselt 0,5 mA, nii et selle eelvõimendusahela kujundamisel tuleb olla ettevaatlik. Töösagedus on 20 Hz kuni 20 kHz, mis sobib suurepäraselt heli jaoks.

Rakendasin leivalauale lihtsa eelvõimendi skeemi ja reguleerisin sisendpinget, veendudes, et mikrofoni ei oleks rohkem kui 0,5 mA. Kondensaatorit kasutatakse alalisvoolu müra filtreerimiseks, mis võib olla ühendatud koos elektrisignaalidega (väljund), ja kondensaatoril on polaarsus, nii et ühendage kindlasti positiivne ots mikrofoni väljundpoldiga.

Pärast vooluahela lõpuleviimist ühendasin ahela väljundi USB-6008 esimese analoogsisendiga (AI0, tihvt 2) ja ühendasin leivaplaadi maanduse analoogmaandusnõelaga (GND, tihvt 1). Ühendasin USB-6008 USB-ga arvutiga ja oli aeg LabVIEW programmi kohandada, et võtta vastu tegelik analoogsignaal.

Samm: analoogsignaalide lugemine DAQ assistendiga

Analoogsignaalide lugemine DAQ assistendiga
Analoogsignaalide lugemine DAQ assistendiga
Analoogsignaalide lugemine DAQ assistendiga
Analoogsignaalide lugemine DAQ assistendiga

Selle asemel, et kasutada SoundFileSimpleRead. VI ja HarmonicDistortionAnalyzer. VI, kasutasin analoogsisendi käsitlemiseks DAQ Assistant. VI ja ToneMeasurements. VI. DAQ assistendi seadistamine on üsna lihtne ja VI ise juhatab teid samme. ToneMeasurements. VI -l on palju väljundeid, mille hulgast valida (amplituud, sagedus, faas), seega kasutasin sagedusväljundit, mis annab sisendtooni põhisageduse (DAQ Assistant. VI). ToneMeasurements. VI väljund tuli teisendada ja panna massiiviks, enne kui seda sai juhtumistruktuurides kasutada, kuid ülejäänud LabVIEW programmeerimine/indikaatorid jäid samaks.

5. samm: järeldus

Järeldus
Järeldus

Projekt oli edukas, kuid kindlasti oli palju vigu. Kui kasutasin tuunerit mürarikkas klassiruumis, oli programmil väga raske kindlaks teha, mis on müra ja milline on mängitav toon. See on tõenäoliselt tingitud sellest, et eelvõimendi ahel on väga lihtne ja mikrofon on väga odav. Kui aga oli vaikne, töötas programm hea usaldusväärsusega, et teha kindlaks noot, mida üritati esitada. Ajapiirangute tõttu ei teinud ma täiendavaid muudatusi, kuid kui ma peaksin projekti kordama, ostaksin parema mikrofoni ja kulutaksin rohkem aega eelvõimendi vooluringile.

Soovitan: