Съдържание:
- Стъпка 1: Материали
- Стъпка 2: Дизайн
- Стъпка 3: Строителство и окабеляване
- Стъпка 4: Програмиране
- Стъпка 5: Настройка
Видео: Arduino Uno Midi Fighter: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Тази инструкция е създадена в изпълнение на проектните изисквания на 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: Настройка
След като скриптът е зареден на 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 успях да картографирам нарязани аудио мостри към всеки бутон и да възпроизведа всяка проба.
Препоръчано:
Изградете MIDI контролер на Arduino: 5 стъпки (със снимки)
Създайте MIDI контролер на Arduino: Здравейте на всички! В тази инструкция ще ви покажа как да изградите свой собствен MIDI контролер, захранван от Arduino. MIDI означава цифров интерфейс за музикални инструменти и е протокол, който позволява на компютри, музикални инструменти и друг хардуер да комуникират
Arduino Uno хранилка за риба в 6 евтини и лесни стъпки !: 6 стъпки
Arduino Uno Feeder Feeder в 6 евтини и лесни стъпки !: Така че може да е необходима малко предистория за този проект. Хората с домашни риби вероятно са имали същия проблем като мен: почивките и забравата. Постоянно забравях да храня рибите си и винаги се опитвах да го направя, преди да отиде в
Акустична левитация с Arduino Uno Стъпка по стъпка (8 стъпки): 8 стъпки
Акустична левитация с Arduino Uno Стъпка по стъпка (8 стъпки): ултразвукови звукови преобразуватели L298N Dc женско адаптерно захранване с мъжки dc щифт Arduino UNOBreadboard Как работи това: Първо, качвате код в Arduino Uno (това е микроконтролер, оборудван с цифров и аналогови портове за конвертиране на код (C ++)
По-мощният Arduino-UNO, Massduino-UNO: 9 стъпки
По-мощният Arduino-UNO, Massduino-UNO: Какво е Massduino? Massduino е нова продуктова линия, която съчетава в себе си богата на периферия платформа Arduino, удобна и бърза разработка, евтина и лесна за производство мащабна производствена предимство. Почти целият код на Arduino може да бъде
MIDI 5V LED лентов контролер за Spielatron или друг MIDI синтезатор: 7 стъпки (със снимки)
MIDI 5V LED Strip Light Controller за Spielatron или друг MIDI синтезатор: Този контролер мига трицветни LED ленти за 50mS на бележка.Синьо за G5 до D#6, червено за E6 до B6 и зелено за C7 до G7. Контролерът е ALSA MIDI устройство, така че MIDI софтуерът може да извежда към светодиодите едновременно с MIDI синтезатор