Миди контроллер на Ардуино

kentforth

Active Member
25 Ноя 2011
444
112
43
37
Коллеги! я тут запилил видос, о том как сделать себе бюджетный миди контроллер. Всё подключение было на макетной плате. Arduino Uno я покупал в районе 300 р. Большее скорее подойдет для студентов нищебродов, которые не хотят переплачивать за дорогостоящие контроллеры:)
 
Хорошее видео, спасибо! У тут дело даже не в нищебродстве, ваше видео натолкнуло на мысль сделать контроллер под себя
Именно можно сделать под себя расположение органов управления.

Натолкнуло собственно вот на какую мысль, ваша прошивка позволяет работать только с двумя buttons и одним упорным потенциометром?

1) в прошивку можно включать любое количество потенциометров и buttons?
2) я так понял что вы программировали в этой прошивке на потенциометр и кнопки - команды midi cc и на потенциометр (изменение значения mdi cc)?
3) возможно ли в эту прошивку внести код для работы не с упорными потенциометрами а с бесконечными энкодерами?
4) поддерживает ли этот ардуино (тоесть хватит ли у него физических портов) например для создания на нем контроллера к примеру с 30 бесконечными энкодерами и 60 кнопками и настроить на этой прошивке feedback для работы с контроллером
5) контроллер созданный на ардуино и адаптированной прошивке может работать только с midi CC или может работать и с Sysex сообщениями?
 
ваша прошивка позволяет работать только с двумя buttons и одним упорным потенциометром?
прошивка тут не причем, она никакой роли не играет на колличество используемых кнопок и крутилок на вашем миди контроллере. Влияет скетч скетч и колличество свободных разьемов на плате Арлуино. Как в скетче пропишете,столько и будет у вас доступных входов. Колличество е свободных портов на ардуино моно увеличить с помощью мультиплексоров.

1)Моно включать любое коллличество, она никак не влияет на скетч ардуино и колличество использемых кнопок, она лишь позволяет компьютер определить ваш миди контроллер как HID устройство.
2) Да, все верно
3) с бесконечными энкодерами пока не сталкивался, но я предполагаю это тот е потенциометр, имеет таке номинал, например 10 кОм, в софте крайнее полоение будет определятся как 10кОм, но ручку просто крутите сколкьо угодно вправо или влево, например если назначили на этот энкодер ручку громкости, то когда дойдет до крайнего полоения, ручка громкости остановит свое двиение, а сами моете крутить энкодер сколько угодно
4) Видел как на Ардуино делали контроллер из более 30 кнопок, моно подключить мульти плексор, кадый мультиплексор будет занимать один цифровой вход на ардуино, и на кадый мультиплексор моно подключить до 8 кнопок, если например подключить 8 мультиплексоров, то будем иметь 64 кнопки, точно таке и с потенциометрами
5)что такое Sysex я не знаю
[DOUBLEPOST=1476815170][/DOUBLEPOST]Если хотите знать больше, подписывайтесь на мой канал, в дальнейшем буду запиливать другие видосы на эту тему. Кнопки, потенциометры и прочее,что связано с самодельными миди-контроллерами)
 
@kentforth, как крутилки включаются в МК, ко входам АЦП?

ps
Ну и так, замечания по тексту (кто его писал - вопрос тот еще).
Такая конструкция на Си как в 75 строке работать не будет, так не обнуляют.
reg |= (0<<bit_1) | (0<<bit_2) и т.д.

Ему повезло, что эти биты при загрузке уже обнулены аппаратно.

Чтобы обнулить надо применять такую конструкцию
reg & = ~ ((1<<bit_1)|(1<<bit_2))
 
как крутилки включаются в МК, ко входам АЦП?
потонциометры подключатся к аналоговым пинам ардуино
[DOUBLEPOST=1476853828][/DOUBLEPOST]
Такая конструкция на Си как в 75 строке работать не будет, так не обнуляют.
у меня все прекрасно работает, проверено неоднократно на разных компьютерах
 
предполагаю это тот же потенциометр
Разве у энкодеров не угол поворота считывается?
[DOUBLEPOST=1476856881][/DOUBLEPOST]
5) контроллер созданный на ардуино и адаптированной прошивке может работать только с midi CC или может работать и с Sysex сообщениями?
Может работать и с Sysex. Интересует работа с Mackie Protocol?
 
Именно можно сделать под себя расположение органов управления.

Типа такого
axel_lc24_07.jpg


А кишки его не испугают? :D
axel_lc24_09.jpg
 
  • Like
Реакции: fractala и Acort
вот это махина
ecosoft, поддержка sysex это круто, так как на одном midi СС особо не разбежишься.

Я бы конечно не стал такой микшер делать - жизни не хватит, но что нибудь простенькое для управления одной-двумя железками по sysex запилил
 
Что-то нашёл. Это самое простое


Это уже интересней


А здесь сама суть вопроса:

http://web.archive.org/web/20150423140421/http://home.comcast.net/~robbowers11/MCMap.htm
http://blog.codyhazelwood.me/motorized-faders-and-the-arduino/ Здесь бывает сервер вырублен у него. Если очень надо, то через ютуб можно попросить этого Cody запустить сервер. У него там примеры кода лежат и описание действий. Ну, а дальше - насколько хватит фантазии, умения, терпения и денег.
 
Здравствуйте уважаемые! Помогите пожалуйста с решением проблемы.Собрал данный контроллер (большое спасибо kentforth за грамотную и простую инструкцию) но столкнулся с таким явлением как "подёргивание" виртуальных органов управления в программе (как и автор работаю в Ableton Live 9).Это выглядит как непрерывное произвольное перемещение фейдера в маленьком диапазоне.Сначала грешил на потенциометр но его замена на заведомо исправные проблему не решила,после чего обнаружил что Ардуино непрерывно транслирует "левые" миди сообщения,TX диод на плате и Key/MIDI In Indicator в Ableton постоянно активны .С такого рода глюками ранее не сталкивался,ума не приложу что делать.Поиск в инете не дал результатов.Буду весьма признателен за любые возможные советы в решении проблемы.
Для наглядности сделал видео с демонстрацией.
 
Последнее редактирование:
Для того,чтобы избавиться от дребезга, нужен подтягивающий резистор на 10Ком, вы его куда припаяли?
 
Да,спасибо,смотрел.Всё сделал в точности как на видео.На кнопках у меня тоже дребезг присутствует (
P.S. заметил что иногда дребезг пропадает при соприкосновении руки с контактом GND
 
Последнее редактирование:
программные математические фильтры использовать, типа такого
спасибо за рекомендацию,фильтр Калмана это наверное очень круто но мне точно не подходит так как я в этом деле начинающий и хотелось бы решить проблему более доступными для меня методами
 
@Solidstate, существуют специально-обученные для работы с Ардуинкой библиотеки этого фильтра. Они прекрасно в скетч вписываются. Вот пример. Я это для гироскопа использовал. К томуже, вам можно посоветовать вместо простого притягивания к земле использовать еще и RC-фильтр - там конденсатор и резистор, можно разобраться.. Ну или использовать delay, что нежелательно
 
  • Like
Реакции: Solidstate
>RC-фильтр - там конденсатор и резистор, можно разобраться.. Ну или использовать delay

-- Вообще-то есть более простое решение - небольшой гистерезис.
 
  • Like
Реакции: ganytch
Кнопки надо читать через библиотеку debounce. Поиском в Скетч/Подключить библиотеку/Управлять библиотеками. Там же можно скачать миди библиотеку, если она сразу вместе с IDE не установилась. Что касаемо дребезга потенциометра, он него можно избавиться сглаживанием.
Типа:

Код:
sensVal = (0.1 * sensVal) + (0.9 * analogRead(7));

Если непонятно, что делает этот код: новое значение переменной равно 1/10 предыдущего значения переменной плюс 9/10 нового значения с аналогового входа.
Пропорции можно менять на свой вкус.

Для подключения энкодеров тоже есть библиотеки которые работают с grey code. Скачивать также через управление библиотеками поиском по "encoder".
 
  • Like
Реакции: Solidstate
Подскажите, как можно сделать не юсб а стандартные миди входы выходы? Другу надо на кемпер буквально 4 кнопки - футсвич - а там разьемы на 5 контактов которые...
 

Сейчас просматривают