Оглавление:

HX1-DM - переработанная драм-машина DIY с питанием от Arduino DUE (сделанная с помощью Dead Maschine MK2): 4 шага
HX1-DM - переработанная драм-машина DIY с питанием от Arduino DUE (сделанная с помощью Dead Maschine MK2): 4 шага

Видео: HX1-DM - переработанная драм-машина DIY с питанием от Arduino DUE (сделанная с помощью Dead Maschine MK2): 4 шага

Видео: HX1-DM - переработанная драм-машина DIY с питанием от Arduino DUE (сделанная с помощью Dead Maschine MK2): 4 шага
Видео: ЧИСТКА ГЕТТО НА GALAXY DM | PROMO - hantarix | /gift hx1 2024, Ноябрь
Anonim
Image
Image
Ремонт
Ремонт

Спец

  • Гибридный 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

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