Реклама на сайте

вход на сайт

Имя пользователя :
Пароль :

Восстановление пароля Регистрация
USB MIDI-контроллер на Arduino
USB MIDI-контроллер на Arduino

В очередной раз играя на гитаре и управляя звуком через Peavey ReValver и прочие Amplitube, задумался о приобретении MIDI-контроллера. Фирменные устройства, вроде Guitar Rig Kontrol 3, стоят около 13 000 рублей, и обладают только напольным исполнением. То есть оперативно менять положения нескольких регуляторов весьма проблематично.

Различные контроллеры DJ направленности выглядели интереснее за счет обилия фейдеров и энкодеров. Решено было совместить приятное с полезным и сделать MIDI-контроллер самому.

Начальные требования: 2-7 фейдеров, столько же роторных потенциометров/энкодеров, около 10 кнопок, подключение по USB.

Далее стал выбирать компоненты. Arduino выбрал по причине наличия, в принципе можно использовать ту же ATmega32u4, STM, либо другой контроллер. Фейдеры и кнопки нашел в местном радиомагазине. Энкодер и потенциометры уже были когда-то куплены. Тумблеры нашел в гараже. Корпус решил изготовить из верхней крышки DVD плеера.

Комплектующие:
-Arduino UNO R3 1 шт.
-Фейдеры сп3-25а 5 шт.
-Рот. потенциометры 3 шт.
-Энкодер 1 шт.
-Кнопки pbs-26b 16 шт.
-Крышка от DVD 1 шт.
-Тумблеры 2шт.

Сначала согнул корпус и пропилил в нем бормашиной отверстия под фейдеры:

USB MIDI-контроллер на Arduino

Затем просверлил отверстия для тумблеров и рот. потенциометров, разметил положение кнопок. Так как сверла на 19 (да и соответствующего патрона для дрели) у меня не было, то отверстия для кнопок сверлил на 13, а затем увеличивал разверткой.

USB MIDI-контроллер на Arduino

Основа готова, теперь можно думать, как подключать все это добро к Arduino. Во время изучения данного вопроса наткнулся на замечательный проект HIDUINO. Это прошивка для ATmega16u2 на борту Arduino, благодаря которой устройство определяется как USB-HID MIDI device. Нам остаётся только отправлять данные MIDI по UART со скоростью 31250 бод. Чтобы не захламлять исходники дефайнами с кодами MIDI событий, я воспользовался этой библиотекой.

Так как я использовал Arduino, то решил сделать шилд, к которому уже и будут подключаться вся периферия.
Схема шилда:

USB MIDI-контроллер на Arduino

Как видно из схемы кнопки подключил по матричной схеме. Задействованы встроенные подтягивающие резисторы ATmega328, поэтому логика инверсная.




USB MIDI-контроллер на Arduino

Забыл разместить на печатке диоды, пришлось подпаивать к кнопкам


Потенциометры подключены через мультиплексор 4052b к вводам АЦП.



Энкодер повесил на аппаратное прерывание.



Печатную плату развёл в Sprint layout, Затем изготовил старым добрым ЛУТ'ом с использованием самоклеющейся плёнки и хлорного железа. Качество пайки страдает от ужасного припоя.

Готовый шилд:

USB MIDI-контроллер на Arduino

USB MIDI-контроллер на Arduino

Для заливки прошивки в ATmega32u4 я кратковременно замыкал 2 пина ICSP, затем использовал Flip. В дальнейшем подключил к этим пинам кнопку.

USB MIDI-контроллер на Arduino

Прошивка работает, осталось прикрутить стенки и лицевую панель. Так как я размечал все по месту, то на рисование панели времени ушло больше, чем на всё остальное. Выглядело это так:

1. В качестве фона картинки выставлялась миллиметровка
2. Размечались отверстия
3. Полученное выводилось на печать
4. Вырезались все отверстия
5. Откручивались и снимались все элементы
6. Устанавливалась панель, устанавливались на места все кнопки/потенциометры
7. Отмечались несоответствия шаблона и корпуса
8. Переход к пункту 2, пока все отверстия не совпадут

Панель изготовлена из миллиметрового ПЭТ, покрытого плёнкой с принтом и ламинированием, отверстия вырезались лазером по cdr файлу. У иркутских рекламщиков все это обошлось мне всего в 240 рублей.

USB MIDI-контроллер на Arduino

Боковые стенки выпилил из фанеры.

Вид устройства на текущий момент:

USB MIDI-контроллер на Arduino

USB MIDI-контроллер на Arduino

Стоимость комплектующих:
-Arduino UNO R3 320 р.
-Фейдеры сп3-25а 5х9=45 р.
-Рот. потенциометры + ручки 85 р.
-Энкодер 15 р.
-Кнопки pbs-26b 16х19=304 р.
-Панель 240 р.
-Мультиплексор 16 р.
-Фанера, текстолит, тумблера, корпус от DVD — в моём случае бесплатно.

Итого: 1025 руб.

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

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

Код для Arduino и печатка на гитхабе.

Опубликовал: Valar386, источник

  • 0
Новость опубликована 13-05-2015, 14:53, её прочитали 2080 раз(а)
Понравилась тема? Посмотрите эти:
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.