Cuprins:

Tuner Ukelele folosind LabView și NI USB-6008: 5 pași
Tuner Ukelele folosind LabView și NI USB-6008: 5 pași

Video: Tuner Ukelele folosind LabView și NI USB-6008: 5 pași

Video: Tuner Ukelele folosind LabView și NI USB-6008: 5 pași
Video: Сравнение протоколов TCP и UDP 2024, Iulie
Anonim
Tuner Ukelele folosind LabView și NI USB-6008
Tuner Ukelele folosind LabView și NI USB-6008
Tuner Ukelele folosind LabView și NI USB-6008
Tuner Ukelele folosind LabView și NI USB-6008

Ca un proiect de învățare bazat pe probleme pentru cursul meu LabVIEW & Instrumentation de la Humber College (Tehnologia ingineriei electronice), am creat un tuner ukulele care să ia o intrare analogică (tonul de coardă ukulele), să găsesc frecvența fundamentală, să decid ce notă încerca pentru a fi acordat și spuneți utilizatorului dacă șirul trebuia reglat în sus sau în jos. Dispozitivul pe care l-am folosit pentru a traduce intrarea analogică în intrare digitală a fost National Instruments USB-6008 DAQ (dispozitiv de achiziție de date), iar interfața cu utilizatorul a fost implementată cu LabVIEW.

Pasul 1: Reglare standard Ukelele

Reglare standard Ukelele
Reglare standard Ukelele
Reglare standard Ukelele
Reglare standard Ukelele

Primul pas a fost să aflăm frecvențele fundamentale ale notelor muzicale și la ce gamă sunt acordate de obicei corzile ukulele. Am folosit aceste două diagrame și am decis că îmi voi face gama de tonuri între 262 Hz (C) și 494Hz (High B). Orice lucru mai mic de 252 Hz ar fi considerat prea scăzut pentru ca programul să descifreze ce notă încearcă să fie redată și orice mai mare de 500 Hz ar fi considerat prea mare. Cu toate acestea, programul îi spune utilizatorului câte Hz sunt departe de cea mai apropiată notă descifrabilă și dacă șirul ar trebui să fie acordat în sus (nota prea scăzută) sau în jos (nota prea mare) pentru a ajunge la o notă disponibilă.

În plus, am creat intervale pentru fiecare notă, mai degrabă decât o singură frecvență, astfel încât programul să fie mai ușor să afle care notă era redată. De exemplu, programul i-ar spune utilizatorului că un C este redat dacă nota are o frecvență fundamentală între 252 Hz (la jumătatea distanței până la B) și 269Hz (la jumătatea distanței până la C #), dar pentru a decide dacă trebuie să fie acordată sau în jos, ar compara în continuare nota redată cu frecvența fundamentală a lui C, care este 262Hz.

Pasul 2: Crearea unui model teoretic pur digital

Crearea unui model teoretic pur digital
Crearea unui model teoretic pur digital
Crearea unui model teoretic pur digital
Crearea unui model teoretic pur digital

Înainte de a mă scufunda în partea analogică a proiectului, am vrut să văd dacă aș putea crea un program LabVIEW care să facă cel puțin procesarea principală a unui eșantion sonor, cum ar fi citirea unui eșantion audio.wav, găsirea frecvenței fundamentale și realizarea comparațiile necesare cu graficul de frecvență pentru a afla dacă sunetul trebuie acordat în sus sau în jos.

Am folosit SoundFileSimpleRead. VI disponibil în LabVIEW pentru a citi un fișier.wav dintr-o cale pe care am desemnat-o, am pus semnalul într-o matrice indexată și am introdus semnalul respectiv în HarmonicDistortionAnalyzer. VI pentru a găsi frecvența fundamentală. De asemenea, am luat semnalul de la SoundFileSimpleRead. VI și l-am conectat direct la un indicator de diagramă a formelor de undă, astfel încât utilizatorul să poată vedea forma de undă a fișierului de pe panoul frontal.

Am creat 2 structuri de cazuri: una pentru a analiza ce notă era redată, iar cealaltă pentru a determina dacă șirul trebuia să fie ridicat sau în jos. În primul caz, am creat intervale pentru fiecare notă, iar dacă semnalul de frecvență fundamental de la HarmonicDistortionAnalyzer. VI se afla în acel interval, ar spune utilizatorului ce notă era redată. Odată ce nota a fost determinată, valoarea notei redate a fost scăzută de frecvența fundamentală efectivă a notei, iar apoi rezultatul a fost mutat în al doilea caz care a determinat următoarele: dacă rezultatul este peste zero, atunci șirul trebuie reglat; dacă rezultatul este fals (nu peste zero), atunci cazul verifică dacă valoarea este egală cu zero și, dacă este adevărat, atunci programul ar notifica utilizatorul că nota este în ton; dacă valoarea nu este egală cu zero, atunci înseamnă că trebuie să fie mai mică decât zero și că șirul trebuie reglat. Am luat valoarea absolută a rezultatului pentru a arăta utilizatorului câte Hz sunt departe de nota adevărată.

Am decis că un indicator al contorului ar fi cel mai bun pentru a arăta vizual utilizatorului ce trebuie făcut pentru ca nota să fie acordată.

Pasul 3: Apoi, Circuitul analogic

Apoi, Circuitul analogic
Apoi, Circuitul analogic
Apoi, Circuitul analogic
Apoi, Circuitul analogic
Apoi, Circuitul analogic
Apoi, Circuitul analogic

Microfonul pe care l-am folosit pentru acest proiect este microfonul electret cu condensator CMA-6542PF. Fișa tehnică pentru acest microfon este mai jos. Spre deosebire de majoritatea microfoanelor cu condensator de acest tip, nu a trebuit să-mi fac griji cu privire la polaritate. Fișa tehnică arată că tensiunea de funcționare pentru acest microfon este de 4,5 - 10V, dar se recomandă 4,5 V, iar consumul de curent este de 0,5 mA maxim, deci trebuie să aveți grijă atunci când proiectați un circuit de preamplificare pentru acesta. Frecvența de funcționare este de 20Hz până la 20kHz, ceea ce este perfect pentru sunet.

Am implementat un circuit simplu de preamplificare pe placa de panou și am ajustat tensiunea de intrare, asigurându-mă că nu există mai mult de 0,5 mA pe microfon. Condensatorul este utilizat pentru a filtra zgomotul de curent continuu care ar putea fi cuplat împreună cu semnalele electrice (ieșire), iar condensatorul are polaritate, deci asigurați-vă că conectați capătul pozitiv la pinul de ieșire al microfonului.

După finalizarea circuitului, am conectat ieșirea circuitului la primul pin de intrare analogică (AI0, pinul 2) al USB-6008 și am conectat masa solului la pinul de masă analogic (GND, pinul 1). Am conectat USB-6008 la computer cu un USB și a venit timpul să fac ajustări la programul LabVIEW pentru a prelua un semnal analogic real.

Pasul 4: Citirea semnalelor analogice cu asistentul DAQ

Citirea semnalelor analogice cu asistentul DAQ
Citirea semnalelor analogice cu asistentul DAQ
Citirea semnalelor analogice cu asistentul DAQ
Citirea semnalelor analogice cu asistentul DAQ

În loc să folosesc SoundFileSimpleRead. VI și HarmonicDistortionAnalyzer. VI, am folosit DAQ Assistant. VI și ToneMeasurements. VI pentru a trata intrarea analogică. Configurarea DAQ Assistant este destul de simplă, iar VI-ul în sine vă conduce prin pași. ToneMeasurements. VI are multe ieșiri din care să aleagă (amplitudine, frecvență, fază), așa că am folosit ieșirea de frecvență care oferă frecvența fundamentală a tonului de intrare (de la DAQ Assistant. VI). Rezultatul ToneMeasurements. VI a trebuit să fie convertit și pus într-o matrice înainte ca acesta să poată fi folosit în structurile carcasei, dar restul programării / indicatorilor LabVIEW au rămas la fel.

Pasul 5: Concluzie

Concluzie
Concluzie

Proiectul a fost un succes, dar cu siguranță au existat o mulțime de defecte. Când foloseam tunerul într-o sală de clasă zgomotoasă, pentru program era foarte greu să stabilească ce era zgomotul și care era tonul redat. Acest lucru se datorează probabil faptului că circuitul de preamplificare este foarte simplu, iar microfonul este foarte ieftin. Cu toate acestea, când a fost liniștit, programul a funcționat cu o bună fiabilitate pentru a determina nota care încerca să fie redată. Din cauza constrângerilor de timp, nu am făcut modificări suplimentare, dar dacă aș repeta proiectul, aș cumpăra un microfon mai bun și aș petrece mai mult timp pe circuitul de preamplificare.

Recomandat: