Оглавление:

Тюнер Ukelele с использованием LabView и NI USB-6008: 5 шагов
Тюнер Ukelele с использованием LabView и NI USB-6008: 5 шагов

Видео: Тюнер Ukelele с использованием LabView и NI USB-6008: 5 шагов

Видео: Тюнер Ukelele с использованием LabView и NI USB-6008: 5 шагов
Видео: Как пользоваться дрёбаным тюнером! www.gitaraclub.ru 2024, Июль
Anonim
Тюнер Ukelele с использованием LabView и NI USB-6008
Тюнер Ukelele с использованием LabView и NI USB-6008
Тюнер Ukelele с использованием LabView и NI USB-6008
Тюнер Ukelele с использованием LabView и NI USB-6008

В качестве проблемно-ориентированного учебного проекта для моего курса LabVIEW & Instrumentation в Хамберском колледже (технология электронной инженерии) я создал тюнер для укулеле, который принимал аналоговый вход (тон струны укулеле), находил основную частоту, решал, какую ноту пробовать. чтобы настроить, и сообщить пользователю, нужно ли настраивать строку вверх или вниз. Устройство, которое я использовал для преобразования аналогового входа в цифровой, было National Instruments USB-6008 DAQ (устройство сбора данных), а пользовательский интерфейс был реализован с помощью LabVIEW.

Шаг 1: стандартная настройка укелеле

Стандартная настройка укелеле
Стандартная настройка укелеле
Стандартная настройка укелеле
Стандартная настройка укелеле

Первым шагом было выяснение основных частот музыкальных нот и диапазона, на который обычно настраиваются струны для укулеле. Я использовал эти две диаграммы и решил, что сделаю свой тон в диапазоне от 262 Гц (C) до 494 Гц (High B). Все, что ниже 252 Гц, будет считаться слишком низким, чтобы программа могла расшифровать, какая нота пыталась сыграть, а все, что выше 500 Гц, будет считаться слишком высоким. Программа, однако, по-прежнему сообщает пользователю, на сколько Гц он находится от ближайшей дешифруемой ноты, и нужно ли настраивать строку вверх (слишком низкая нота) или вниз (нота слишком высокая), чтобы достичь доступной ноты.

Кроме того, я создал диапазоны для каждой ноты, а не только для одной частоты, чтобы программе было легче найти, какая нота воспроизводится. Например, программа сообщит пользователю, что играется C, если основная частота ноты находится между 252 Гц (на полпути к B) и 269 Гц (на полпути к C #), но для того, чтобы решить, нужно ли ее настраивать или ниже, он все равно будет сравнивать воспроизводимую ноту с основной частотой до, которая составляет 262 Гц.

Шаг 2: Создание чисто цифровой теоретической модели

Создание чисто цифровой теоретической модели
Создание чисто цифровой теоретической модели
Создание чисто цифровой теоретической модели
Создание чисто цифровой теоретической модели

Прежде чем погрузиться в аналоговую сторону проекта, я хотел посмотреть, смогу ли я создать программу LabVIEW, которая, по крайней мере, выполняла бы основную обработку звукового сэмпла, такую как чтение аудио-сэмпла.wav, поиск основной частоты и создание необходимые сравнения с частотной диаграммой, чтобы определить, нужно ли настраивать звук вверх или вниз.

Я использовал SoundFileSimpleRead. VI, доступный в LabVIEW, чтобы прочитать файл.wav по указанному мной пути, поместить сигнал в индексированный массив и подать этот сигнал в HarmonicDistortionAnalyzer. VI, чтобы найти основную частоту. Я также взял сигнал из SoundFileSimpleRead. VI и подключил его непосредственно к индикатору диаграммы формы волны, чтобы пользователь мог видеть форму волны файла на передней панели.

Я создал 2 структуры корпуса: одну для анализа проигрываемой ноты, а другую - для определения того, нужно ли повернуть струну вверх или вниз. В первом случае я создал диапазоны для каждой ноты, и если сигнал основной частоты из HarmonicDistortionAnalyzer. VI находился в этом диапазоне, он сообщал бы пользователю, какая нота воспроизводится. Как только нота была определена, значение проигрываемой ноты было вычтено из фактической основной частоты ноты, а затем результат был перенесен во второй случай, который определил следующее: если результат больше нуля, то струну необходимо настроить вниз; если результат ложный (не выше нуля), тогда проверяется, равно ли значение нулю, и если истинно, то программа уведомит пользователя о том, что нота настроена; если значение не равно нулю, это означает, что оно должно быть меньше нуля и что строку необходимо настроить. Я взял абсолютное значение результата, чтобы показать пользователю, на сколько Гц он отошел от истинной ноты.

Я решил, что индикатор измерителя будет лучше всего, чтобы визуально показать пользователю, что нужно сделать, чтобы сделать заметку согласованной.

Шаг 3: Далее аналоговая схема

Затем аналоговая схема
Затем аналоговая схема
Затем аналоговая схема
Затем аналоговая схема
Затем аналоговая схема
Затем аналоговая схема

В этом проекте я использовал конденсаторный электретный микрофон CMA-6542PF. Технические данные этого микрофона приведены ниже. В отличие от большинства конденсаторных микрофонов этого типа, мне не нужно было беспокоиться о полярности. В таблице данных показано, что рабочее напряжение для этого микрофона составляет 4,5 - 10 В, но рекомендуется 4,5 В, а потребление тока составляет не более 0,5 мА, так что на это следует обратить внимание при разработке схемы предусилителя для него. Рабочая частота составляет от 20 Гц до 20 кГц, что идеально подходит для звука.

Я реализовал простую схему предусилителя на макетной плате и отрегулировал входное напряжение, убедившись, что на микрофоне не больше 0,5 мА. Конденсатор используется для фильтрации шума постоянного тока, который может быть связан с электрическими сигналами (выходными), и конденсатор имеет полярность, поэтому обязательно подключите положительный конец к выходному контакту микрофона.

После завершения схемы я подключил выход схемы к первому аналоговому входному контакту (AI0, контакт 2) USB-6008 и подключил заземление макета к аналоговому контакту заземления (GND, контакт 1). Я подключил USB-6008 к ПК через USB, и пришло время внести изменения в программу LabVIEW, чтобы она принимала реальный аналоговый сигнал.

Шаг 4. Считывание аналоговых сигналов с помощью DAQ Assistant

Чтение аналоговых сигналов с помощью DAQ Assistant
Чтение аналоговых сигналов с помощью DAQ Assistant
Чтение аналоговых сигналов с помощью DAQ Assistant
Чтение аналоговых сигналов с помощью DAQ Assistant

Вместо использования SoundFileSimpleRead. VI и HarmonicDistortionAnalyzer. VI я использовал DAQ Assistant. VI и ToneMeasurements. VI для работы с аналоговым входом. Настройка DAQ Assistant довольно проста, и сам VI проведет вас через все шаги. ToneMeasurements. VI имеет множество выходов на выбор (амплитуда, частота, фаза), поэтому я использовал частотный выход, который дает основную частоту входного тона (из DAQ Assistant. VI). Выходные данные ToneMeasurements. VI необходимо было преобразовать и поместить в массив, прежде чем его можно будет использовать в структурах case, но остальная часть программирования / индикаторов LabVIEW осталась прежней.

Шаг 5: Заключение

Заключение
Заключение

Проект удался, но недостатков определенно было много. Когда я работал с тюнером в шумном классе, программе было очень сложно определить, что такое шум, а какой тон воспроизводится. Вероятно, это связано с очень простой схемой предусилителя и очень дешевым микрофоном. Однако, когда было тихо, программа работала с хорошей надежностью, определяя ноту, которую пытались сыграть. Из-за нехватки времени я не вносил никаких дополнительных изменений, но если бы мне пришлось повторить проект, я бы купил более качественный микрофон и потратил больше времени на схему предусилителя.

Рекомендуемые: