Беспроводные MIDI-адаптеры USB-BLE
Компоненты и расходные материалы
![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
Приложения и онлайн-сервисы
![]() |
|
Об этом проекте
Беспроводное подключение USB-MIDI-инструментов к устройству iOS с помощью Bluetooth с низким энергопотреблением.
Комплект для подключения камеры Apple Camera Connection Kit обычно требуется для подключения USB-MIDI-инструмента, такого как K-Board, BopPad или Artiphon, к музыкальному приложению iOS, например GarageBand, DrumJam или GeoShred. Однако с помощью некоторых компонентов и эскизов Arduino легко создать адаптер, который считывает MIDI-сообщения с USB-инструмента и отправляет их на устройство iOS с помощью Bluetooth LE (BLE).
Я исследовал три разных подхода и предоставил инструкции для каждого из них в этом проекте.
Arduino 101 / Hobbytronics USB HOST-MIDI
Первая конструкция самая простая по составным частям и соединениям. Он сочетает в себе поддержку BLE, предоставляемую Arduino 101, с поддержкой USB-хоста, обеспечиваемой прорывом Hobbytronics USB HOST-MIDI.
Между Arduino 101 и Hobbytronics используется последовательный ввод-вывод. Скетч, запущенный на Arduino 101, считывает MIDI-сообщения с выхода USB-хоста, а затем записывает их в свою интегрированную службу BLE.


В настоящее время адаптер работает только в одном направлении, получая сообщения с USB, но не передавая их на USB. Кстати, это верно для всех адаптеров в этом проекте. По этой причине для разъема Hobbytronics требуется только три подключения:5 В, GND и TX. Подключите его вывод TX к выводу RX (D0) на Arduino 101.
Чтобы запрограммировать адаптер, загрузите эскиз CurieUsbMidiBridge в Arduino 101. Теперь вы готовы подключить свой инструмент, подключить приложение iOS к адаптеру (отсканируйте «CurieBLE») и начните играть.
Многие приложения для iOS напрямую поддерживают соединения BLE MIDI. Для приложений, которые этого не делают, приложение midimittr может выступать в качестве посредника.
По соображениям стабильности эта реализация адаптера обрабатывает только сообщения Note On и Note Off. Поддержка других сообщений канала, таких как Control Change, After Touch и Pitch Bend, может быть включена в будущей версии, но пока они закомментированы в эскизе.
Arduino Mega ADK / SparkFun nRF52832
Во втором варианте используется поддержка BLE, обеспечиваемая SparkFun nRF52832 Breakout, и поддержка USB-хоста, предоставляемая Arduino Mega ADK.
Связь SparkFun nRF52 и Arduino Mega осуществляется через I2C. NRF52 является мастером I2C, запрашивающим MIDI-сообщения от Arduino Mega. Сообщения, полученные от Arduino Mega, отправляются через службу BLE nRF52. Скетч, запущенный на Arduino Mega, отвечает на запросы I2C, считывая MIDI-сообщения со своего встроенного хост-контроллера USB и записывая их в nRF52.

Для прорыва SparkFun требуется пять подключений:
- 3V3
- GND
- RST
- ПДД (24)
- SCL (25)
Поскольку выход SparkFun nRF52 работает с напряжением 3V3, а Arduino Mega работает с напряжением 5V, три логических контакта соединены через двунаправленный переключатель уровня.
ПРИМЕЧАНИЕ. Назначения SDA и SCL необходимо переопределить в файле SparkFun sizes.h. Дополнительные сведения см. В этом руководстве по подключению.
Загрузите скетч nRF52MidiWireMaster в раздел SparkFun и UsbMidiWireSlave в Arduino Mega. Затем подключите инструмент к разъему USB Host, подключите приложение iOS к адаптеру (найдите «nRFMIDI») и начните играть!
Arduino Uno / USB Host Shield / Bean +
Окончательный дизайн использует BLE-возможности LightBlue Bean + в сочетании с USB Host Shield, подключенным к Arduino Uno, как показано на фотографии ниже. Arduino Mega ADK может заменить комбинацию USB Host Shield и Arduino Uno. На диаграмме Фритцинга показана версия Arduino Mega ADK.
Как и в предыдущем проекте, два MCU обмениваются данными с помощью I2C. Bean + - это мастер I2C, запрашивающий MIDI-сообщения от Arduino Uno. Сообщения, полученные от Uno, отправляются через службу BLE Bean. Скетч, запущенный на Uno, отвечает на запросы I2C, считывая MIDI-сообщения с подключенного USB Host Shield и записывая их в Bean +.

Для Bean + требуется четыре подключения:
- GND
- 5 В
- ПДД (A4)
- SCL (A5)
ПРИМЕЧАНИЕ. Переключите Bean + на работу 5 В.
Загрузите эскиз BeanMidiWireMaster в Bean + и загрузите UsbMidiWireSlave в Arduino Uno. Затем подключите инструмент к USB Host Shield, подключите приложение iOS к адаптеру (найдите «Bean +») и начните играть.
По соображениям производительности поддержка сообщений канала Control Change и After Touch была закомментирована в скетче, но может быть включена в будущей версии.
Код
CurieUsbMidiBridge.ino
Использование с Arduino 101 + Hobbytronics USB HOST-MIDI https://github.com/joebowbeer/CurieUsbMidiBridgenRF52MidiWireMaster.ino
Загрузите в nRF52 breakout и загрузите UsbMidiWireSlave.ino (см. Ниже) в Arduino, подключенный к USB-MIDI-инструменту. Https://github.com/joebowbeer/nRF52MidiWireMasterBeanMidiWireMaster.ino
Загрузите в Bean + и загрузите UsbMidiWireSlave.ino (ниже) в Arduino, подключенный к USB-MIDI-инструменту. Https://github.com/joebowbeer/BeanMidiWireMasterUsbMidiWireSlave.ino
Загрузите в Arduino ADK (или Arduino Uno + USB Host Shield). Считывает MIDI-сообщения с USB-MIDI-инструмента и записывает их на ведущее устройство Wire (I2C). Https://github.com/joebowbeer/UsbMidiWireSlaveСхема
Подключение Arduino 101 к Hobbytronics USB HOST-MIDI Подключение Arduino ADK к Sparkfun nRF52 Breakout Подключение Arduino ADK с LightBlue Bean +Производственный процесс
- Создание сети беспроводных датчиков в вашем доме
- Беспроводная магнитная передача данных
- Arduino Spybot
- FlickMote
- Самодельный телевизор B-Gone
- Основные часы
- Unopad - MIDI-контроллер Arduino с Ableton
- Игра Arduino Touch Breakout
- Arduino + светодиоды + MIDI-клавиатура + MuseScore =Piano Tutor
- Найди меня