Съдържание:

Arduino Uno Midi Fighter: 5 стъпки
Arduino Uno Midi Fighter: 5 стъпки

Видео: Arduino Uno Midi Fighter: 5 стъпки

Видео: Arduino Uno Midi Fighter: 5 стъпки
Видео: Leslie Kean on David Grusch (UFO Whistleblower): Non-Human Intelligence, Recovered UFOs, UAP, & more 2024, Ноември
Anonim
Миду боец Arduino Uno
Миду боец Arduino Uno

Тази инструкция е създадена в изпълнение на проектните изисквания на Makecourse в Университета на Южна Флорида (www.makecourse.com)

Въз основа на популярния MidiFighter от DJ Techtools, този домашен контролер с цифров интерфейс за музикални инструменти (MIDI), захранван с Arduino, може да се използва като MIDI устройство във всеки софтуер за цифрова аудио работна станция (DAW). MIDI контролер може да изпраща и получава MIDI съобщения от компютър и може да се използва за директен контрол на софтуера, който се използва. Освен това, контролите на MIDI контролер са напълно персонализирани - което означава, че всеки отделен бутон, плъзгач и копче могат да бъдат съпоставени с всяка функция в DAW. Например, натискането на бутон може да възпроизведе конкретна нота или да бъде програмирано да превключва темпото на вашия аудио проект.

github.com/jdtar/Arduino-Midi-Controller

Стъпка 1: Материали

По -долу е даден списък на материалите и инструментите, използвани в този проект.

Arduino Uno

Платка

4051/4067 Мултиплексор

Кабелни проводници

Допълнителна тел

2x 10k ohm линейни плъзгащи потенциометри

16x бутони Sanwa 24 мм

Термосвиване

Поялник

Бръснарско ножче

4.7 kΩ резистор

Акрилен лист (за капак)

Корпус за бутони и Arduino

3-D принтер

Лазерен нож

Стъпка 2: Дизайн

Дизайн
Дизайн
Дизайн
Дизайн

Вече бях снабден с корпус за моя MIDI контролер, преди да започна проекта, затова се подигравах с скица за капака, за да визуализирам къде трябва да се постави всичко. Знаех, че искам поне 16 бутона и няколко потенциометра като функция, затова се опитах да разпределя компонентите възможно най -равномерно.

След като съставих оформлението на капака, експортирах файла като 1: 1 PDF и го изпратих на лазерен нож за изрязване на лист акрил. За дупки за винтове маркирах мястото, където искам да бъдат отворите, с маркер и разтопих акрила с гореща нишка.

Приложен е 1: 1 PDF, който може да бъде разпечатан като 1: 1 и изрязан с електрически инструменти, ако лазерна фреза не е налична.

Стъпка 3: Строителство и окабеляване

Строителство и окабеляване
Строителство и окабеляване
Строителство и окабеляване
Строителство и окабеляване
Строителство и окабеляване
Строителство и окабеляване

След като отрязах акрила, разбрах, че акрилът е твърде тънък, за да поддържа достатъчно всички компоненти. След това изрязах друг лист и ги залепих, което се получи перфектно.

Окабеляването на компонентите отне известно изпитание и грешка, но доведе до приложената скица на Fritzing. Първо свързах заземяващите проводници и резистора от 4,7 kΩ, запоявам и загрявам връзките на бутоните. Монтирането на двата плъзгащи потенциометра изисква топене на отвори за винтовете в акрила. След като двата потенциометра бяха завинтени, те бяха свързани към аналоговите щифтове А0 и А1. След като свързването приключи, си спомних, че няма капачки за копчета за моите фейдъри, така че вместо да ги купя, отпечатах някои капачки с 3-D принтер, като го скицирах в Autodesk Fusion 360 и експортирах в STL файл. De

Arduino Uno има само 12 налични пина за цифров вход, но 16 бутона трябваше да бъдат свързани. За да компенсирам това, свързах 74HC4051 мултиплексор на макет, който използва 4 цифрови входни пина и позволява на множество сигнали да използват споделена линия, което води до 8 налични цифрови входни щифта за общо 16 цифрови пина, достъпни за използване.

Свързването на бутоните към правилните щифтове беше просто въпрос на създаване на 4x4 матрица и използване на това в кода. Трудната част обаче беше, че конкретният закупен мултиплексор имаше специфично оформление на щифтове, с което листът с данни помогна, а също така имах предвид специфично оформление на бележка при свързване на бутоните, което в крайна сметка изглеждаше малко по следния начин:

ЗАБЕЛЕЖКА MATRIX

[C2] [C#2] [D2] [D#2]

[G#2] [A1] [A#2] [B1]

[E1] [F1] [F#1] [G1]

[C2] [C#2] [D2] [D#2]

PIN MATRIX (M = MUX INPUT)

[6] [7] [8] [9]

[10] [11] [12] [13]

[M0] [M1] [M2] [M3]

[M4] [M5] [M6] [M7]

Стъпка 4: Програмиране

Програмиране
Програмиране

След като монтажът приключи, всичко, което остава, е програмирането на Arduino. Прикрепеният скрипт е написан по такъв начин, че лесно да се персонализира.

Началото на скрипта включва библиотеката MIDI.h и библиотеката на контролера, заимствана от блога Notes and Volts, които са включени в zip файла за кода. С помощта на библиотеката на контролера могат да се създават обекти за бутони, потенциометри и мултиплексирани бутони, съдържащи стойности на данни, които включват номера на нотата, контролните стойности, скоростта на нотата, номера на MIDI канала и др. Библиотеката MIDI.h позволява MIDI I/O комуникации на Серийните портове на Arduino, които от своя страна вземат данните от обектите на контролера, преобразуват ги в MIDI съобщения и изпращат съобщенията до който и да е midi интерфейс.

Частта за настройка на празнотата на скрипта инициализира всички канали като изключени и също така инициира серийна връзка на 115200 бода, скорост по -бърза от обмена на MIDI сигнали.

Основният цикъл по същество приема масивите от бутони и мултиплексирани бутони и изпълнява цикъл for, който проверява дали бутонът е натиснат или освободен и изпраща съответните байтове с данни към midi интерфейса. Контурът на потенциометъра проверява позицията на потенциометъра и изпраща съответните промени на напрежението обратно към midi интерфейса.

Стъпка 5: Настройка

Image
Image
Настройвам
Настройвам
Настройвам
Настройвам
Настройвам
Настройвам

След като скриптът е зареден на Arduino, следващата стъпка е да включите и пуснете. Има обаче няколко стъпки, преди да може да се използва.

В OSX Apple включи функция за създаване на виртуални midi устройства, които могат да бъдат достъпни чрез приложението Audio Midi Setup на macs. След като новото устройство бъде създадено, Hairless MIDI може да се използва за създаване на серийна връзка между Arduino и новото виртуално midi устройство. Серийната връзка от Arduino през Hairless MIDI работи със скорост на предаване, определена в частта за настройка на празнотата на скрипта и трябва да бъде зададена еквивалентно в предпочитаните настройки за Hairless MIDI.

За целите на тестването използвах Midi Monitor, за да проверя дали се изпращат правилните данни, серийно-MIDI връзката. След като установих, че всеки бутон изпраща правилните данни през правилните канали, настроих MIDI сигнала да се насочва към Ableton Live 9 като MIDI вход. В Ableton успях да картографирам нарязани аудио мостри към всеки бутон и да възпроизведа всяка проба.

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