Sommario:

Ukelele Tuner utilizzando LabView e NI USB-6008: 5 passaggi
Ukelele Tuner utilizzando LabView e NI USB-6008: 5 passaggi

Video: Ukelele Tuner utilizzando LabView e NI USB-6008: 5 passaggi

Video: Ukelele Tuner utilizzando LabView e NI USB-6008: 5 passaggi
Video: Online Ukulele Tuner - CUSTOM UKULELE Tuning - G - B - E - A 2024, Novembre
Anonim
Accordatore per ukulele con LabView e NI USB-6008
Accordatore per ukulele con LabView e NI USB-6008
Accordatore per ukulele con LabView e NI USB-6008
Accordatore per ukulele con LabView e NI USB-6008

Come progetto di apprendimento basato sui problemi per il mio corso LabVIEW & Instrumentation presso l'Humber College (Electronics Engineering Technology), ho creato un accordatore per ukulele che avrebbe preso un ingresso analogico (tono della corda dell'ukulele), trovare la frequenza fondamentale, decidere quale nota stava provando da accordare, e dire all'utente se la corda ha bisogno di essere accordata in su o in giù. Il dispositivo che ho usato per tradurre l'input analogico in input digitale era il National Instruments USB-6008 DAQ (dispositivo di acquisizione dati) e l'interfaccia utente è stata implementata con LabVIEW.

Passaggio 1: accordatura standard dell'ukulele

Accordatura standard per ukulele
Accordatura standard per ukulele
Accordatura standard per ukulele
Accordatura standard per ukulele

Il primo passo è stato scoprire le frequenze fondamentali delle note musicali e su quale gamma sono generalmente sintonizzate le corde dell'ukulele. Ho usato questi due grafici e ho deciso che avrei fatto in modo che la mia gamma di toni fosse compresa tra 262 Hz (Do) e 494 Hz (Si alto). Qualsiasi cosa inferiore a 252 Hz sarebbe considerata troppo bassa per consentire al programma di decifrare quale nota stava cercando di essere riprodotta, e qualsiasi cosa maggiore di 500 Hz sarebbe considerata troppo alta. Il programma, comunque, dice comunque all'utente di quanti Hz mancano alla nota decifrabile più vicina, e se la corda deve essere accordata in alto (nota troppo bassa) o in basso (nota troppo alta) per raggiungere una nota disponibile.

Inoltre, ho creato intervalli per ogni nota, anziché solo una singola frequenza, in modo che fosse più facile per il programma trovare quale nota veniva suonata. Ad esempio, il programma dirà all'utente che si sta suonando un Do se la nota ha una frequenza fondamentale compresa tra 252 Hz (metà del SI) e 269 Hz (metà del Do#), ma per decidere se è necessario accordare o giù, confronterebbe comunque la nota suonata con la frequenza fondamentale di C che è 262Hz.

Passaggio 2: creazione di un modello teorico puramente digitale

Creazione di un modello teorico puramente digitale
Creazione di un modello teorico puramente digitale
Creazione di un modello teorico puramente digitale
Creazione di un modello teorico puramente digitale

Prima di immergermi nel lato analogico del progetto, volevo vedere se potevo creare un programma LabVIEW che facesse almeno l'elaborazione principale di un campione sonoro, come leggere un campione audio.wav, trovare la frequenza fondamentale e creare i confronti richiesti alla tabella delle frequenze per trovare se il suono deve essere sintonizzato verso l'alto o verso il basso.

Ho usato SoundFileSimpleRead. VI disponibile in LabVIEW per leggere un file.wav da un percorso che avevo designato, inserire il segnale in un array indicizzato e inserire quel segnale in HarmonicDistortionAnalyzer. VI per trovare la frequenza fondamentale. Ho anche preso il segnale da SoundFileSimpleRead. VI e l'ho collegato direttamente a un indicatore del grafico della forma d'onda in modo che l'utente possa vedere la forma d'onda del file sul pannello frontale.

Ho creato 2 strutture di case: una per analizzare quale nota veniva suonata e l'altra per determinare se la corda doveva essere alzata o abbassata. Per il primo caso, ho creato intervalli per ogni nota e se il segnale di frequenza fondamentale dall'HaronicDistortionAnalyzer. VI era in quell'intervallo, avrebbe detto all'utente quale nota veniva suonata. Una volta determinata la nota, il valore della nota suonata è stato sottratto dalla frequenza fondamentale effettiva della nota, quindi il risultato è stato spostato nel secondo caso che ha determinato quanto segue: se il risultato è superiore a zero, la corda deve essere accordata; se il risultato è falso (non superiore a zero), allora il caso verifica se il valore è uguale a zero, e se vero, allora il programma avviserà l'utente che la nota è intonata; se il valore non è uguale a zero, significa che deve essere minore di zero e che la stringa deve essere ritoccata. Ho preso il valore assoluto del risultato per mostrare all'utente quanti Hz sono lontani dalla nota vera.

Ho deciso che un indicatore di misura sarebbe stato il migliore per mostrare visivamente all'utente cosa deve essere fatto per intonare la nota.

Passaggio 3: Successivamente, il circuito analogico

Successivamente, il circuito analogico
Successivamente, il circuito analogico
Successivamente, il circuito analogico
Successivamente, il circuito analogico
Successivamente, il circuito analogico
Successivamente, il circuito analogico

Il microfono che ho usato per questo progetto è il microfono a condensatore electret CMA-6542PF. La scheda tecnica di questo microfono è sotto. A differenza della maggior parte dei microfoni a condensatore di questo tipo, non ho dovuto preoccuparmi della polarità. La scheda tecnica mostra che la tensione operativa per questo microfono è 4,5 - 10 V, ma si consigliano 4,5 V e il suo consumo di corrente è 0,5 mA max, quindi è qualcosa a cui prestare attenzione quando si progetta un circuito di preamplificazione per esso. La frequenza operativa va da 20Hz a 20kHz, perfetta per l'audio.

Ho implementato un semplice progetto di circuito di preamplificazione su breadboard e ho regolato la tensione di ingresso, assicurandomi che non ci fossero più di 0,5 mA attraverso il microfono. Il condensatore viene utilizzato per filtrare il rumore CC che potrebbe essere accoppiato insieme ai segnali elettrici (uscita) e il condensatore ha polarità, quindi assicurati di collegare l'estremità positiva al pin di uscita del microfono.

Dopo che il circuito è stato completato, ho collegato l'uscita del circuito al primo pin di ingresso analogico (AI0, pin 2) dell'USB-6008 e ho collegato la massa della breadboard al pin di terra analogico (GND, pin 1). Ho collegato l'USB-6008 al PC con una porta USB ed è arrivato il momento di apportare modifiche al programma LabVIEW per ricevere un segnale analogico effettivo.

Passaggio 4: lettura dei segnali analogici con DAQ Assistant

Lettura di segnali analogici con DAQ Assistant
Lettura di segnali analogici con DAQ Assistant
Lettura di segnali analogici con DAQ Assistant
Lettura di segnali analogici con DAQ Assistant

Invece di utilizzare SoundFileSimpleRead. VI e HarmonicDistortionAnalyzer. VI, ho utilizzato DAQ Assistant. VI e ToneMeasurements. VI per gestire l'ingresso analogico. La configurazione di DAQ Assistant è abbastanza semplice e il VI stesso ti guida attraverso i passaggi. Il ToneMeasurements. VI ha molte uscite tra cui scegliere (ampiezza, frequenza, fase), quindi ho usato l'uscita di frequenza che fornisce la frequenza fondamentale del tono di ingresso (dal DAQ Assistant. VI). L'output di ToneMeasurements. VI doveva essere convertito e inserito in un array prima di poter essere utilizzato nelle strutture del case, ma il resto della programmazione/indicatori di LabVIEW è rimasto lo stesso.

Passaggio 5: conclusione

Conclusione
Conclusione

Il progetto è stato un successo ma c'erano sicuramente molti difetti. Quando stavo azionando l'accordatore in un'aula rumorosa, era molto difficile per il programma determinare quale fosse il rumore e quale fosse il tono riprodotto. Ciò è probabilmente dovuto al fatto che il circuito del preamplificatore è molto semplice e il microfono è molto economico. Quando era silenzioso, tuttavia, il programma funzionava con una buona affidabilità per determinare la nota che stava cercando di essere suonata. Per motivi di tempo non ho apportato ulteriori modifiche, ma se dovessi ripetere il progetto acquisterei un microfono migliore e passerei più tempo sul circuito di preamplificazione.

Consigliato: