INHOUDSOPGAWE:

Ukelele-ontvanger met behulp van LabView en NI USB-6008: 5 stappe
Ukelele-ontvanger met behulp van LabView en NI USB-6008: 5 stappe

Video: Ukelele-ontvanger met behulp van LabView en NI USB-6008: 5 stappe

Video: Ukelele-ontvanger met behulp van LabView en NI USB-6008: 5 stappe
Video: Hoe werkt een stemapparaat? Gitaar, ukulele & basgitaar 2024, Julie
Anonim
Ukelele-ontvanger met behulp van LabView en NI USB-6008
Ukelele-ontvanger met behulp van LabView en NI USB-6008
Ukelele-ontvanger met behulp van LabView en NI USB-6008
Ukelele-ontvanger met behulp van LabView en NI USB-6008

As 'n probleem-gebaseerde leerprojek vir my LabVIEW & Instrumentation-kursus aan Humber College (Electronics Engineering Technology), het ek 'n ukulele-ontvanger geskep wat 'n analoog ingang (ukulele snaar toon) sou neem, die fundamentele frekwensie kon vind, besluit watter noot probeer om af te stem, en vertel die gebruiker of die snaar op- of afgestem moet word. Die toestel waarmee ek die analoog insette in digitale invoer vertaal het, was die National Instruments USB-6008 DAQ (data-verkrygingstoestel), en die gebruikerskoppelvlak is geïmplementeer met LabVIEW.

Stap 1: Standaard Ukelele Tuning

Standaard Ukelele Tuning
Standaard Ukelele Tuning
Standaard Ukelele Tuning
Standaard Ukelele Tuning

Die eerste stap was om uit te vind wat die basiese frekwensies van musieknote is, en in watter omvang die ukulele snare tipies ingestel is. Ek het hierdie twee kaarte gebruik en besluit dat ek my toonbereik tussen 262 Hz (C) en 494Hz (High B) sal maak. Alles wat minder as 252 Hz is, word as te laag geag vir die program om te ontsyfer watter noot probeer word, en enigiets groter as 500 Hz word as te hoog beskou. Die program vertel die gebruiker egter steeds hoeveel Hz hulle van die naaste ontsyferbare noot af is, en of die snaar moet opgestel word (noot te laag) of af (noot te hoog) om 'n beskikbare noot te bereik.

Boonop het ek reekse vir elke noot geskep, in plaas van net 'n enkele frekwensie, sodat dit vir die program makliker sou wees om te bepaal watter noot gespeel word. Byvoorbeeld, die program sal die gebruiker vertel dat 'n C gespeel word as die noot 'n fundamentele frekwensie het tussen 252 Hz (halfpad na B) en 269Hz (halfpad na C#), maar om te besluit of dit moet verstel word of laer, dit sal nog steeds die noot wat gespeel word vergelyk met die fundamentele frekwensie van C, wat 262Hz is.

Stap 2: Skep 'n suiwer digitale teoretiese model

Die skep van 'n suiwer digitale teoretiese model
Die skep van 'n suiwer digitale teoretiese model
Die skep van 'n suiwer digitale teoretiese model
Die skep van 'n suiwer digitale teoretiese model

Voordat ek in die analoog kant van die projek ingeduik het, wou ek kyk of ek 'n LabVIEW -program kon skep wat ten minste die hoofverwerking van 'n klankmonster sou doen, soos die lees van 'n klank.wav -steekproef, die basiese frekwensie vind en die vereiste vergelykings met die frekwensiekaart om vas te stel of die klank op- of afgestem moet word.

Ek het die SoundFileSimpleRead. VI gebruik wat in LabVIEW beskikbaar was om 'n.wav -lêer te lees vanaf 'n pad wat ek aangewys het, die sein in 'n geïndekseerde skikking geplaas en die sein in die HarmonicDistortionAnalyzer. VI ingevoer om die fundamentele frekwensie te vind. Ek het ook die sein van die SoundFileSimpleRead. VI geneem en dit direk in 'n golfvormkaartaanwyser gekoppel, sodat die gebruiker die golfvorm van die lêer op die voorpaneel kan sien.

Ek het 2 saakstrukture geskep: een om te analiseer watter noot gespeel word, en die ander om te bepaal of die snaar op- of afgedraai moet word. Vir die eerste geval het ek reekse vir elke noot geskep, en as die fundamentele frekwensiesin van die HarmonicDistortionAnalyzer. VI in die reeks was, sou dit die gebruiker vertel watter noot gespeel word. Sodra die noot bepaal is, is die waarde van die gespeelde noot afgetrek deur die werklike fundamentele frekwensie van die noot, en dan word die resultaat ingeskuif in die tweede geval wat die volgende bepaal: as die resultaat bo nul is, moet die string afgestel word; as die resultaat onwaar is (nie bo nul nie), kyk die saak of die waarde gelyk is aan nul, en as dit waar is, sal die program die gebruiker in kennis stel dat die noot in pas is; as die waarde nie gelyk is aan nul nie, dan beteken dit dat dit minder as nul moet wees en dat die string opgestel moet word. Ek het die absolute waarde van die resultaat geneem om die gebruiker te wys hoeveel Hz hulle van die ware noot af is.

Ek het besluit dat 'n meteraanwyser die beste sou wees om die gebruiker visueel te wys wat gedoen moet word om die noot in pas te maak.

Stap 3: Vervolgens die analoogbaan

Vervolgens die analoogbaan
Vervolgens die analoogbaan
Vervolgens die analoogbaan
Vervolgens die analoogbaan
Vervolgens die analoogbaan
Vervolgens die analoogbaan

Die mikrofoon wat ek vir hierdie projek gebruik het, is die CMA-6542PF kondensator elektretmikrofoon. Die datablad vir hierdie mikrofoon is hieronder. Anders as die meeste kondensatormikrofone van hierdie tipe, hoef ek my nie te bekommer oor polariteit nie. Die datablad toon dat die werkspanning vir hierdie mikrofoon 4,5 - 10V is, maar 4,5 V word aanbeveel, en die huidige verbruik is maksimum 0,5mA, dus is dit iets om in gedagte te hou wanneer u 'n voorversterkerkring daarvoor ontwerp. Die werkfrekwensie is 20Hz tot 20kHz, wat perfek is vir klank.

Ek het 'n eenvoudige voorversterkringontwerp op die broodbord geïmplementeer en die ingangsspanning aangepas en seker gemaak dat daar nie meer as 0,5mA oor die mikrofoon is nie. Die kondensator word gebruik om die GS -geraas wat saam met die elektriese seine (uitset) gekoppel kan word, te filter, en die kapasitor het wel polariteit, dus maak seker dat u die positiewe kant aan die mikrofoonuitgangpen koppel.

Nadat die kring voltooi is, het ek die uitset van die kring aan die eerste analoog-invoerpen (AI0, pen 2) van die USB-6008 gekoppel en die grond van die broodbord met die analoog-grondpen (GND, pen 1) verbind. Ek het die USB-6008 met 'n USB op die rekenaar gekoppel, en dit was tyd om die LabVIEW-program aan te pas om 'n werklike analoog sein in te neem.

Stap 4: Lees analoogseine met DAQ Assistant

Lees analoogseine met DAQ Assistant
Lees analoogseine met DAQ Assistant
Lees analoogseine met DAQ Assistant
Lees analoogseine met DAQ Assistant

In plaas van die SoundFileSimpleRead. VI en die HarmonicDistortionAnalyzer. VI te gebruik, het ek die DAQ Assistant. VI en ToneMeasurements. VI gebruik om die analoog insette te hanteer. Die opstelling van die DAQ Assistant is redelik eenvoudig, en die VI self neem u deur die stappe. Die ToneMeasurements. VI het baie uitsette om van te kies (amplitude, frekwensie, fase), so ek gebruik die frekwensie -uitset wat die fundamentele frekwensie van die invoertoon gee (van die DAQ Assistant. VI). Die uitset van die ToneMeasurements. VI moes omgeskakel en in 'n skikking geplaas word voordat dit in die saakstrukture gebruik kon word, maar die res van die LabVIEW -programmering/aanwysers het dieselfde gebly.

Stap 5: Gevolgtrekking

Afsluiting
Afsluiting

Die projek was 'n sukses, maar daar was beslis baie gebreke. Toe ek die tuner in 'n luidrugtige klaskamer gebruik, was dit baie moeilik vir die program om te bepaal wat geraas was en wat die toon was. Dit is waarskynlik te wyte aan die feit dat die voorversterkerkring baie basies is en dat die mikrofoon baie goedkoop is. Maar as dit stil was, het die program met goeie betroubaarheid gewerk om die noot wat probeer word gespeel te word. Weens tydsbeperkings het ek geen bykomende veranderinge aangebring nie, maar as ek die projek sou herhaal, sou ek 'n beter mikrofoon koop en meer tyd aan die voorversterkerbaan spandeer.

Aanbeveel: