Inhaltsverzeichnis:

Ukelele-Tuner mit LabView und NI USB-6008 - Gunook
Ukelele-Tuner mit LabView und NI USB-6008 - Gunook

Video: Ukelele-Tuner mit LabView und NI USB-6008 - Gunook

Video: Ukelele-Tuner mit LabView und NI USB-6008 - Gunook
Video: UKULELE STIMMEN MIT UND OHNE STIMMGERÄT || Anfänger || UkeTube 2024, November
Anonim
Ukelele-Tuner mit LabView und NI USB-6008
Ukelele-Tuner mit LabView und NI USB-6008
Ukelele-Tuner mit LabView und NI USB-6008
Ukelele-Tuner mit LabView und NI USB-6008

Als problembasiertes Lernprojekt für meinen LabVIEW & Instrumentation-Kurs am Humber College (Electronics Engineering Technology) habe ich einen Ukulele-Tuner entwickelt, der einen analogen Eingang (Ukulelen-Saitenton) nimmt, die Grundfrequenz findet und entscheidet, welche Note versucht wird gestimmt werden soll, und teilen Sie dem Benutzer mit, ob die Saite nach oben oder unten gestimmt werden muss. Das Gerät, das ich verwendet habe, um den analogen Eingang in einen digitalen Eingang zu übersetzen, war der USB-6008 DAQ (Datenerfassungsgerät) von National Instruments, und die Benutzeroberfläche wurde mit LabVIEW implementiert.

Schritt 1: Standard-Ukelele-Tuning

Standard-Ukelele-Tuning
Standard-Ukelele-Tuning
Standard-Ukelele-Tuning
Standard-Ukelele-Tuning

Der erste Schritt bestand darin, die Grundfrequenzen von Musiknoten herauszufinden und in welchem Bereich die Ukulelensaiten normalerweise gestimmt sind. Ich habe diese beiden Diagramme verwendet und beschlossen, dass ich meinen Tonbereich zwischen 262 Hz (C) und 494 Hz (High B) einstellen würde. Alles unter 252 Hz würde für das Programm als zu niedrig angesehen, um zu erkennen, welche Note gespielt werden wollte, und alles über 500 Hz würde als zu hoch angesehen. Das Programm teilt dem Benutzer jedoch immer noch mit, wie viele Hz er von der nächsten entzifferbaren Note entfernt ist und ob die Saite nach oben (Note zu tief) oder tiefer (Note zu hoch) gestimmt werden sollte, um eine verfügbare Note zu erreichen.

Außerdem habe ich Bereiche für jede Note und nicht nur eine einzelne Frequenz erstellt, damit das Programm leichter erkennen kann, welche Note gespielt wird. Zum Beispiel würde das Programm dem Benutzer mitteilen, dass ein C gespielt wird, wenn die Note eine Grundfrequenz zwischen 252 Hz (halbes H) und 269 Hz (halbes C#) hat, aber um zu entscheiden, ob es gestimmt werden muss oder nach unten, würde es immer noch die gespielte Note mit der Grundfrequenz von C vergleichen, die 262 Hz beträgt.

Schritt 2: Erstellen eines rein digitalen theoretischen Modells

Erstellen eines rein digitalen theoretischen Modells
Erstellen eines rein digitalen theoretischen Modells
Erstellen eines rein digitalen theoretischen Modells
Erstellen eines rein digitalen theoretischen Modells

Bevor ich in die analoge Seite des Projekts eintauchte, wollte ich sehen, ob ich ein LabVIEW-Programm erstellen könnte, das zumindest die Hauptverarbeitung eines Sound-Samples übernimmt, z die erforderlichen Vergleiche mit dem Frequenzdiagramm, um herauszufinden, ob der Ton nach oben oder unten gestimmt werden sollte.

Ich habe das in LabVIEW verfügbare SoundFileSimpleRead. VI verwendet, um eine.wav-Datei aus einem von mir angegebenen Pfad zu lesen, das Signal in ein indiziertes Array zu legen und dieses Signal in den HarmonicDistortionAnalyzer. VI einzuspeisen, um die Grundfrequenz zu finden. Ich habe auch das Signal von SoundFileSimpleRead. VI genommen und es direkt mit einem Wellenformdiagramm-Indikator verbunden, damit der Benutzer die Wellenform der Datei auf dem Frontpanel sehen kann.

Ich habe zwei Case-Strukturen erstellt: eine, um zu analysieren, welche Note gespielt wird, und die andere, um festzustellen, ob die Saite auf- oder abgedreht werden muss. Für den ersten Fall habe ich Bereiche für jede Note erstellt, und wenn das Grundfrequenzsignal vom HarmonicDistortionAnalyzer. VI in diesem Bereich lag, würde es dem Benutzer sagen, welche Note gespielt wurde. Sobald die Note bestimmt war, wurde der gespielte Notenwert von der tatsächlichen Grundfrequenz der Note subtrahiert, und dann wurde das Ergebnis in den zweiten Fall verschoben, der Folgendes feststellte: Wenn das Ergebnis über Null liegt, muss die Saite tiefer gestimmt werden; wenn das Ergebnis falsch ist (nicht über null), dann prüft der Fall, ob der Wert gleich null ist, und falls wahr, dann würde das Programm den Benutzer benachrichtigen, dass die Note gestimmt ist; Wenn der Wert ungleich Null ist, bedeutet dies, dass er kleiner als Null sein muss und dass die Saite gestimmt werden muss. Ich habe den Absolutwert des Ergebnisses genommen, um dem Benutzer zu zeigen, wie viele Hz er von der wahren Note entfernt ist.

Ich entschied, dass eine Meteranzeige das Beste wäre, um dem Benutzer visuell zu zeigen, was getan werden muss, um die Note richtig zu stimmen.

Schritt 3: Als nächstes die analoge Schaltung

Als nächstes die analoge Schaltung
Als nächstes die analoge Schaltung
Als nächstes die analoge Schaltung
Als nächstes die analoge Schaltung
Als nächstes die analoge Schaltung
Als nächstes die analoge Schaltung

Das Mikrofon, das ich für dieses Projekt verwendet habe, ist das Kondensator-Elektret-Mikrofon CMA-6542PF. Das Datenblatt für dieses Mikrofon ist unten. Im Gegensatz zu den meisten Kondensatormikrofonen dieser Art musste ich mir keine Gedanken über die Polarität machen. Das Datenblatt zeigt, dass die Betriebsspannung für dieses Mikrofon 4,5 - 10 V beträgt, aber 4,5 V werden empfohlen, und sein Stromverbrauch beträgt max. 0,5 mA. Die Betriebsfrequenz beträgt 20 Hz bis 20 kHz, was perfekt für Audio ist.

Ich habe ein einfaches Vorverstärker-Schaltungsdesign auf einem Steckbrett implementiert und die Eingangsspannung angepasst, um sicherzustellen, dass am Mikrofon nicht mehr als 0,5 mA anliegen. Der Kondensator wird verwendet, um das Gleichstromrauschen zu filtern, das zusammen mit den elektrischen Signalen (Ausgang) gekoppelt sein könnte, und der Kondensator hat eine Polarität, also stellen Sie sicher, dass das positive Ende mit dem Mikrofonausgangsstift verbunden ist.

Nachdem die Schaltung abgeschlossen war, verband ich den Ausgang der Schaltung mit dem ersten analogen Eingangspin (AI0, Pin 2) des USB-6008 und verband die Masse des Steckbretts mit dem analogen Massepin (GND, Pin 1). Ich habe den USB-6008 mit einem USB an den PC angeschlossen und es war an der Zeit, das LabVIEW-Programm anzupassen, um ein tatsächliches analoges Signal aufzunehmen.

Schritt 4: Lesen analoger Signale mit dem DAQ-Assistenten

Lesen analoger Signale mit dem DAQ-Assistenten
Lesen analoger Signale mit dem DAQ-Assistenten
Lesen analoger Signale mit dem DAQ-Assistenten
Lesen analoger Signale mit dem DAQ-Assistenten

Anstelle von SoundFileSimpleRead. VI und HarmonicDistortionAnalyzer. VI habe ich den DAQ Assistant. VI und das ToneMeasurements. VI verwendet, um den analogen Eingang zu bearbeiten. Die Einrichtung des DAQ-Assistenten ist ziemlich einfach und das VI selbst führt Sie durch die Schritte. Das ToneMeasurements. VI hat viele Ausgänge zur Auswahl (Amplitude, Frequenz, Phase), daher habe ich den Frequenzausgang verwendet, der die Grundfrequenz des Eingangstons (vom DAQ Assistant. VI) angibt. Die Ausgabe von ToneMeasurements. VI musste konvertiert und in ein Array eingefügt werden, bevor sie in den Fallstrukturen verwendet werden konnte, aber der Rest der LabVIEW-Programmierung/Indikatoren blieb gleich.

Schritt 5: Fazit

Abschluss
Abschluss

Das Projekt war ein Erfolg, aber es gab definitiv viele Mängel. Als ich den Tuner in einem lauten Klassenzimmer bediente, war es für das Programm sehr schwer zu bestimmen, was Geräusch war und welcher Ton gespielt wurde. Dies liegt wahrscheinlich daran, dass die Vorverstärkerschaltung sehr einfach ist und das Mikrofon sehr billig ist. Wenn es jedoch ruhig war, arbeitete das Programm mit guter Zuverlässigkeit, um die Note zu bestimmen, die gespielt werden wollte. Aus Zeitgründen habe ich keine weiteren Änderungen vorgenommen, aber wenn ich das Projekt wiederholen würde, würde ich ein besseres Mikrofon kaufen und mehr Zeit mit der Vorverstärkerschaltung verbringen.

Empfohlen: