Светодиод, управляемый Midi через USB
Я пытаюсь создать что-то, что позволит мне управлять индивидуально адресуемой светодиодной лентой с помощью электрического пианино, используя его миди-выход.
На что следует обратить внимание:
- Пианино может выводить MIDI-сигналы через USB или через стандартные MIDI-разъемы.
- У меня есть Arduino Uno и Arduino Mega.
- Я использую полосу WS2812B с кабелями +ve, заземления и передачи данных.
Я не верю, что существует способ прочитать MIDI-файлы с моего фортепиано напрямую на Arduino без перепрошивки USB-контроллера. По этой причине я подключаюсь через USB к своему Mac. На своем Mac я написал программу, которая считывает MIDI-вход, понимает его и отправляет куда-то еще.
Ардуино для световой ленты. Я думаю, что смогу программировать довольно легко, но у меня есть несколько вопросов:
- Если мне нужно запитать светодиодную ленту, следует ли мне запитать ее от питания Arduino или предоставить ей собственный источник питания с общим заземлением?
- Разумно ли разделить его на MIDI -> компьютер, компьютер -> arduino, arduino -> светодиодную ленту? Если нет, то как мне поступить?
- Усложняю ли я жизнь, выбирая USB-порт для Midi, или мне следует переключиться на MIDI-разъемы и каким-то образом подключиться напрямую к Arduino?
@Jon Taylor, 👍1
Обсуждение1 ответ
Некоторое время назад я сделал нечто очень похожее, только не используя USB, а на STM32 (Arduino-совместимый STM32F103C8T6), но принцип тот же.
Что касается другого теста MIDI, который я проводил на Arduino, я использовал библиотеку 47 эффектов, а для WS2813 (программно-совместимого с WS2812B) — библиотеку FastLed.
Один MIDI-порт прост в использовании (поддерживается 47 эффектами), который использует один UART Arduino UNO.
Вам необходимо написать небольшую программу для преобразования MIDI-нот в данные светодиодов WS2812, что представляет собой не более чем заполнение структуры. Сопоставить 61 или 88 нот с 30, 60 или 144 светодиодными нотами не так просто: просто обрежьте ноты или используйте какой-нибудь коэффициент сопоставления.
Вы не можете использовать Arduino для питания светодиодной ленты, используйте для этого отдельный адаптер. От Arduino поступает только линейный сигнал, и заземления соедините вместе.
Arduino должен быть достаточно быстрым, чтобы читать MIDI, преобразовывать его в данные светодиодов (если только вы не создадите какой-то очень трудоемкий алгоритм) и отправлять данные.
- Лента Dotstar сходит с ума при подключении к MIDI-пианино
- Как использовать SPI на Arduino?
- Как сбросить или отформатировать Arduino?
- Несколько условий оператора if
- Светодиоды: разница между общим анодом и общим катодом
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Как получить уникальный идентификатор для всех плат Arduino?
- Как очистить буфер FIFO на MPU6050?
Интернет полон Arduino и MIDI. Вы можете подключить его напрямую. Протокол MIDI очень прост. https://www.arduino.cc/en/Tutorial/Midi, @Juraj
@Юрай, ты бы предложил использовать 5-контактные кабели MIDI вместо USB?, @Jon Taylor
Конечно. Вы приклеиваете светодиодную ленту к пианино в стиле Яна Хаммера, а куда потом ставите MacBook?, @Juraj
@Juraj Немного запутался. Как я уже сказал в вопросе, я сейчас подключаю пианино через USB к macbook и использую программное обеспечение, которое я написал там, чтобы считывать данные MIDI. Просто пытаюсь выяснить, как лучше всего все это подключить, учитывая, что у меня очень мало знаний об электронике. Обычно я просто разработчик программного обеспечения., @Jon Taylor
но вы знаете Keytar? если вы программировали MIDI для компьютера, будет проще написать его для Arduino, @Juraj