Съдържание:

HX1 -DM - Upcycled Arduino DUE Powered DIY барабанна машина (направена с мъртва машина MK2): 4 стъпки
HX1 -DM - Upcycled Arduino DUE Powered DIY барабанна машина (направена с мъртва машина MK2): 4 стъпки

Видео: HX1 -DM - Upcycled Arduino DUE Powered DIY барабанна машина (направена с мъртва машина MK2): 4 стъпки

Видео: HX1 -DM - Upcycled Arduino DUE Powered DIY барабанна машина (направена с мъртва машина MK2): 4 стъпки
Видео: q3d quickfit extruder 2024, Ноември
Anonim
Image
Image
Ремонтът
Ремонтът

Спецификацията

  • Хибриден Midi контролер / барабанна машина: Arduino DUE захранван!
  • 16 Скоростни сензорни подложки с много ниска латентност 1> ms
  • 8 копчета, които потребителят може да назначи за всяка команда на Midi #CC
  • 16-канален вграден секвенсор (не е необходим компютър !!)
  • MIDI вход/изход/през функционалност (може да се използва като USB midi интерфейс!)
  • Частична поддръжка на MIDI часовник и MTC (работи по управление на MMC и DAW)

Това определено е един от най -сложните проекти, по които съм работил, говорих за 17 изходни регистъра за смяна, 6 входни регистри за смяна, 2x 16 канални мултиплексора, работещи на платка Нямам представа какво е какво и къде плюс никога не съм бъркал със сместващи регистри / мултиплексори преди ……

Започна като импулсно изкупуване от eBay, наистина исках Native Instruments Maschine, защото винаги съм харесвал барабанните тампони върху тях в сравнение с тези в MPC студиото, което притежавах, така че когато видях дефектен в eBay за £ 40, си помислих Бих се опитал да го поправя, като най -лошият сценарий е „ако не мога да го поправя, имам Arduino DUE и няколко UNO, които лежат наоколо, винаги мога да направя някакъв хак“

И без това много ми харесват тези барабанни накладки !!!!

Консумативи

1 x дефектна машина за местни инструменти MK2

1 x Arduino Due.

17 x SN74HC595’s - 8 -битови изходни регистри за смяна

6 x SN74HC165’s - 8 -битови регистри за смяна на вход

2 x 74HC4067 - 16 канални мултиплексори.

2 x 3.2”256x64 OLED дисплея.

някакъв плосък проводник (ще е подходящ стар флопи кабел)

Стъпка 1: Ремонтът

Продавачът на eBay беше любезен да даде представа какво да очаква в описанието и беше премахнал USB порта. Платката е претърпяла пренапрежение и не се е включила. Посочете мултицета…. Изглежда, че платката има къса.. „Ремонтирал съм безброй дънни платки с къси панталони преди това. Колко трудно може да бъде!?!“Оказа се, че това пренапрежение (и вероятно отчасти дизайна на платката), беше извадило почти ВСЕКИ компонент на платката, включително основния процесор. Тази дъска беше в наистина лош начин!

Продължих да пробивам и пробивам с моя мултицет, направих малко проучване на компонентите и разбрах какво прави всеки плюс NI свърши чудесна работа, като направи нещата доста очевидни с различните тестови точки около дънната платка ??.

Стъпка 2: Хакването

Хакът
Хакът
Хакът
Хакът
Хакът
Хакът

Знаейки, че ще трябва да заменя всичко, освен основния процесор (което няма да е необходимо), се обърнах към eBay. Благодарение на всичко необходимо беше евтино, така че поръчването на товар от тях беше забавно. ?

17 x SN74HC595’s - 8 -битови изходни регистри за смяна

17-те изходни регистъра за смяна се използват за управление на многоцветните светодиоди на барабанната подложка и всички светодиоди за бутони (136 за да бъдем точни !!) Те са наистина лесни за използване и бързо намериха библиотека с помощта на Arduino IDE, за да се спася като си направя такава.. те са приковани заедно.

6 x SN74HC165’s - 8 -битов входен регистър за смяна

Тези регистри на смяна на входа са чудесни за множество входове на 1 канал. Общо има 48 бутона.

2 x 74HC4067 - 16 канални мултиплексори

Имаме 16 подложки и 8 копчета, които също са аналогови. Намерих, че е по -лесно да ги използвам, тъй като тези на борда бяха 8 -канални и имах проблеми с намирането къде да свържа пиновете за данни.. битка за спагети….

2 x 3.2”256x64 OLED дисплея

Трябва да има екрани !!! Не можах да намеря информация за оригиналните LCD екрани, които се появиха в NI Maschine и не можех да се притеснявам да губя повече време в опити, затова реших да поръчам някои от Китай … Използвах библиотеката UG8x8, за да работи. Новите екрани бяха малко по -малки от оригинала, така че просто премахнах „лошите битове“.

1 x Arduino Due

Имах това да лежа известно време в очакване на проект, достатъчно достоен за цялата тази сила !! Възникна проблем, който срещнах. Изглежда, че някои ревизии на тези платки имат проблем с нулирането, което означаваше, че понякога трябваше да натискам бутона за нулиране, за да стартирам работата след качване на скица. Това лесно беше поправено с 10K резистор (има публикация във форума на Arduino за това).

Стъпка 3: Кодът

Бях наистина впечатлен от това колко голяма подкрепа има в общността на Arduino, намирането на примери за код и библиотеки за различните компоненти беше наистина просто и ясно.

Стартирането и стартирането на USB midi беше лесно и отне няколко минути. Светодиодите отнеха известно време и трябваше да създам скица, която постепенно задава всеки пин ВИСОКИ на интервали от 1 секунда и си взема бележка. Направих масив, който съдържаше ПИН кодовете, за да улесня кодирането на всичко.

Направих 2 библиотеки, за да говоря с мултиплексорите, едната обработва аналоговите подложки, а другата копчетата. Отново това беше наистина просто. Прикачих ги, не се колебайте да използвате редактиране и т.н.

Исках да имам секвенсор и възможност за запис без нужда от компютър, намерих малко информация за това как да конвертирам BPM в ms и намерих страхотна библиотека с таймери на Arduino DUE.

Използвайки библиотеката на таймера, успях да задам входове за четене и неща на интервали:

Подложки @ 1ms - Открих това, за да дам най -добрия баланс между артефакти за отговор / де -bounce.

Бутони @ 40ms - Използвах библиотека на опашки, така че не е пропуснато натискане.

Обработката се извършва в основния цикъл, не можете да правите твърде много, когато сте в прекъсване, тъй като това ще заключи Arduino.

Midi неща @BPM (в мс) - за последователността, при желания BPM се извиква функция, която актуализира кои бележки ETC трябва да се играе и увеличава брояча на ритъма.

Стъпка 4: Заключение

Заключение
Заключение

Не съм сигурен какво съм направил тук, но съм доста горд, подложките реагират отлично, трябваше да потърся времето, за да постигна правилния баланс с отзивчивостта и проблемите. Последователността работи чудесно и след като разбера поддръжката на DAW, мога напълно да интегрирам това нещо в моя работен процес и да мога да добавя неща в контролер, който винаги съм искал!. Това беше наистина забавен проект за работа и страхотно упражнение в овладяване на C, разбиране на обратния инженеринг и как работят мултиплексорите, регистрите за смяна и MIDI последователността. Продължавам да подобрявам основния код и може би ще го пусна някой ден като дизайнер на ритъм с отворен код.

СЪВЕТИ:

Открих как да променя USB името на DUE, като редактирам един от заглавните файлове в папката Arduino/SAM.

MIDI-OX е чудесен инструмент за тестване на функционалността на Midi

ВРЪЗКИ:

www.usb.org/sites/default/files/midi10.pdf - USB MIDI Spechttps://midi.teragonaudio.com/tech/miditech.htm https://guitargearfinder.com/guides/convert-ms -mi… Малко информация за това как да конвертирате BPM в ms

travis-ci.com/SMFSW/Queue - За въвеждане на бутони, за да не пропуснем натискане!

github.com/olikraus/u8g2/wiki/u8x8referenc… - UG8 lib за LED/LCD екрани

github.com/ivanseidel/DueTimer/releases - Arduino DUE Timing lib

www.pjrc.com/teensy/td_libs_Encoder.html - Encoder Lib за голямото копче

shiftregister.simsso.de/ - ShiftIn Register lib - Създадено от Henrik Heine, 24 юли 2016 г.

forum.arduino.cc/index.php?topic=57636.0 - MIDI Time Code

Препоръчано: