Turinys:

„Ukelele Tuner“naudojant „LabView“ir NI USB-6008: 5 žingsniai
„Ukelele Tuner“naudojant „LabView“ir NI USB-6008: 5 žingsniai

Video: „Ukelele Tuner“naudojant „LabView“ir NI USB-6008: 5 žingsniai

Video: „Ukelele Tuner“naudojant „LabView“ir NI USB-6008: 5 žingsniai
Video: The Rose Song - Olivia Rodrigo - Ukulele Tutorial (with Closed Captions and Subtitles) @TeacherBob 2024, Liepa
Anonim
„Ukelele“imtuvas naudojant „LabView“ir NI USB-6008
„Ukelele“imtuvas naudojant „LabView“ir NI USB-6008
„Ukelele“imtuvas naudojant „LabView“ir NI USB-6008
„Ukelele“imtuvas naudojant „LabView“ir NI USB-6008

Kaip probleminis mokymosi projektas, skirtas mano „LabVIEW & Instrumentation“kursui Humbero koledže (Elektronikos inžinerijos technologija), sukūriau „Ukulele“imtuvą, kuris imtų analoginį įėjimą (ukulelės stygos toną), surastų pagrindinį dažnį ir nuspręstų, kokia pastaba buvo bandoma turi būti suderinta ir pasakykite vartotojui, ar eilutę reikia sureguliuoti aukštyn ar žemyn. Prietaisas, kurį naudoju analoginiam įėjimui išversti į skaitmeninį įėjimą, buvo „National Instruments USB-6008 DAQ“(duomenų surinkimo įrenginys), o vartotojo sąsaja buvo įdiegta naudojant „LabVIEW“.

1 žingsnis: standartinis Ukelele derinimas

Standartinis Ukelele derinimas
Standartinis Ukelele derinimas
Standartinis Ukelele derinimas
Standartinis Ukelele derinimas

Pirmasis žingsnis buvo išsiaiškinti pagrindinius muzikos natų dažnius ir tai, kokiame diapazone paprastai derinamos ukulelės stygos. Aš naudoju šias dvi diagramas ir nusprendžiau, kad tonų diapazonas bus nuo 262 Hz (C) iki 494 Hz (aukštas B). Viskas, kas mažesnė nei 252 Hz, būtų laikoma per maža, kad programa galėtų iššifruoti, kokia nata buvo bandoma groti, o viskas, kas didesnė nei 500 Hz, būtų laikoma per aukšta. Tačiau programa vis tiek nurodo vartotojui, kiek Hz jie yra nutolę nuo artimiausios iššifruojamos natos, ir ar eilutė turėtų būti sureguliuota aukštyn (per maža) arba žemyn (per aukšta), kad pasiektų turimą natą.

Be to, sukūriau kiekvienos natos diapazonus, o ne tik vieną dažnį, kad programai būtų lengviau rasti grojamą natą. Pvz., Programa vartotojui pasakytų, kad groja C, jei natos pagrindinis dažnis yra nuo 252 Hz (iki B) ir 269 Hz (pusiaukelėje iki C#), tačiau tam, kad nuspręstų, ar reikia jį sureguliuoti arba žemyn, jis vis tiek palygintų grojamą natą su pagrindiniu C dažniu, kuris yra 262 Hz.

2 žingsnis: sukurkite grynai skaitmeninį teorinį modelį

Grynai skaitmeninio teorinio modelio kūrimas
Grynai skaitmeninio teorinio modelio kūrimas
Grynai skaitmeninio teorinio modelio kūrimas
Grynai skaitmeninio teorinio modelio kūrimas

Prieš pasinerdamas į analoginę projekto pusę, norėjau sužinoti, ar galėčiau sukurti „LabVIEW“programą, kuri bent jau atliktų pagrindinį garso mėginio apdorojimą, pvz., Skaitytų garso.wav pavyzdį, surastų pagrindinį dažnį ir reikiamus palyginimus su dažnių diagrama, kad sužinotumėte, ar garsas turėtų būti sureguliuotas aukštyn ar žemyn.

Naudodavau „SoundVIEWSIMpleRead. VI“, prieinamą „LabVIEW“, kad perskaityčiau.wav failą iš mano nurodyto kelio, įdėjau signalą į indeksuotą masyvą ir padaviau tą signalą į „HarmonicDistortionAnalyzer. VI“, kad surastų pagrindinį dažnį. Aš taip pat paėmiau signalą iš „SoundFileSimpleRead. VI“ir prijungiau jį tiesiai prie bangų formos diagramos indikatoriaus, kad vartotojas galėtų matyti failo bangos formą priekiniame skydelyje.

Aš sukūriau 2 atvejo struktūras: vieną, norėdamas išanalizuoti, kokia nata buvo grojama, o kitą - nustatyti, ar stygą reikia pasukti aukštyn, ar žemyn. Pirmuoju atveju aš sukūriau kiekvienos natos diapazonus, o jei pagrindinis dažnio signalas iš „HarmonicDistortionAnalyzer. VI“buvo tame diapazone, jis pasakys vartotojui, kokia nata buvo grojama. Kai nata buvo nustatyta, grojamos natos vertė buvo atimta iš faktinio pagrindinio natos dažnio, o tada rezultatas buvo perkeltas į antrąjį atvejį, kuris nustatė šiuos dalykus: jei rezultatas yra didesnis nei nulis, eilutę reikia sureguliuoti; jei rezultatas yra klaidingas (ne didesnis nei nulis), atvejis tikrina, ar vertė lygi nuliui, o jei tiesa, tada programa praneštų vartotojui, kad pastaba yra suderinta; jei vertė nėra lygi nuliui, tai reiškia, kad ji turi būti mažesnė už nulį ir kad eilutė turi būti sureguliuota. Aš paėmiau absoliučią rezultato vertę, norėdamas parodyti vartotojui, kiek Hz jie yra nutolę nuo tikrosios natos.

Nusprendžiau, kad skaitiklio indikatorius geriausiai parodys vartotojui, ką reikia padaryti, kad užrašas būtų suderintas.

3 žingsnis: Toliau analoginė grandinė

Toliau - analoginė grandinė
Toliau - analoginė grandinė
Toliau - analoginė grandinė
Toliau - analoginė grandinė
Toliau - analoginė grandinė
Toliau - analoginė grandinė

Mikrofonas, kurį naudoju šiam projektui, yra CMA-6542PF kondensatoriaus elektretinis mikrofonas. Šio mikrofono duomenų lapas yra žemiau. Skirtingai nuo daugelio tokio tipo kondensatorinių mikrofonų, man nereikėjo jaudintis dėl poliškumo. Duomenų lapas rodo, kad šio mikrofono darbinė įtampa yra 4,5–10 V, tačiau rekomenduojama 4,5 V, o srovės suvartojimas yra ne didesnis kaip 0,5 mA, todėl reikia atkreipti dėmesį kuriant jo stiprintuvo grandinę. Veikimo dažnis yra nuo 20 Hz iki 20 kHz, kuris puikiai tinka garsui.

Aš įdiegiau paprastą išankstinio stiprintuvo grandinės dizainą ant duonos plokštės ir sureguliavau įėjimo įtampą, įsitikindamas, kad per mikrofoną nėra daugiau kaip 0,5 mA. Kondensatorius naudojamas nuolatinės srovės triukšmui, kuris gali būti sujungtas su elektriniais signalais (išėjimu), filtruoti, o kondensatorius turi poliškumą, todėl būtinai prijunkite teigiamą galą prie mikrofono išvesties kaiščio.

Kai grandinė buvo baigta, prijungiau grandinės išvestį prie pirmojo USB-6008 analoginio įvesties kaiščio (AI0, 2 kaištis), o duonos lentos įžeminimą prijungiau prie analoginio įžeminimo kaiščio (GND, 1 kaištis). Aš prijungiau USB-6008 prie kompiuterio naudodami USB ir atėjo laikas koreguoti „LabVIEW“programą, kad būtų priimtas tikrasis analoginis signalas.

4 žingsnis: skaitykite analoginius signalus naudodami „DAQ Assistant“

Analoginių signalų skaitymas naudojant „DAQ Assistant“
Analoginių signalų skaitymas naudojant „DAQ Assistant“
Analoginių signalų skaitymas naudojant „DAQ Assistant“
Analoginių signalų skaitymas naudojant „DAQ Assistant“

Užuot naudojęs „SoundFileSimpleRead. VI“ir „HarmonicDistortionAnalyzer. VI“, analoginiam įėjimui panaudojau „DAQ Assistant. VI“ir „ToneMeasurements. VI“. „DAQ Assistant“sąranka yra gana paprasta, o pats VI padės jums atlikti veiksmus. „ToneMeasurements. VI“turi daug išėjimų, iš kurių galima pasirinkti (amplitudė, dažnis, fazė), todėl naudojau dažnio išvestį, kuri suteikia pagrindinį įvesties tono dažnį (iš „DAQ Assistant. VI“). „ToneMeasurements. VI“išvestį reikėjo konvertuoti ir sudėti į masyvą, kad ji galėtų būti panaudota korpuso struktūrose, tačiau likusi „LabVIEW“programavimo/rodiklių dalis liko ta pati.

5 žingsnis: Išvada

Išvada
Išvada

Projektas buvo sėkmingas, tačiau tikrai buvo daug trūkumų. Kai valdžiau imtuvą triukšmingoje klasėje, programai buvo labai sunku nustatyti, kas yra triukšmas ir koks tonas. Greičiausiai taip yra dėl to, kad išankstinio stiprintuvo grandinė yra labai paprasta, o mikrofonas - labai pigus. Tačiau kai buvo tylu, programa labai patikimai dirbo, kad nustatytų bandomą groti natą. Dėl laiko apribojimų jokių papildomų pakeitimų nepadariau, tačiau, jei norėčiau pakartoti projektą, įsigyčiau geresnį mikrofoną ir daugiau laiko praleisčiau prie stiprintuvo grandinės.

Rekomenduojamas: