Светодиод, управляемый 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?

, 👍1

Обсуждение

Интернет полон 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


1 ответ


2

Некоторое время назад я сделал нечто очень похожее, только не используя 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, преобразовывать его в данные светодиодов (если только вы не создадите какой-то очень трудоемкий алгоритм) и отправлять данные.

,