Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Точный автоматический тюнер для гитары на Arduino: быстрое и точное настройка для музыкантов

Компоненты и материалы

Компонент Количество
Arduino UNO (в проекте используется Arduino Due) 1

Приложения и онлайн-сервисы

О проекте

Одной из самых важных вещей при игре на гитаре — убедиться, что инструмент в настройке. Даже лучший гитарист не будет звучать хорошо на не настроенной гитаре. Ручная настройка стандартным тюнером всегда была распространена, но автоматический тюнер делает процесс намного проще и веселее! Этот проект на базе Arduino настроит вашу гитару за вас.

Видео проекта в действии: MathWorks

Обзор

Точный автоматический тюнер для гитары на Arduino: быстрое и точное настройка для музыкантов

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

Входы и выходы управляются четырьмя схемами: цифровой вход для кнопки, аналоговый аудиовход для гитары, цифровой выход для LED-дисплея и схема управления мотором для захвата колка. Эти четыре схемы взаимодействуют с Arduino Due, на котором запущен алгоритм, разработанный в Simulink.

Аудиовходная схема

Гитара подключается к тюнеру стандартным гитарным кабелем. У кабеля два соединения: tip ( наконечник) и sleeve (колпак). Один конец кабеля подключается к входному джеку с выводами для tip и sleeve. Я припаял провода к этим выводам для подключения к аудиовходной схеме.

Точный автоматический тюнер для гитары на Arduino: быстрое и точное настройка для музыкантов

Рекомендую использовать операционный усилитель TL972 — очень низкий шум, rail-to-rail, работает при очень низких напряжениях питания.

Моторизованный захват колка

Точный автоматический тюнер для гитары на Arduino: быстрое и точное настройка для музыкантов

Нельзя использовать любой DC-мотор. Нужен редуктор с низкой скоростью и высоким крутящим моментом. Использованный мотор: 6 об/мин, макс. крутящий момент 613 oz-in (4.3 Nm), диапазон напряжения 3-12 В, питание от 9-вольтовой батареи.

На валу мотора собран простой механизм захвата с зажимным хабом, четырьмя винтами и скотчем.

Программное обеспечение

Для разработки алгоритма использовались Simulink и пакет поддержки Arduino. Simulink — блочная диаграмма для разработки алгоритмов и моделирования динамических систем. Пакет поддержки позволяет читать/писать пины Arduino через блоки Simulink. Режим External Mode позволяет симулировать алгоритм на Arduino с автоматической генерацией кода и настройкой параметров во время выполнения без перекомпиляции. Затем алгоритм разворачивается на железо для автономной работы. Модель показана ниже.

Точный автоматический тюнер для гитары на Arduino: быстрое и точное настройка для музыкантов

External Mode позволяет использовать блоки Scope для мониторинга частей алгоритма во время работы на железе. Особенно полезно для мониторинга цифрового входа от кнопки и аналогового входа от гитары. На графике кнопки видно, как вход меняется с 0 на 1 при нажатии.

Точный автоматический тюнер для гитары на Arduino: быстрое и точное настройка для музыкантов

Хочу, чтобы этот переход 0→1 (переход по фронту) запускал смену выбранной струны. Создал Stateflow-диаграмму «Select String» с шестью состояниями (по одной на струну) и переходами по фронту. Подробный вид диаграммы:

Точный автоматический тюнер для гитары на Arduino: быстрое и точное настройка для музыкантов

При входе в каждое состояние соответствующий LED-пин устанавливается в HIGH, при выходе — в LOW. Нижняя ми (E2, самая низкая из шести струн) выбрана как дефолт. При включении тюнер стартует в этом состоянии.

На диаграмме 7 выходов: по одному для LED каждой из шести струн и «periodRange» — диапазон периодов для текущей струны.

Теперь аудиообработка. Сигнал гитары поступает через аналоговый входной блок. Sample time установлен 0.0002 сек (5 кГц частота дискретизации). При игре на гитаре на аудио-скопе видна волна:

Точный автоматический тюнер для гитары на Arduino: быстрое и точное настройка для музыкантов

Скоп помог настроить потенциометр в аудиосхеме для изменения коэффициента усиления. Усиление должно быть максимально возможным без достижения пиком максимума 1023 (10-битный АЦП). Это дает наиболее точное чтение сигнала.

Когда гитара не играет, входной сигнал — прямая линия между 500 и 700 (у меня ~550). Важно знать это значение, так как тюнер должен обрабатывать аудио только при игре ноты. Порог выбран 575 — чуть выше этой линии. Аудио обрабатывается только когда сигнал выше порога. Благодаря Simulink параметр легко настраивался во время симуляции.

При игре одной ноты волна периодична. Период волны соответствует музыкальной тоне. Алгоритм настройки оценивает тону струны, определяя период волны. Написал MATLAB-функцию для оценки тона, включил в модель через MATLAB Function Block. Функции нужен вход с диапазоном периодов, считающихся «в настройке» для каждой струны — это выход «periodRange» из Stateflow. Функция определяет, слишком высокий, низкий или в настройке тон, и генерирует выходы для мотора.

Выходы MATLAB-функции — три пина управления мотором, идут прямо в Arduino Digital Output блоки.

После проверки алгоритма развернул его на железо для автономной работы без ПК и Simulink.

Теперь я могу настраивать гитару автоматически!

Все необходимые файлы проекта доступны здесь: MathWorks File Exchange

Схемы

Схема кнопки — простой переключатель с подтягивающим резистором. LED-дисплей — 6 светодиодов и токоограничивающий резистор.

Точный автоматический тюнер для гитары на Arduino: быстрое и точное настройка для музыкантов

Аналоговый вход 'A0' Arduino Due считывает аудиосигнал. Due читает 0-3.3В. Сигнал с гитары очень малой амплитуды и осциллирует вокруг 0В (содержит отрицательные напряжения, которые Due не может читать). Входная схема должна усилить сигнал и добавить DC-смещение. Также нужен ФНЧ для устранения высокочастотных компонентов. Любой отсчитанный сигнал не должен содержать частоты выше половины частоты дискретизации (теорема Котельникова). При 5 кГц отсчетов схема убирает частоты выше 2.5 кГц. Схема собрана как показано:

Точный автоматический тюнер для гитары на Arduino: быстрое и точное настройка для музыкантов

Моторизованный захват управляется тремя цифровыми выходами Arduino через драйвер L293D H-мост. Чип позволяет вращать мотор в обе стороны или останавливать по состояниям трех пинов. Один пин — enable (мотор вращается только при HIGH), два других — направление. Схема подключения:

Точный автоматический тюнер для гитары на Arduino: быстрое и точное настройка для музыкантов

Производственный процесс

  1. Электрогитара: история, дизайн и современные инновации
  2. Спорк: эволюция, материалы и современное производство
  3. Титан: ключевые свойства, применения и промышленное использование
  4. Биокерамика: передовые материалы для ортопедических и стоматологических применений
  5. Кастаньеты: история, мастерство и исполнение
  6. История, производство и будущее клея: от древних клеев к современным инновациям
  7. Нить: виды, история, производство и контроль качества
  8. Ацетилен: производство, применение и безопасность — подробный обзор
  9. Комплексный обзор асбеста: от древних применений к современным рискам для здоровья
  10. Олово: от бронзового века к современной промышленности — применение, производство и будущее