Оглавление:
Видео: HX1-DM - переработанная драм-машина DIY с питанием от Arduino DUE (сделанная с помощью Dead Maschine MK2): 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Спец
- Гибридный MIDI-контроллер / драм-машина: питание от Arduino DUE!
- 16 пэдов для измерения скорости с очень малой задержкой 1> мс
- 8 ручек, назначаемых пользователем на любую команду Midi #CC
- 16-канальный встроенный секвенсор (компьютер не нужен !!)
- MIDI вход / выход / сквозная функциональность (может использоваться как MIDI интерфейс USB!)
- Частичная поддержка MIDI-синхронизации и MTC (работает с MMC и DAW)
Это определенно один из самых сложных проектов, над которыми я работал, речь шла о 17 выходных регистрах сдвига, 6 входных сдвиговых регистрах, 2х 16-канальных мультиплексорах, работающих на печатной плате, я понятия не имею, что есть что и где, плюс я никогда не перепутал со сдвиговыми регистрами / мультиплексорами до ……
Это началось как импульсивная покупка на eBay, я действительно хотел Native Instruments Maschine, потому что мне всегда нравились барабанные пэды на них по сравнению с теми, что были в студии MPC, которой я владел, поэтому, когда я увидел неисправный на eBay за 40 фунтов стерлингов, я подумал Я бы попытался исправить это с худшим сценарием: «если я не могу это исправить, у меня есть Arduino DUE и несколько UNO, лежащих поблизости, я всегда мог бы взломать»
Мне все равно очень нравятся эти барабанные пэды !!!!
Запасы
1 неисправный Native Instruments Maschine MK2
1 х Arduino Due.
17 x SN74HC595 - 8-битные выходные регистры сдвига
6 x SN74HC165 - 8-битные входные регистры сдвига
2 x 74HC4067 - 16-канальный мультиплексор.
2 x 3,2 дюйма, 256 x 64 OLED-дисплея.
какой-то плоский провод (подойдет старый гибкий кабель)
Шаг 1: Ремонт
Продавец eBay был достаточно любезен, чтобы дать представление о том, чего ожидать в описании, и удалил порт USB. На плате произошло перенапряжение, и она не включилась. Подскажите мультиметр…. На плате, похоже, было короткое замыкание … «Я уже ремонтировал бесчисленное количество материнских плат с помощью коротких замыканий. Итак, насколько это сложно!?!» Оказалось, что это перенапряжение (и, вероятно, частично из-за конструкции платы) вырвало почти КАЖДУЮ компонент на плате, включая основной ЦП. Эта доска была в очень плохом состоянии!
Я продолжал толкать свой мультиметр, провел небольшое исследование компонентов и выяснил, что делает каждый из них, плюс NI проделал большую работу, чтобы сделать вещи довольно очевидными с помощью различных контрольных точек на материнской плате ??.
Шаг 2: Взлом
Зная, что мне нужно заменить все, кроме основного процессора (который не понадобится), я обратился к eBay. К счастью, все необходимое было дешевым, поэтому заказать их было весело. ?
17 x SN74HC595 - 8-битные выходные регистры сдвига
17 выходных регистров сдвига используются для управления разноцветными светодиодами пэда ударных и всеми светодиодами кнопок (136, если быть точным !!). Они действительно просты в использовании и быстро нашли библиотеку с помощью Arduino IDE, чтобы сэкономить на создании одного.. они связаны вместе.
6 x SN74HC165 - 8-битный входной регистр сдвига
Эти входные регистры сдвига отлично подходят для нескольких входов на 1 канал. Всего 48 кнопок.
2 x 74HC4067 - 16-канальный мультиплексор
У нас осталось 16 пэдов и 8 ручек, они тоже аналоговые. Мне показалось, что их проще использовать, так как те, что на плате, были 8-канальными, и у меня были проблемы с поиском места для подключения выводов данных.. cue spaghetti junction….
2 x 3,2 дюйма, 256 x 64 OLED-дисплея
Там должны быть экраны !!! Я не мог найти никакой информации об оригинальных ЖК-экранах, которые поставлялись в NI Maschine, и я не мог больше беспокоиться о том, чтобы тратить время на попытки, поэтому я решил заказать немного из Китая … Я использовал библиотеку UG8x8, чтобы заставить их работать. Новые экраны были немного меньше оригинала, поэтому я просто убрал «плохие детали».
1 х Arduino Due
У меня это лежало какое-то время в ожидании проекта, достаточно достойного для всей этой мощи !! Возникла проблема, с которой я столкнулся. Кажется, в некоторых версиях этих плат есть проблема со сбросом, что означало, что мне иногда приходилось нажимать кнопку сброса, чтобы заставить эту вещь работать после загрузки эскиза. Это было легко исправить с помощью резистора 10 кОм (об этом есть сообщение на форуме Arduino).
Шаг 3: Код
Я был действительно впечатлен тем, насколько много поддержки в сообществе Arduino, поиск примеров кода и библиотек для различных компонентов был действительно простым и понятным.
Настроить и запустить USB midi было легко и заняло несколько минут. Светодиоды заняли некоторое время, и мне пришлось создать набросок, который постепенно устанавливал ВЫСОКОЕ значение каждого вывода с интервалами в 1 секунду, и сделал заметку. Я сделал массив, содержащий номера ПИН-кодов, чтобы упростить процесс кодирования всего.
Я сделал 2 библиотеки для работы с мультиплексорами, одна обрабатывает аналоговые пэды, а другая - ручки. Опять же, это было действительно просто. Я прикрепил их, не стесняйтесь использовать edit и т. Д.
Я хотел иметь секвенсор и возможность записи без использования компьютера, я нашел некоторую информацию о том, как преобразовать BPM в мс, и нашел отличную библиотеку таймеров Arduino DUE.
Используя библиотеку таймера, я смог настроить вводы для чтения и вещи через определенные промежутки времени:
Пэды @ 1 мс - я обнаружил, что это дает лучший баланс между артефактами отклика / устранения дребезга.
Кнопки @ 40 мс - я использовал библиотеку очереди, поэтому нажатия не пропущены.
Обработка выполняется в основном цикле, вы не можете делать слишком много, когда находитесь в прерывании, так как это заблокирует Arduino.
Миди-материалы @BPM (в мс) - для секвенирования при желаемом BPM вызывается функция, которая обновляет, какие ноты ETC должны воспроизводиться, и увеличивает счетчик ударов.
Шаг 4: Заключение
Не уверен, что я здесь сделал, но я очень горжусь, пэды реагируют отлично, мне пришлось повозиться со временем, чтобы получить правильный баланс с отзывчивостью и проблемами с дребезгом. Секвенирование работает отлично, и как только я разберусь с поддержкой DAW, я могу полностью интегрировать эту вещь в свой рабочий процесс и могу добавлять вещи в контроллер, который я всегда хотел! Это был действительно интересный проект для работы и отличное упражнение. в освоении языка C, понимании обратного проектирования и принципов работы мультиплексоров, регистров сдвига и MIDI-секвенсора. Я продолжаю улучшать основной код и, возможно, однажды выпустим его как дизайнер ритмов с открытым исходным кодом.
ЧАЕВЫЕ:
Я нашел, как изменить имя USB DUE, отредактировав один из файлов заголовков в папке Arduino / SAM.
MIDI-OX - отличный инструмент для тестирования функциональности Midi.
ССЫЛКИ:
www.usb.org/sites/default/files/midi10.pdf - USB MIDI Spech https://midi.teragonaudio.com/tech/miditech.htm https://guitargearfinder.com/guides/convert-ms -mi… Некоторая информация о том, как преобразовать BPM в мс
travis-ci.com/SMFSW/Queue - для ввода кнопок, чтобы мы не пропустили нажатия!
github.com/olikraus/u8g2/wiki/u8x8referenc… - библиотека UG8 для светодиодных / ЖК-экранов
github.com/ivanseidel/DueTimer/releases - библиотека синхронизации Arduino DUE
www.pjrc.com/teensy/td_libs_Encoder.html - Encoder Lib для большой ручки
shiftregister.simsso.de/ - Библиотека регистров ShiftIn - Создано Хенриком Хайне, 24 июля 2016 г.
forum.arduino.cc/index.php?topic=57636.0 - материал для временного кода MIDI
Рекомендуемые:
Счетная шкала, сделанная с помощью Arduino: 6 шагов
Подсчет масштабов, созданных с помощью Arduino: этот проект все еще находится в стадии разработки, но он достиг точки, когда полезно поделиться деталями, чтобы другие могли извлечь выгоду из этого и идеи. По сути, это шкала, построенная с использованием Arduino в качестве микроконтроллера, общего ло
Круговая линейка, сделанная с помощью лазерного резака: 5 шагов
Круговая линейка, созданная с помощью лазерного резака: В итоге я сделал эту линейку случайно. Искал круговые весы для бревен и знал, что линейки для слайдов имеют весы для бревен. Но масса чисел в шаблонах выглядела так красиво, что я решил сделать круговую логарифмическую линейку. Страницы на https: // sliderule
Управление светодиодной матричной матрицей с помощью Arduino Uno (лицо робота с питанием от Arduino): 4 шага (с изображениями)
Управление массивом светодиодных матриц с помощью Arduino Uno (лицо робота с питанием от Arduino): в этом руководстве показано, как управлять массивом светодиодных матриц 8x8 с помощью Arduino Uno. Это руководство можно использовать для создания простого (и относительно дешевого) дисплея для ваших собственных проектов. Таким образом вы можете отображать буквы, цифры или настраиваемые анимации
Музыкальная менора (сделанная с помощью Arduino): 13 шагов (с изображениями)
Музыкальная менора (сделанная на Arduino): скоро Ханука! Поэтому я подумал, что было бы неплохо сделать проект, связанный с праздником. Я сделал эту классную ханукальную менору с помощью Arduino, которая проигрывает новую песню каждый раз, когда вы меняете ночь, нажимая кнопку. Светодиоды
Управление питанием периферийных устройств с помощью экранной заставки: 3 шага (с изображениями)
Периферийное управление питанием с помощью экранной заставки: во-первых: этот проект подключается к порту принтера на компьютере. Я не несу ответственности за то, что кто-то поджег свою материнскую плату. Пожалуйста, будьте осторожны и трижды проверьте все свои соединения, если вы собираетесь попробовать что-то вроде