Sisällysluettelo:

Ukelele-viritin LabView'n ja NI USB-6008: n avulla: 5 vaihetta
Ukelele-viritin LabView'n ja NI USB-6008: n avulla: 5 vaihetta

Video: Ukelele-viritin LabView'n ja NI USB-6008: n avulla: 5 vaihetta

Video: Ukelele-viritin LabView'n ja NI USB-6008: n avulla: 5 vaihetta
Video: Viritä ukulele! 2024, Marraskuu
Anonim
Ukelele-viritin LabView'n ja NI USB-6008: n avulla
Ukelele-viritin LabView'n ja NI USB-6008: n avulla
Ukelele-viritin LabView'n ja NI USB-6008: n avulla
Ukelele-viritin LabView'n ja NI USB-6008: n avulla

Ongelmapohjaisena oppimisprojektina LabVIEW & Instrumentation -kurssilleni Humber Collegessa (elektroniikkatekniikka) loin ukulele-virittimen, joka ottaisi analogisen tulon (ukulele-merkkijonoäänen), löytää perustaajuuden ja päättää, mitä nuottia yritettiin viritettäväksi ja kerro käyttäjälle, onko merkkijono viritettävä ylös tai alas. Laite, jota käytin analogisen tulon kääntämiseen digitaalituloon, oli National Instruments USB-6008 DAQ (tiedonkeruulaite), ja käyttöliittymä toteutettiin LabVIEW: n avulla.

Vaihe 1: Tavallinen Ukelele -viritys

Normaali Ukelele -viritys
Normaali Ukelele -viritys
Normaali Ukelele -viritys
Normaali Ukelele -viritys

Ensimmäinen askel oli selvittää nuottien perustaajuudet ja se, millä alueella ukulele -kielet tyypillisesti viritetään. Käytin näitä kaavioita ja päätin, että asetan äänialueeni 262 Hz (C) - 494 Hz (High B). Kaikki alle 252 Hz: n katsottiin olevan liian alhainen, jotta ohjelma voisi tulkita, mitä nuottia yritettiin soittaa, ja mitä tahansa yli 500 Hz: n katsottiin olevan liian korkea. Ohjelma kuitenkin ilmoittaa käyttäjälle edelleen, kuinka monta Hz he ovat etäisyydellä lähimmästä tulkittavasta nuotista, ja onko merkkijono viritettävä ylös (nuotti liian alhainen) tai alas (nuotti liian korkea), jotta saavutetaan käytettävissä oleva nuotti.

Lisäksi olen luonut alueet kullekin nuotille eikä vain yhtä taajuutta, jotta ohjelman olisi helpompi löytää soitettava nuotti. Ohjelma esimerkiksi kertoisi käyttäjälle, että C: tä soitetaan, jos nuotin perustaajuus on välillä 252 Hz (B: n puolivälissä) ja 269 Hz (C#: n puolivälissä), mutta päättääkseen, onko se viritettävä tai alas, se silti vertaa soitettavaa nuottia C: n perustaajuuteen, joka on 262 Hz.

Vaihe 2: Luo puhtaasti digitaalinen teoreettinen malli

Puhtaasti digitaalisen teoreettisen mallin luominen
Puhtaasti digitaalisen teoreettisen mallin luominen
Puhtaasti digitaalisen teoreettisen mallin luominen
Puhtaasti digitaalisen teoreettisen mallin luominen

Ennen sukellusta projektin analogiselle puolelle halusin nähdä, voisinko luoda LabVIEW -ohjelman, joka suorittaisi ainakin ääninäytteen pääkäsittelyn, kuten äänen.wav -näytteen lukemisen, perustaajuuden löytämisen ja tarvittavat vertailut taajuuskaavioon sen selvittämiseksi, pitäisikö ääntä virittää ylös tai alas.

Käytin LabVIEW -ohjelmassa saatavilla olevaa SoundFileSimpleRead. VI -ohjelmaa lukemaan.wav -tiedoston valitsemaltani polulta, laitoin signaalin indeksoituun taulukkoon ja syötin signaalin HarmonicDistortionAnalyzer. VI: hen perustaajuuden löytämiseksi. Otin myös signaalin SoundFileSimpleRead. VI: sta ja liitin sen suoraan aaltomuotokaavion ilmaisimeen, jotta käyttäjä voi nähdä tiedoston aaltomuodon etupaneelissa.

Luin kaksi tapausrakennetta: yhden analysoidaksesi mitä nuottia soitettiin, ja toisen selvittääksesi, onko merkkijono käännettävä ylös tai alas. Ensimmäisessä tapauksessa loin alueet kullekin nuotille, ja jos HarmonicDistortionAnalyzer. VI: n perustaajuussignaali oli tällä alueella, se kertoi käyttäjälle, mitä nuottia soitettiin. Kun nuotti oli määritetty, soitetun nuotin arvo vähennettiin nuotin todellisella perustaajuudella, ja sitten tulos siirrettiin toiseen tapaukseen, joka määritti seuraavan: jos tulos on yli nollan, merkkijono on viritettävä alas; jos tulos on epätosi (ei yli nollan), tapaus tarkistaa, onko arvo yhtä suuri kuin nolla, ja jos totta, ohjelma ilmoittaa käyttäjälle, että huomautus on viritetty; jos arvo ei ole nolla, se tarkoittaa, että sen on oltava pienempi kuin nolla ja että merkkijono on viritettävä. Otin tuloksen absoluuttisen arvon näyttääkseni käyttäjälle kuinka monta Hz he ovat kaukana todellisesta nuotista.

Päätin, että mittarin ilmaisin olisi paras osoittamaan käyttäjälle visuaalisesti, mitä on tehtävä muistiinpanon virittämiseksi.

Vaihe 3: Seuraavaksi analoginen piiri

Seuraavaksi analoginen piiri
Seuraavaksi analoginen piiri
Seuraavaksi analoginen piiri
Seuraavaksi analoginen piiri
Seuraavaksi analoginen piiri
Seuraavaksi analoginen piiri

Tässä projektissa käyttämäni mikrofoni on CMA-6542PF-kondensaattorielektrettimikrofoni. Tämän mikrofonin tietolomake on alla. Toisin kuin useimmat tämän tyyppiset kondensaattorimikrofonit, minun ei tarvinnut huolehtia napaisuudesta. Tietolomake osoittaa, että tämän mikrofonin käyttöjännite on 4,5 - 10 V, mutta 4,5 V on suositeltava ja sen virrankulutus on enintään 0,5 mA, joten on syytä olla varovainen, kun suunnittelet sille esivahvistinpiiriä. Toimintataajuus on 20 Hz - 20 kHz, mikä on täydellinen ääni.

Toteutin yksinkertaisen esivahvistinpiirisuunnittelun leipälevylle ja säädin tulojännitettä varmistaen, että mikrofonin yli ei ollut yli 0,5 mA. Kondensaattoria käytetään suodattamaan DC -kohinaa, joka voidaan kytkeä sähköisten signaalien (lähtö) kanssa, ja kondensaattorilla on napaisuus, joten muista liittää positiivinen pää mikrofonin ulostulotappiin.

Kun piiri oli valmis, liitin piirin ulostulon USB-6008: n ensimmäiseen analogiseen tulonastapaan (AI0, nasta 2) ja liitinlevyn maadoitus analogiseen maadoitusnastaan (GND, nasta 1). Liitin USB-6008: n tietokoneeseen USB: llä ja oli aika tehdä muutoksia LabVIEW-ohjelmaan todellisen analogisen signaalin vastaanottamiseksi.

Vaihe 4: Analogisten signaalien lukeminen DAQ Assistantin avulla

Analogisten signaalien lukeminen DAQ Assistantin avulla
Analogisten signaalien lukeminen DAQ Assistantin avulla
Analogisten signaalien lukeminen DAQ Assistantin avulla
Analogisten signaalien lukeminen DAQ Assistantin avulla

SoundFileSimpleRead. VI: n ja HarmonicDistortionAnalyzer. VI: n käyttämisen sijaan käytin DAQ Assistant. VI: tä ja ToneMeasurements. VI käsitelläksesi analogista tuloa. DAQ Assistant -asennus on melko suoraviivaista, ja VI itse vie sinut vaiheiden läpi. ToneMeasurements. VI sisältää monia lähtöjä (amplitudi, taajuus, vaihe), joten käytin taajuuslähtöä, joka antaa tuloäänen perustaajuuden (DAQ Assistant. VI). ToneMeasurements. VI: n tulos oli muunnettava ja asetettava matriisiksi, ennen kuin sitä voitiin käyttää kotelorakenteissa, mutta muu LabVIEW -ohjelmointi/indikaattori pysyi samana.

Vaihe 5: Johtopäätös

Johtopäätös
Johtopäätös

Projekti oli onnistunut, mutta siinä oli varmasti monia puutteita. Kun käytin viritintä meluisassa luokkahuoneessa, ohjelman oli erittäin vaikea määrittää, mikä oli kohinaa ja mikä ääni. Tämä johtuu todennäköisesti siitä, että esivahvistinpiiri on hyvin yksinkertainen ja mikrofoni on erittäin halpa. Hiljaisuudessa ohjelma kuitenkin toimi luotettavasti määrittäessään soitettavan nuotin. Aikarajoitusten vuoksi en tehnyt muita muutoksia, mutta jos toistan projektin, ostaisin paremman mikrofonin ja viettäisin enemmän aikaa esivahvistinpiiriin.

Suositeltava: