Оглавление:

Ножной MIDI-контроллер Arduino: 12 шагов
Ножной MIDI-контроллер Arduino: 12 шагов

Видео: Ножной MIDI-контроллер Arduino: 12 шагов

Видео: Ножной MIDI-контроллер Arduino: 12 шагов
Видео: 10. Миди контроллер на Arduino Nano|Arduino| Midi 2024, Ноябрь
Anonim
Ножной MIDI-контроллер Arduino
Ножной MIDI-контроллер Arduino

Недавно я разработал этот MIDI-контроллер для управления лупером фраз, встроенным в педаль задержки Boss DD500. Я управляю всей своей гитарной установкой с помощью MIDI-платы Behringer FCB, и это позволяет мне изменять патчи на педали задержки в петле эффектов, одновременно переключая каналы усилителя.

В DD500 встроена очень простая функция лупера, но одним из ее недостатков является то, что, когда лупер активен, он управляется ножными переключателями на педали. Это означает, что вы не можете менять патчи на педали, пока петля активна, поскольку она по сути захватывает функции ножных переключателей. Поскольку я использую MIDI, этого ограничения не существует, поскольку это просто физическая проблема. Это действительно означало зарезервировать 5 педальных переключателей на моем основном MIDI-контроллере для лупера, и поэтому я решил построить для них отдельный контроллер.

Мой первоначальный план состоял в том, чтобы взять небольшой корпус Hammond, вставить в него 5 педальных переключателей и обучить себя основам программирования на Arduino. Когда я начал узнавать больше, и мой код работал, это в конечном итоге побудило меня пробовать больше, а затем, по сути, превратилось в нечто большее.

Шаг 1: концепции

Концепции
Концепции
Концепции
Концепции

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

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

Шаг 2: прототипирование макета

Макетирование макетов
Макетирование макетов
Макетирование макетов
Макетирование макетов

Весь проект был построен на макете и полностью протестирован, чтобы убедиться, что он полностью работает с DD500, прежде чем начнутся какие-либо работы по его постоянному размещению. В код были добавлены некоторые дополнительные функции, которые дали контроллеру некоторые дополнительные функции, которых не хватало DD500. Они будут обсуждаться более подробно в разделе кода.

Педаль имеет 5 ножных переключателей, 4 светодиода состояния, 5 ЖК-экранов I2C и управляется Arduino Nano Every. Он получает питание от блока питания гитарной педали 9 В через отдельную коммутационную коробку, которая передает это питание по MIDI-кабелю, используя 2 контакта, которые обычно не используются в MIDI-разъеме.

Шаг 3: Изготовление

Изготовление
Изготовление
Изготовление
Изготовление
Изготовление
Изготовление

Я рассмотрел множество возможных корпусов для размещения этого проекта и даже подумал о том, чтобы попытаться согнуть свой собственный корпус из листов алюминия. В конце концов я остановился на корпусе Hammond, который был достаточно широким, чтобы вместить 5 выбранных мною ЖК-экранов 16X2.

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

На этом этапе я решил сделать лицевую панель для экрана на заказ, чтобы лицевая сторона выглядела чистой, так как я вырезал отверстия в экране вручную с помощью Dremel и знал, что, вероятно, будут некоторые области, которые не будут идеальными. Я вырезал их в местной дизайн-студии, которая выполняет лазерную резку, сначала в виде картонных шаблонов, чтобы убедиться, что все мои размеры были правильными, а затем из белого акрила толщиной 3 мм для окончательной части.

Шаг 4: макет и макет САПР

Макет и макет САПР
Макет и макет САПР
Макет и макет САПР
Макет и макет САПР

На основе своих бумажных набросков я использовал Inkscape, чтобы разложить все физические компоненты и согласовать размеры и положения. На этом этапе я также придумал способ крепления экрана. Чтобы свести к минимуму количество видимых болтов на передней панели, я решил прикрепить все экраны к некоторым алюминиевым пластинам сзади, используя стойки, и тогда мне понадобилось бы всего 4 болта на пластину, чтобы прикрепить их к корпусу, что также будет удерживать лицевые панели экрана на месте.

Шаг 5: Дизайн печатной платы

Дизайн печатной платы
Дизайн печатной платы
Дизайн печатной платы
Дизайн печатной платы
Дизайн печатной платы
Дизайн печатной платы
Дизайн печатной платы
Дизайн печатной платы

Для создания печатной платы я воспользовался веб-сайтом EasyEDA. Он имеет среду редактора, в которой вы можете нарисовать схему своих компонентов, превратить ее в макет печатной платы, а затем экспортировать ее непосредственно в JLCPCB для преобразования в платы. Я никогда раньше не делал ничего подобного, но у них есть отличное руководство на сайте, объясняющее, как работает редактор, и в течение часа я спроектировал и заказал плату.

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

Платы прибыли примерно через 2 недели и, к счастью, работали без каких-либо проблем.

Шаг 6: Крепления экрана

Крепления экрана
Крепления экрана
Крепления экрана
Крепления экрана
Крепления экрана
Крепления экрана

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

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

Шаг 7: Вложение

Вложение
Вложение
Вложение
Вложение
Вложение
Вложение

Следующим шагом было изменение корпуса. Ножные переключатели и светодиоды были простыми, поскольку для каждого требовалось отверстие диаметром 12 мм и 5 мм соответственно.

Основная часть физической работы приходилась на вырезание отверстий в сетке. Я использовал Dremel с некоторыми сверхмощными отрезными дисками и различными напильниками, чтобы потом очистить отверстия. Эта часть заняла около 2 часов.

Корпус, который я использовал, был разработан для промышленных целей и был сделан путем сгибания цельного куска металла и точечной сварки углов. Это означало, что потребуется некоторая работа, чтобы очистить эти углы, используя наполнитель кузова автомобиля, чтобы выровнять низкие места и заполнить зазоры на краю.

К этому моменту футляр был полностью заправлен, и я все скопировал, просто чтобы посмотреть, как он будет выглядеть.

Шаг 8: Ой-ой

Ой-ой
Ой-ой
А-а
А-а
А-а
А-а

А потом пришло осознание того, что, несмотря на все мои планы и измерения, я сделал одну ОГРОМНУЮ ошибку. Разводку платы и корпуса я проектировал независимо друг от друга. В моей голове доска должна была сидеть почти вплотную к верхней стене с короткой стойкой позади нее. Но это никак не могло подойти. И не было места, чтобы его отложить в сторону. Огромная оплошность, но, к счастью, которую я смог исправить, поскольку между креплениями экрана на задней крышке корпуса все еще оставалось довольно много места. Еще несколько отверстий, просверленных в креплениях экрана, и пара стоек, и мы снова в деле, имея достаточно места, чтобы надеть крышку.

Шаг 9: покрасьте

Покрасить
Покрасить
Покрасить
Покрасить
Покрасить
Покрасить

Все снова разобрали, и корпус покрасили Metallic Candy Red, а затем нанесли несколько слоев лака. Случай оставили для лечения на неделю, хотя я обнаружил, что лак все еще был немного мягким в тот момент, когда я все наращивал. Из-за этого были повреждены несколько небольших участков краски. То, чего я стараюсь избежать в своем следующем проекте.

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

Шаг 10: Подключение

Проводка
Проводка
Проводка
Проводка
Проводка
Проводка
Проводка
Проводка

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

Провода для экранов были собраны в комплекты по 4 штуки и с помощью термоусадки и плетеной ленты собраны в одно целое.

Шаг 11: Код Arduino

Image
Image

Как абсолютный новичок в программировании на Arduino, я учился сам по себе. Код, вероятно, является программным эквивалентом «долгого пути», но мне было приятно, что он сработал так, как задумано.

У петлителя DD500 5 основных функций:

  • Включение / выключение лупера
  • Запись / наложение / воспроизведение
  • Воспроизвести записанный цикл
  • Остановить воспроизведение
  • Очистить записанный цикл

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

Еще одна функция, которую я добавил, заключалась в том, чтобы отслеживать, сколько раз была активирована функция записи / наложения. Это отслеживается в коде путем увеличения целого числа, которое отображается на экране «буфера», указывая, сколько треков записано. Хотя DD500 не может стирать отдельные треки, я добавил это просто как упражнение по кодированию, чтобы посмотреть, смогу ли я заставить его работать.

Похоже, возникла проблема с загрузкой файлов в Instructables, поэтому я поместил копию кода в Pastebin вместо этого по адресу:

В коде использовались 2 библиотеки:

LiquidCrystal_I2C

MIDI-библиотека FortySevenEffects

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

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

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

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