
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05

Это руководство было создано во исполнение требований проекта Makecourse в Университете Южной Флориды (www.makecourse.com).
Основанный на популярном MidiFighter от DJ Techtools, этот самодельный контроллер цифрового интерфейса музыкальных инструментов (MIDI) с питанием от Arduino может использоваться в качестве MIDI-устройства в любой программе Digital Audio Workstation (DAW). MIDI-контроллер может отправлять и получать MIDI-сообщения с компьютера и может использоваться для непосредственного управления любым используемым программным обеспечением. Кроме того, элементы управления на MIDI-контроллере полностью настраиваются - это означает, что каждая отдельная кнопка, ползунок и ручка могут быть сопоставлены с любой функцией в DAW. Например, нажатие кнопки может сыграть определенную ноту или быть запрограммированным на переключение темпа вашего аудиопроекта.
github.com/jdtar/Arduino-Midi-Controller
Шаг 1: материалы
Ниже приведен список материалов и инструментов, использованных в этом проекте.
Ардуино Уно
Макетная плата
4051/4067 Мультиплексор
Провода перемычки
Дополнительный провод
2 линейных ползунковых потенциометра 10 кОм
16x пуговиц Sanwa 24 мм
Термоусадка
Паяльник
Лезвие бритвы
Резистор 4,7 кОм
Акриловый лист (для крышки)
Корпус для кнопок и Arduino
3д принтер
Лазерный резак
Шаг 2: Дизайн


Мне уже предоставили корпус для моего MIDI-контроллера до начала проекта, поэтому я сделал набросок крышки, чтобы визуализировать, где все должно быть размещено. Я знал, что мне нужно как минимум 16 кнопок и пару потенциометров в качестве функции, поэтому я попытался расположить компоненты как можно более равномерно.
Составив макет крышки, я экспортировал файл в формате PDF 1: 1 и отправил его на лазерный резак, чтобы вырезать лист акрила. Для отверстий под винты я отметил маркером места, где должны были быть отверстия, и расплавил акрил горячей нитью.
Прилагается PDF-файл формата 1: 1, который можно распечатать в формате 1: 1 и разрезать с помощью электроинструмента, если лазерный резак недоступен.
Шаг 3: Строительство и электромонтаж



После резки акрила я обнаружил, что акрил слишком тонкий, чтобы выдержать все компоненты. Затем я вырезал еще один лист и склеил их вместе, что оказалось идеально.
Подключение компонентов потребовало некоторых проб и ошибок, но привело к приложению эскиза Фритцинга. Сначала я подключил заземляющие провода и резистор 4,7 кОм, припаял и подогрел контакты на кнопках. Для установки двух ползунковых потенциометров потребовались отверстия для расплавления винтов в акриле. После того, как два потенциометра были ввинчены, они были подключены к аналоговым контактам A0 и A1. После того, как проводка была завершена, я вспомнил, что у моих фейдеров не было крышек регуляторов, поэтому вместо того, чтобы покупать их, я напечатал несколько крышек регуляторов с помощью трехмерного принтера, сделав набросок в Autodesk Fusion 360 и экспортировав в файл STL. Де
Arduino Uno имеет только 12 доступных цифровых входных контактов, но 16 кнопок должны были быть подключены. Чтобы компенсировать это, я подключил мультиплексор 74HC4051 на макетной плате, которая использует 4 цифровых входных контакта и позволяет нескольким сигналам использовать общую линию, в результате чего имеется 8 доступных цифровых входных контактов, всего 16 цифровых контактов, доступных для использования.
Подключение кнопок к правильным контактам было простым вопросом создания матрицы 4x4 и использования ее в коде. Однако сложность заключалась в том, что у конкретного приобретенного мультиплексора была определенная схема контактов, с которой помогло техническое описание, а также я имел в виду конкретную схему заметок при подключении кнопок, которая в итоге выглядела примерно так:
ПРИМЕЧАНИЕ МАТРИЦА
[C2] [C # 2] [D2] [D # 2]
[G # 2] [A1] [A # 2] [B1]
[E1] [F1] [F # 1] [G1]
[C2] [C # 2] [D2] [D # 2]
ПИН-МАТРИЦА (M = MUX INPUT)
[6] [7] [8] [9]
[10] [11] [12] [13]
[M0] [M1] [M2] [M3]
[M4] [M5] [M6] [M7]
Шаг 4: Программирование

После завершения сборки остается только программировать Arduino. Прилагаемый сценарий написан таким образом, чтобы его можно было легко настроить.
Начало сценария включает библиотеку MIDI.h и библиотеку контроллеров, заимствованную из блога Notes и Volts, которые оба включены в zip-файл для кода. Используя библиотеку контроллера, можно создавать объекты для кнопок, потенциометров и мультиплексированных кнопок, содержащие значения данных, которые включают номер ноты, значения управления, скорость ноты, номер MIDI-канала и т. Д. Библиотека MIDI.h обеспечивает обмен данными ввода-вывода MIDI на устройстве. Последовательные порты Arduino, которые, в свою очередь, принимают данные от объектов контроллера, преобразуют их в сообщения MIDI и отправляют сообщения на любой подключенный интерфейс midi.
Часть скрипта настройки void инициализирует все каналы как выключенные, а также инициирует последовательное соединение со скоростью 115200 бод, что превышает скорость обмена MIDI-сигналами.
Основной цикл по существу берет массивы кнопок и мультиплексированных кнопок и запускает цикл for, который проверяет, была ли кнопка нажата или отпущена, и отправляет соответствующие байты данных в интерфейс midi. Цепь потенциометра проверяет положение потенциометра и отправляет соответствующие изменения напряжения обратно в интерфейс midi.
Шаг 5: настройка





После того, как сценарий был загружен в Arduino, следующий шаг - подключи и работай. Однако есть пара шагов, прежде чем его можно будет использовать.
В OSX Apple включила функцию создания виртуальных устройств midi, к которым можно получить доступ через приложение Audio Midi Setup на компьютерах Mac. После создания нового устройства Hairless MIDI можно использовать для создания последовательного соединения между Arduino и новым виртуальным MIDI-устройством. Последовательное соединение от Arduino через Hairless MIDI работает со скоростью передачи данных, определенной в части скрипта настройки void, и должно быть установлено эквивалентным в настройках параметров Hairless MIDI.
В целях тестирования я использовал Midi Monitor, чтобы проверить, отправляются ли правильные данные через последовательное соединение MIDI. Как только я определил, что все кнопки отправляют правильные данные по правильным каналам, я настроил MIDI-сигнал для маршрутизации в Ableton Live 9 в качестве MIDI-входа. В Ableton я смог отобразить нарезанные звуковые сэмплы для каждой кнопки и воспроизвести каждый сэмпл.
Рекомендуемые:
Кормушка для рыбы Arduino Uno за 6 простых и простых шагов !: 6 шагов

Arduino Uno Fish Feeder за 6 простых и дешевых шагов !: Итак, для этого проекта может потребоваться немного предыстории. Людям с домашними рыбками, вероятно, приходилось сталкиваться с той же проблемой, что и мне: отпуск и забывчивость. Я постоянно забывала покормить рыбу и всегда старалась это сделать, пока она не упала
Остановите потные руки и ноги с помощью Sweat Fighter !: 7 шагов (с иллюстрациями)

Остановите потные руки и ноги с помощью Sweat Fighter !: 3/1/19 Обновление: Некоторые люди сообщают о боли, вызванной быстрым изменением полярности. Я обновлю код, чтобы уменьшить эту проблему, но пока вам следует воздержаться от создания этого. Гипергидроз - это состояние, которое вызывает избыток
Более мощный Arduino-UNO, Massduino-UNO: 9 шагов

Более мощный Arduino-UNO, Massduino-UNO: что такое Massduino? Massduino - это новая линейка продуктов, которая сочетает в себе периферийные устройства платформы Arduino, богатую, удобную и быструю разработку, низкую стоимость и простоту производства, преимущества крупномасштабного производства. Почти весь код Arduino может быть
MIDI Fighter на базе Arduino (сенсорное управление): 7 шагов (с изображениями)

MIDI Fighter на базе Arduino (Touch Sensitive): MIDI означает цифровой интерфейс для музыкальных инструментов. Здесь мы делаем сенсорный MIDI истребитель с 16 пэдами. они могут быть увеличены или уменьшены. Здесь я использовал 16 из-за ограниченного количества контактов Arduino. Также я использовал аналоговые входные контакты
Контроллер светодиодной ленты MIDI 5V для Spielatron или другого MIDI-синтезатора: 7 шагов (с изображениями)

Контроллер светодиодной ленты MIDI 5V для Spielatron или другого MIDI-синтезатора: этот контроллер мигает трехцветной светодиодной лентой в течение 50 мс на ноту: синий для G5 - D # 6, красный для E6 - B6 и зеленый для C7 - G7. Контроллер представляет собой MIDI-устройство ALSA, поэтому программное обеспечение MIDI может выводить данные на светодиоды одновременно с устройством MIDI-синтезатора