Миди контроллер на Ардуино Уно (HIDUINO)
- Войдите на сайт для отправки комментариев
Приветствую всех! не так давно у меня появилась необходимость сделать миди контроллер на Arduino Uno. Существует несколько способов это сделать. Например использовать виртуальный миди кабель hairless midi и виртуальный миди-порт loop_midi. Но меня это не устраивало, так как хотелось,чтобы было plug and play, без использования сторонних софтин.И вот на помощь приходит HIDUINO. Порывшись на забугорных сайтах и форумах, а также с консультацией с несколькими людьми, я одолел этот проект. Хочу и с вами поделиться этой инфой.
Всё выполнялось на системе windows 7, на маке не работал, не знаю как там это сделать, поэтому директории могут отличаться на других системах.
Вот пошаговая инструкция, как это сделать:
1. Скачать последнюю версию библиотеки Midi library , разархевировать и скопировать в папку, где находятся все библиотеки Arduino
2. Загрузить скетч в Arduino
3. Скачать и установить Java Runtime Enviroment последней версии
4. Скачать и установить Flip c сайта Atmel
5. Соединить пин RESET (ICSP) на плате ардуино с GND,как показано на рисунке можно джамперами или небольшой отвёрткой, это 6-пиновый отдел, который находится на плате Arduino ближе к USB разьёму.Теперь чип The Atmega16u2 переходит в режим DFU (Device Firmware Update)
6. Перейти в Пуск\Устройства и принтеры
7. В устройствах будет либо «неизвестное устройство»,либо «The Atmega16u2», либо «Arduino Uno DFU»
8. Кликнуть правой кнопкой мыши по ярлыку и перейти в пункт «Свойства».
9. Кликнуть на вкладку «Оборудование».
10. Кликнуть на «Свойства» этого обьетка.
11. Кликнуть на «Изменить параметры»
12. Кликнуть на «Обновить драйвер»
13. Кликнуть на «Выполнить поиск драйверов на этом компьютере»
14. Назначьте директорию, куда вы установили программу Flip, по дефолту это C:\Program Files\Atmel\Flip 3.4.7\usb
15. Идёт процесс установки драйверов, соглашаться на все установки драйверов
16. После установки получите уведомление, что драйверы AT90USB162 либо The Atmega16u2 успешно установлены
17. Скачать Arduino Firmware со страницы Github (кликните на RAW, нажмите сочетание клавиш Ctrl+S, сохраните файл в любую директорию, желательно на рабочий стол.
18. Измените формат этого файла. Просто удалите txt в конце названия и сохраните, файл должен быть с разрешением .hex
19.Скачать HIDUINO firmware cо страницы GITHUB.:Желательно также на рабочий стол. Также измените формат файла на .hex
20. Откройте Flip
21. Кликните на вкладку Device\Select (либо сочетание горячих клавиш Ctrl+S). Выбрать The Atmega16u2
22. Кликните на вкладку Settings\Communication\USB (либо сочетание клавиш Ctrl+U). Нажать Open
23. Загрузить hex файл. File\load HEX file (сочетание клавиш Ctrl+L)
24. Выберите ваш сохранённый файл Arduino_midi.hex (пункт 19)
25. В левой области программы проставьте все галочки и нажмите RUN
25. Отключите Arduino и заново подключите. Компьютер автоматически установит нужные драйвера
26. Проверьте, что компьютер показывает ваше устройство с названием вашего hex файла (Пуск\Принтеры и утсройства)
27.ГОТОВО! Теперь Ардуино работает в качестве миди-контроллера
Если вы решили переделать скетч, и заново залить его в ардуино:
1. Замкните также RESET пин и GND на плате ардуино (см. пункт 5 в разделе ПРОШИВКА)
2. Ардуино определится компьютером как The ATmega16u2
3. Открыть Flip
4. Кликнуть Device\Select
5. Выбрать atmega16u2
6. Кликнуть Settings\Communication\USB
7. Нажать Open
8. Найти hex файл Arduino-usbserial-atmega16u2-Uno-Rev3 (пункт 17 в прошивки миди контроллера)и загрузить его (кликнуть file\Load HEX file)
9. Кликнуть RUN
10. Отключить Ардуино и заново подключить
11. ГОТОВО! Ардуино теперь снова определяется как Arduino UNO
Если вы хотите изменить название миди-контроллера:
Имя устройства задаётся при помощи файла с разрешением .hex,который компилируется из нескольких других файлов.
1. Скачать и установить Notepad++
2. Скачать и установить компилятор WinAvr
3. Скачать папку HIDUINO (справа есть Download ZIP, если нет, то нужно зарегистрироваться на сайте)
4. Распаковать, желательно на рабочем столе
5. Скачать LUFA
6. Распаковать, желательно на рабочем столе
7. Открыть папку hiduino master\src
8. Скопировать папку arduino_midi
9. Вставить в разархивированную папку Люфа, LUFA\Projects
10. В скопированной папке arduino_midi есть файл Descriptors.c
11. Откройте файл с помощью Notepad++
12. Искать строку 263
13. Вместо “arduino_midi’ напишите своё название
14. Сохраните и закройте файл
15. После этого проверьте, что команда make-help возвращает справку, а не ошибку (открыть командную строку и написать make, нажать клавишу enter)
16. Если всё хорошо, написать в командной строке путь в директорию папки arduino_midi. Можно в папке arduino_midi вверху кликнуть по адресной строке и скопировать адрес. При открытии командной строки (cmd) сразу напишите cd пробел и вставьте скопированный адрес папки. Например* C:\Users\Admin\ cd C:\Users\Admin\Desktop\lufa-LUFA-140928\Projects\arduino_midi
17. Нажать Enter
18. Появится сразу строка с вашим адресом, написать make и нажать enter
19. Идёт процесс компиляции, ждать пока закончится
20. Если при компиляции произошла ошибка, то в файле arduino_midi.c нужно закомментировать 74 строку и вместо неё вставить 2 строки
21. CLKPR = (1 << CLKPCE);
CLKPR = (0 << CLKPS3) | (0 << CLKPS2) | (0 << CLKPS1) | (0 << CLKPS0);
22. Сохранить и закрыть файл
23. Повторить шаг 16.
24. После того как завершится процесс компиляции файла. В папке появится несколько файлов. Нас интересует файл arduino_midi.hex, это и есть файл для прошивки с вашим именем миди-контроллера. Желательно скопировать его на рабочий стол.
25. Переименуйте его своим названием
26. ГОТОВО!
Если в диспетчере устройств осталось прежнее название вашего контроллера:
1. Открыть диспетчер устройств
2. Найти в списке звуковых аудио-устройств ваш контроллер
3. Щёлкнуть правой кнопкой мыши
4. Удалить (драйверы)
5. Контроллер исчезнет из списка устройств
6. Отключить миди-контроллер и заново подключить
7. Компьютер автоматически установит необходимые драйверы
8. Проверьте название вашего вашего контроллера в диспетчере устройств
9. ГОТОВО!
Добавил видео:
https://www.youtube.com/watch?v=ZqsMweDjEV8&index=1&list=PLtOU3cLR_hGSDq...
Это все очень интересно, но можно ли сделать так, чтобы Arduino была видна сразу как два устройства: как COM-порт для прошивки и как MIDI-порт?
Это все очень интересно, но можно ли сделать так, чтобы Arduino была видна сразу как два устройства: как COM-порт для прошивки и как MIDI-порт?
рожа не треснет - по 40 устройств на одном хосте иметь?
А нефиг водиночку целый порт занимать!
Хорошая работа и внятное описание алгоритма действий! Я так понимаю, что получился контроллер plug&play только для одного ПК? А есть мысли как сделать его полноценным plug&play устройством для любого компьютера?
Хорошая работа и внятное описание алгоритма действий! Я так понимаю, что получился контроллер plug&play только для одного ПК? А есть мысли как сделать его полноценным plug&play устройством для любого компьютера?
в каком месте инструкции указано, что устройством можно пользоваться только на компьютере ТС?
Очень полезная информация и крутое видео! Мучался с поиском схем самодельной мидиклавы и самодельной драммашины типа Novation Launchpad, плюс ко всему расшаривал Миди протокол, и случайно узнал что существует контроллер Аурдино...)))
Недавно меня приспичило смастерить мидиклаву на 5 октав (61 клавиша) + 2 кнопки на переключение мидиканалов, больше мне и ненужно.
Заодно смастерить типа Лаунчпада на 64 кнопки из матриц 4х4, и так же +2 кнопки для переключения мидиканалов...
Потом мелькнула идея - Что если сделать из одного Аурдино один модуль на 2 устройства? Тоесть захотел поиграть на клавишах - воткнул контроллер и поехал.., захотел поиграться с ударниками - переткнул контроллер в матрицу с кнопками... Зашить кнопки и клавиши в одинаковой последовательности отправки данных на контроллер и хреначить... если не проканает то и хрен с ним).
Может выглядит глупо, но я в этом деле только ещё дилетант и возникло несколько вопросов пока что в плане железа для 64х кнопок и их подсветки + просто 2х кнопок (для миди каналов):
Если собирать на Aurdino Uno
Может кто пробовал собирать такое, или есть проект под это дело в интернете дельный?
Что лучше использовать для расширения входов и сколько штук?
Какие комплектующие ещё нужно преобрести помимо кнопок, резисторов и светодиодов?
Извеняйте за простейшие вопросы, но интерисуюсь у опытных людей которые может чего посоветуют пока ещё на берегу =).
Что лучше использовать для расширения входов и сколько штук?
Какие комплектующие ещё нужно преобрести помимо кнопок, резисторов и светодиодов?
Извеняйте за простейшие вопросы, но интерисуюсь у опытных людей которые может чего посоветуют пока ещё на берегу =).
Для расширения входов используются сдвиговые регистры, в ардуино уно можно подключить до 8 сдвиговых регистров, на каждый регистр можно подключить 8 пинов. В итоге будет 64 входа)
Существует ещё дальномер HC SR-04, это если хочешь например рукой управлять громкостью. Или пьезодатчики, в основном их пользуют для драм машины. Фоторезисторы-можно также управлять рукой,привязал резистор например в к фильтру, закрыл резистор рукой, то есть затемнил его - фильтр заработал
...в ардуино уно можно подключить до 8 сдвиговых регистров...
А с чем связаны такие ограничения?
...в ардуино уно можно подключить до 8 сдвиговых регистров...
А с чем связаны такие ограничения?
это я не знаю, ещё не разобрался с этим вопросом)
Хорошо, тогда поделитесь ссылочкой на информацию, что к Ардуине нельзя подключить более 8 регистров.
Отличный проект.
HIDUINO тоже часто спользую
недавно Korg Monotron Duo мидировал, вполне работоспособно получилось https://www.youtube.com/watch?v=V1A4Tqi3_Y8