Оглавление:

Arduino Uno Midi Fighter: 5 шагов
Arduino Uno Midi Fighter: 5 шагов

Видео: Arduino Uno Midi Fighter: 5 шагов

Видео: Arduino Uno Midi Fighter: 5 шагов
Видео: 10. Миди контроллер на Arduino Nano|Arduino| Midi 2024, Ноябрь
Anonim
Ардуино Уно Миди Истребитель
Ардуино Уно Миди Истребитель

Это руководство было создано во исполнение требований проекта 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: настройка

Image
Image
Настраивать
Настраивать
Настраивать
Настраивать
Настраивать
Настраивать

После того, как сценарий был загружен в 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 я смог отобразить нарезанные звуковые сэмплы для каждой кнопки и воспроизвести каждый сэмпл.

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