Kazalo:

Ukelele sprejemnik z uporabo LabView in NI USB-6008: 5 korakov
Ukelele sprejemnik z uporabo LabView in NI USB-6008: 5 korakov

Video: Ukelele sprejemnik z uporabo LabView in NI USB-6008: 5 korakov

Video: Ukelele sprejemnik z uporabo LabView in NI USB-6008: 5 korakov
Video: Тайна Великой Китайской Стены 2024, Julij
Anonim
Ukelele sprejemnik z uporabo LabView in NI USB-6008
Ukelele sprejemnik z uporabo LabView in NI USB-6008
Ukelele sprejemnik z uporabo LabView in NI USB-6008
Ukelele sprejemnik z uporabo LabView in NI USB-6008

Kot projekt učenja na podlagi problemov za moj tečaj LabVIEW & Instrumentation na Humber College (Tehnika elektronike) sem ustvaril ukulele sprejemnik, ki bi vzel analogni vhod (ton niza ukulele), poiskal osnovno frekvenco in se odločil, katera nota se trudi za nastavitev in povejte uporabniku, ali je treba niz nastaviti navzgor ali navzdol. Naprava, ki sem jo uporabil za prevajanje analognega vhoda v digitalni vhod, je bil National Instruments USB-6008 DAQ (naprava za pridobivanje podatkov), uporabniški vmesnik pa je bil implementiran z LabVIEW.

Korak: Standardno uglaševanje Ukelele

Standardna nastavitev Ukelele
Standardna nastavitev Ukelele
Standardna nastavitev Ukelele
Standardna nastavitev Ukelele

Prvi korak je bil ugotoviti temeljne frekvence glasbenih not in v kakšnem območju so običajno uglašene godbe ukulele. Uporabil sem ti dve lestvici in se odločil, da bom svoj ton nastavil med 262 Hz (C) in 494Hz (High B). Vse, kar je manjše od 252 Hz, bi se štelo za prenizko, da bi program lahko dešifriral, katero noto so poskušali odigrati, vse, kar je večje od 500 Hz, pa za previsoko. Program pa uporabniku še vedno pove, koliko Hz je oddaljen od najbližje razčlenjene note in ali je treba niz prilagoditi (nota prenizko) ali navzdol (nota previsoko), da doseže razpoložljivo noto.

Poleg tega sem ustvaril obsege za vsako noto in ne le za eno frekvenco, tako da bi program lažje ugotovil, katera nota se predvaja. Na primer, program bi uporabniku povedal, da se predvaja C, če ima nota osnovno frekvenco med 252 Hz (na pol poti do B) in 269Hz (na pol poti do C#), vendar da bi se odločil, ali jo je treba nastaviti ali navzdol, bi še vedno primerjali predvajano noto s temeljno frekvenco C, ki je 262Hz.

2. korak: Ustvarjanje povsem digitalnega teoretičnega modela

Ustvarjanje povsem digitalnega teoretičnega modela
Ustvarjanje povsem digitalnega teoretičnega modela
Ustvarjanje povsem digitalnega teoretičnega modela
Ustvarjanje povsem digitalnega teoretičnega modela

Preden sem se potopil v analogno stran projekta, sem želel preveriti, ali bi lahko ustvaril program LabVIEW, ki bi vsaj opravil glavno obdelavo zvočnega vzorca, na primer branje zvočnega vzorca.wav, iskanje osnovne frekvence in ustvarjanje potrebne primerjave s frekvenčnim grafikonom, da ugotovimo, ali je treba zvok nastaviti navzgor ali navzdol.

Uporabil sem SoundFileSimpleRead. VI, ki je na voljo v LabVIEW -u, da sem prebral datoteko.wav s poti, ki sem jo določil, dal signal v indeksirano matriko in ta signal vložil v HarmonicDistortionAnalyzer. VI, da bi našel osnovno frekvenco. Prav tako sem vzel signal iz SoundFileSimpleRead. VI in ga priključil neposredno v indikator grafikona valovne oblike, tako da lahko uporabnik vidi valovno obliko datoteke na sprednji plošči.

Ustvaril sem 2 strukturi primerov: eno za analizo nota, ki se predvaja, in drugo za ugotavljanje, ali je treba niz obrniti navzgor ali navzdol. V prvem primeru sem ustvaril obsege za vsako noto, in če je bil osnovni frekvenčni signal iz HarmonicDistortionAnalyzer. VI v tem območju, bi uporabniku povedal, katero noto predvaja. Ko je bila nota določena, je bila odigrana nota odšteta za njeno dejansko osnovno frekvenco, nato pa je bil rezultat premaknjen v drugi primer, ki je določil naslednje: če je rezultat nad ničlo, je treba niz znižati; če je rezultat napačen (ne nad ničlo), potem primer preveri, ali je vrednost enaka nič, in če je res, potem program obvesti uporabnika, da je nota usklajena; če vrednost ni enaka nič, potem to pomeni, da mora biti manjša od nič in da je treba niz nastaviti. Vzel sem absolutno vrednost rezultata, da uporabniku pokažem, koliko Hz je oddaljenih od prave note.

Odločil sem se, da bo kazalnik števca najboljši, da uporabniku vizualno pokaže, kaj je treba narediti, da bo opomba usklajena.

3. korak: Nato analogno vezje

Nato analogno vezje
Nato analogno vezje
Nato analogno vezje
Nato analogno vezje
Nato analogno vezje
Nato analogno vezje

Mikrofon, ki sem ga uporabil za ta projekt, je kondenzatorski elektronski mikrofon CMA-6542PF. Podatkovni list za ta mikrofon je spodaj. Za razliko od večine tovrstnih kondenzatorskih mikrofonov mi ni bilo treba skrbeti za polarnost. Podatkovni list prikazuje, da je obratovalna napetost tega mikrofona 4,5 - 10 V, vendar je priporočljivo 4,5 V, njegova trenutna poraba pa je največ 0,5 mA, zato je treba pri načrtovanju vezja predojačevalnika zanj paziti. Delovna frekvenca je 20Hz do 20kHz, kar je kot nalašč za zvok.

Izvedel sem preprosto zasnovo vezja predojačevalnika na plošči in prilagodil vhodno napetost, pri čemer sem pazil, da na mikrofonu ni več kot 0,5 mA. Kondenzator se uporablja za filtriranje enosmernega hrupa, ki je lahko povezan skupaj z električnimi signali (izhod), kondenzator pa ima polarnost, zato pozitivni konec priključite na izhodni zatič mikrofona.

Ko je bilo vezje končano, sem priključil izhod vezja na prvi analogni vhodni pin (AI0, pin 2) USB-6008 in ozemljitev matične plošče priključil na analogni ozemljitveni pin (GND, pin 1). USB-6008 sem priključil na računalnik z USB-jem in čas je bil, da prilagodim program LabVIEW, da sprejme dejanski analogni signal.

4. korak: branje analognih signalov s pomočnikom DAQ

Branje analognih signalov s pomočnikom DAQ
Branje analognih signalov s pomočnikom DAQ
Branje analognih signalov s pomočnikom DAQ
Branje analognih signalov s pomočnikom DAQ

Namesto SoundFileSimpleRead. VI in HarmonicDistortionAnalyzer. VI sem za analogni vhod uporabil DAQ Assistant. VI in ToneMeasurements. VI. Nastavitev pomočnika DAQ je dokaj preprosta, sam VI pa vas vodi skozi korake. ToneMeasurements. VI lahko izbira med številnimi izhodi (amplituda, frekvenca, faza), zato sem uporabil frekvenčni izhod, ki daje osnovno frekvenco vhodnega tona (iz DAQ Assistant. VI). Izhod ToneMeasurements. VI je bilo treba pretvoriti in vnesti v matriko, preden se je lahko uporabil v strukturah primerov, vendar so ostali programi/kazalniki LabVIEW ostali enaki.

5. korak: Zaključek

Zaključek
Zaključek

Projekt je bil uspešen, vsekakor pa je bilo veliko pomanjkljivosti. Ko sem upravljal uglaševalnik v hrupni učilnici, je bilo programu zelo težko določiti, kaj je hrup in kakšen ton se predvaja. To je verjetno posledica zelo osnovnega vezja predojačevalnika in zelo poceni mikrofona. Ko je bilo tiho, pa je program z dobro zanesljivostjo določil noto, ki jo je bilo treba igrati. Zaradi časovnih omejitev nisem naredil nobenih dodatnih sprememb, če pa bi ponovil projekt, bi kupil boljši mikrofon in porabil več časa za vezje predojačevalnika.

Priporočena: