Съдържание:
- Тази инструкция първоначално беше публикувана в моя блог на 28 юни 2020 г
- Стъпка 1: Мига вградения светодиод
- Стъпка 2: Мигане на светодиода на ръчно въвеждане
- Стъпка 3: Инсталиране на библиотеката MIDIUSB
- Стъпка 4: Изпращане на MIDI съобщение
- Стъпка 5: Изпращане на MIDI съобщение от всеки бутон
- Стъпка 6: Настройване на канали или банки (по избор)
- Стъпка 7: Делото
- Стъпка 8: Сглобяването
- Стъпка 9: Използване на MIDI контролера
Видео: Изграждане на MIDI контролер на Arduino: 9 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:49
Тази инструкция първоначално беше публикувана в моя блог на 28 юни 2020 г
Харесва ми да изграждам неща, които включват електроника, и винаги съм искал да създам нещо с помощта на Arduino.
Една от най -често срещаните компилации за начинаещи, която открих, беше MIDI контролер. MIDI контролер е всеки хардуер, който изпраща MIDI данни (цифров интерфейс за музикален инструмент) към устройство, за да задейства звуци и да прави музика.
Открих, че много реализации са сложни, дори тези, които са за начинаещи. Беше много разочароващо да открия, че трябва да използвам стотици редове с нечетлив код. Или че трябва да запоя резистор в някои случаи, наред с други примери.
Проектът
Чрез изграждането на собствен Arduino MIDI контролер, намерението ми беше да направя приятен проект, като запазим шума на най -ниско ниво. Нещо, което всеки начинаещ може да последва. За да постигна това, използвах MIDI Fighter 3D като основно вдъхновение и премахнах всяка несъществена функция.
Общата стойност на моя проект беше под 30 долара, а списъкът с материали беше наистина кратък (партньорски връзки):
- Arduino Leonardo (или клонинг): между $ 10 и $ 20.
- 16 x бутони Sanwa 24 мм (или клониране): между $ 1 и $ 2,50 на бутон.
- Поялник
- 22 AWG Електрически проводник
Дъската на Arduino
Когато стартирах този проект, открих, че има куп нови модели Arduino (без стотиците съвместими платки). И всички те предлагат малко по -различни възможности.
Трябваше да изпратя MIDI сигнали до компютър и най -простият начин да го направя е чрез USB. Всяка дъска Arduino, базирана на микроконтролера ATmega32u4, има вградена USB комуникация.
Официалните дъски на Arduino с вградена USB поддръжка са Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro. Тези платки имат вградена USB поддръжка, което означава, че могат да действат като USB MIDI устройство.
Реших да отида с клонинг на Arduino Leonardo. Той има достатъчно входове за този проект и включва и заглавки, което улеснява включването/изключването на проводниците.
Първи стъпки
Въпреки че ще обясня стъпка по стъпка как приложих кода за този проект, можете да изтеглите окончателната версия.
За да качите код на дъската, трябва да използвате Arduino IDE. Те също имат уеб редактор, който е много полезен, но имат ограничена квота за пъти на ден, в които можете да компилирате код.
Стъпка 1: Мига вградения светодиод
Смешно е как „Hello World“в света на хардуера мига с LED.
За мен беше приятна изненада да открия, че Arduino Leonardo има вграден светодиод, който можете да мигате, за да тествате кода си. По този начин не е необходимо да изграждате външна верига върху макет с LED и резистор.
Код:
Стъпка 2: Мигане на светодиода на ръчно въвеждане
Следващата логична стъпка беше да мига един и същ светодиод, когато изпращам сигнал. Премахнах пластмасовия капак на единия край на 2 проводника Dupont и свързах другия край към платката:
- Пин номер 2: Един от цифровите входове (положителен). Това може да бъде всеки цифров щифт.
- ПИН GND: Всеки заземяващ щифт (отрицателен).
Сега, всеки път, когато се присъединя към откритите краища на проводниците, затварям веригата и по този начин мога да изпълня код в резултат
Всеки от 20 -те цифрови пина на Leonardo има вътрешен резистор (изключен по подразбиране), който може да бъде активиран с помощта на INPUT_PULLUP. Имайте предвид, че издърпващ вход означава, че състоянието на бутона е обърнато:
- ВИСОК, когато веригата е отворена (бутонът НЕ е натиснат).
- НИСКО, когато веригата е затворена (бутонът е натиснат).
Код:
Стъпка 3: Инсталиране на библиотеката MIDIUSB
Тази библиотека позволява на Arduino платка с USB възможности да действа като MIDI инструмент през USB. Проверете официалната документация за повече информация.
Използвайки Arduino IDE, можете да инсталирате допълнителни библиотеки на Arduino, като използвате мениджъра на библиотеки:
- Отворете IDE и кликнете върху менюто "Скица", след това "Включване на библиотека", след това "Управление на библиотеки".
- Потърсете MIDIUSB и щракнете върху Инсталиране.
- След като приключи, до библиотеката на MIDIUSB трябва да се появи инсталиран маркер.
- Затворете библиотечния мениджър.
Сега Leonardo може да изпраща MIDI съобщения чрез USB! Но първо е необходима известна представа за това как работи MIDI.
Как работи MIDI
"MIDI (цифров интерфейс за музикални инструменти) е стандартен комуникационен протокол, който свързва електронни музикални инструменти, компютри и свързани аудио устройства за възпроизвеждане на музика." - Уикипедия
Той обработва съобщения за събития с данни за височината и скоростта на изиграната нота, наред с други инструкции
В този конкретен проект входът от 16 -те бутона изпраща различни съобщения чрез USB. Тези съобщения могат да бъдат преобразувани в звук на компютър с помощта на подходящ софтуер като GarageBand или Ableton Live.
Анатомия на MIDI съобщение
За да изпратя MIDI съобщение, използвах метода sendMIDI () от библиотеката MIDIUSB, която инсталирах на стъпка 3.
Този метод може да получи 4 параметъра:
- Тип на събитието: Може да бъде 0x09 за бележка On (възпроизвеждане на нота) или 0x08 за бележка Off (прекратете възпроизвеждането на нота).
- Забележка Вкл./Изкл.: Тип на събитието, комбинирано с MIDI канала (1-16). Използвам само канал 1, така че е или 0x90 за бележка On или 0x80 за бележка Off.
- Номер на бележка: Всяка нота има свързана цифрова височина (честотна скала).
- Скорост: От 0 (без скорост) до 127 (най -бърза).
Стъпка 4: Изпращане на MIDI съобщение
Включих библиотеката MIDIUSB и вместо да мига вградения светодиод, изпратих бележка.
Код:
⚠ Важно: От тази стъпка нататък Arduino се превръща в MIDI USB контролер и спира да получава код чрез USB.
Когато се забиете в позиция, в която Arduino вече не може да бъде програмиран, изпълнете следните стъпки:
- Задръжте закръгления бутон за нулиране на дъската на Arduino.
- Щракнете върху Качване в Arduino IDE.
- Освободете бутона за нулиране.
- Актуализираният код ще бъде качен на дъската.
Стъпка 5: Изпращане на MIDI съобщение от всеки бутон
Последната стъпка беше да съпоставите всяка стъпка с бутон. За 16 -те бутона съм дефинирал скала от C2 до E3b, които са стъпките от 36 до 51 в последователност отдолу нагоре и отляво надясно. Разгледайте този файл от Arduino Tutorials, за да видите какъв тон отговаря на всяка нота.
Използвах цифрови изводи от 2 до 12 и аналогови изводи (използвайки ги като цифри) от A0 до A4.
И така изглежда крайният код
Стъпка 6: Настройване на канали или банки (по избор)
В случай, че искате да добавите още бутони с възможност за превключване на канали или банки, както в MIDI Fighter 3D (вижте изображението), Arduino Leonardo има още четири пина, които можете да използвате. Arduino Leonardo има 20 цифрови входни/изходни пина, от които само 16 се използват за свирене на ноти.
Можете да използвате тези допълнителни бутони, за да актуализирате променлива в кода и да изпратите нейната стойност като параметър до метода MidiUSB.sendMIDI:
gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea
Стъпка 7: Делото
За да поддържа този проект прост, бях изключително придирчив да избера кои функции да включват.
- Само бутони: 16 подобни на Sanwa аркадни бутони, в мрежа 4х4. Без копчета, без плъзгачи, без фейдъри или друг аналогов вход.
- Калъф Unibody: Не използвайте винтове, гайки, болтове или лепило за корпуса или за задържане на дъската Arduino.
- Ежедневни инструменти: Например, запоявах проводниците, вместо да си купя специфична машинка за подстригване на аркадни бутони.
Unibody Design
Едно от предизвикателствата, с които се сблъсках, беше проектирането на корпус, достатъчно прост, че не се нуждае от сглобяване и може да бъде отпечатан 3D в един цикъл.
За да избегна използването на винтове или лепило, трябваше да проектирам корпус, който осигурява най -малкия достъп до електрониката. Най -голямото ми вдъхновение за заграждението беше Mac Mini, който има отвор под формата на кръг в долната част. Исках също да проектирам винтови капаци за това, но реших да го оставя да се отвори, за да изложи електрониката.
Изтеглете калъфа за 3D разпечатване (322 KB). Препоръчителни настройки: PLA, 0,15 мм слоеве, 20% пълнеж, поддържащи принудители поне за заобления отвор на дъното, държачите Arduino и микро USB.
Дръжте Arduino без винтове
Леонардо има 4 отвора за завинтване на дъската във всеки подходящ калъф, но идеята ми беше да улесня добавянето и премахването на дъската от кутията.
Намирането на държач за клипове за Arduino в Thingiverse беше лесно и ми отнеха 5 повторения, за да интегрирам този държач в дизайна на unibody. Най -трудната част беше правенето на краката му, за да се избегнат отворите за бутоните и да се направи микро USB да бъде центриран в центъра на кутията.
Стъпка 8: Сглобяването
След като поставих всички бутони на място, запоявах къси черни проводници, свързващи всички отрицателни крака на бутоните между тях.
След това запоявах дълги червени проводници от всеки положителен крак, за да се свържа директно към платката.
За да свържа проводниците към Arduino, изрязах и запоях някои краища на Dupont и ги покрих с термосвиваеми тръби.
Свързах проводниците към платката по същия ред, както в MIDI Fighter. Отдолу нагоре и отляво надясно
Стъпка 9: Използване на MIDI контролера
Всеки музикален софтуер (или подходящ хардуер) може да се използва за получаване на MIDI и създаване на музика. Най -препоръчителните са Garage Band, Ableton Live и знам, че има куп приложения за инсталиране на телефон.
Всички тези инструменти са полезни за зареждане на предварително зададени звуци за барабани с пръсти, но са направени за по -големи цели. Тези инструменти могат да бъдат трудни за начинаещи.
MIDI в уеб браузъра
За да направя нещо по -съгласувано с този проект и неговата простота, изградих уеб инструмент, изцяло фокусиран върху MIDI контролерите.
Punchy: Реализация на WebMIDI и WebAudio за MIDI контролери.
Той може да чете MIDI съобщения във всеки браузър, който поддържа WebMIDI JavaScript API. След това възпроизвежда звуци в синтезатор (използвайки API на WebAudio) или в семплер, зареждайки персонализирани звуци от всеки звуков пакет.
Настройте Ableton Live
За да накарате MIDI контролера да работи с Ableton Live, следвайте тези прости стъпки от официалната им документация.
Отидете на Предпочитания → Свържете MIDI и се уверете, че „Входът“е с „Track“и „Remote“ON, а изходът е с „Remote“ON, както е споменато в ръководството:
Препоръчано:
Изградете MIDI контролер на Arduino: 5 стъпки (със снимки)
Създайте MIDI контролер на Arduino: Здравейте на всички! В тази инструкция ще ви покажа как да изградите свой собствен MIDI контролер, захранван от Arduino. MIDI означава цифров интерфейс за музикални инструменти и е протокол, който позволява на компютри, музикални инструменти и друг хардуер да комуникират
Lune - MIDI контролер с Arduino (за DJ или музикант): 5 стъпки (със снимки)
Lune - MIDI контролер с Arduino (за DJ или музикант): Това е първото ми име на проект arduino (микроконтролер) Lune. Исках да науча arduino с полезен и голям проект, затова реших да направя midi DJ контролер, който да има всички функции, необходими за самостоятелно смесване. Всеки вид сензор (potentio
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 синтезатор
LED Rainbow - RGB LED PWM Контролер Конструкция - Лесен за изграждане: 15 стъпки
LED Rainbow - RGB LED PWM контролер Конструкция - Лесен за изграждане: Стъпка по стъпка, лесни за следване инструкции за изграждането на LED Rainbow RGB LED PWM контролер. Необходими са само минимално количество части, заедно с PIC процесор и можете да конструирате един от най -невероятните налични LED контролери. С
Разбъркване на NES контролер (Nintendo контролер MP3, V3.0): 5 стъпки (със снимки)
Разбъркване на контролера на NES (Nintendo Controller MP3, V3.0): Напълно изтръгнах ryan97128 от неговия дизайн за Nintendo Controller MP3, версия 2.0 и чувам, че той е получил идеята от всички мъдри Morte_Moya, така че не мога да взема кредит за целия им гений. Просто исках да добавя удобство и презареждане