Adaptadores MIDI USB-BLE sem fio
Componentes e suprimentos
![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
Aplicativos e serviços online
![]() |
|
Sobre este projeto
Conecte sem fio seus instrumentos USB MIDI ao seu dispositivo iOS usando Bluetooth de baixa energia.
Geralmente, é necessário um Apple Camera Connection Kit para conectar um instrumento USB MIDI, como K-Board, BopPad ou Artiphon, a um aplicativo de música iOS, como GarageBand, DrumJam ou GeoShred. No entanto, com a ajuda de alguns componentes e esboços do Arduino, é fácil fazer um adaptador que lê mensagens MIDI de um instrumento USB e as envia para um dispositivo iOS usando Bluetooth LE (BLE).
Eu investiguei três abordagens diferentes e forneço instruções para cada uma delas neste projeto.
Arduino 101 / Hobbytronics USB HOST-MIDI
O primeiro projeto é o mais simples em termos de peças e conexões. Ele combina o suporte BLE fornecido pelo Arduino 101 com o suporte USB Host fornecido pelo Hobbytronics USB HOST-MIDI breakout.
O Arduino 101 e o Hobbytronics se comunicam usando E / S serial. O esboço em execução no Arduino 101 lê as mensagens MIDI do breakout do host USB e as grava em seu serviço BLE integrado.


O adaptador atualmente opera em apenas uma direção, recebendo mensagens de USB, mas não transmitindo para USB. A propósito, isso é verdade para todos os adaptadores neste projeto. Por esse motivo, o breakout da Hobbytronics precisa apenas de três conexões:5V, GND e TX. Conecte seu pino TX ao pino RX (D0) no Arduino 101.
Para programar o adaptador, carregue o esboço CurieUsbMidiBridge para o Arduino 101. Agora você está pronto para conectar seu instrumento, conecte seu aplicativo iOS ao adaptador (procure por "CurieBLE") e comece a tocar.
Muitos aplicativos iOS suportam conexões BLE MIDI diretamente. Para aplicativos que não têm, o aplicativo midimittr pode atuar como intermediário.
Por motivos de estabilidade, esta implementação do adaptador lida apenas com mensagens Note On e Note Off. O suporte para as outras mensagens do canal, como Mudança de Controle, Após Toque e Curvatura de Pitch pode ser habilitado em uma versão futura, mas por enquanto eles estão comentados no esboço.
Arduino Mega ADK / SparkFun nRF52832
O segundo design aproveita o suporte BLE fornecido pelo SparkFun nRF52832 Breakout e o suporte USB Host fornecido pelo Arduino Mega ADK.
O Breakout SparkFun nRF52 e o Arduino Mega se comunicam usando I2C. O nRF52 é o mestre I2C, solicitando mensagens MIDI do Arduino Mega. As mensagens recebidas do Arduino Mega são enviadas através do serviço BLE do nRF52. O esboço em execução no Arduino Mega responde às solicitações I2C, lendo mensagens MIDI de seu controlador de host USB integrado e gravando-as no nRF52.

O breakout SparkFun precisa de cinco conexões:
- 3V3
- GND
- RST
- SDA (24)
- SCL (25)
Como o breakout SparkFun nRF52 opera a 3V3 e o Arduino Mega opera a 5V, os três pinos lógicos são conectados por meio de um deslocador de nível bidirecional.
NOTA:As atribuições SDA e SCL devem ser redefinidas no arquivo de variantes SparkFun.h. Para obter mais detalhes, consulte esta discussão do guia de conexão.
Carregue o sketch nRF52MidiWireMaster para o SparkFun breakout e UsbMidiWireSlave para o Arduino Mega. Em seguida, conecte seu instrumento ao conector USB Host, conecte seu aplicativo iOS ao adaptador (procure por "nRFMIDI") e comece a tocar!
Arduino Uno / USB Host Shield / Bean +
O design final emprega a capacidade BLE do LightBlue Bean +, emparelhando-o com um USB Host Shield conectado a um Arduino Uno, conforme mostrado na foto abaixo. Um Arduino Mega ADK pode substituir a combinação USB Host Shield e Arduino Uno. O diagrama de Fritzing mostra a versão do Arduino Mega ADK.
Como no projeto anterior, os dois MCUs se comunicam usando I2C. O Bean + é o mestre I2C, solicitando mensagens MIDI do Arduino Uno. As mensagens recebidas do Uno são enviadas através do serviço BLE do Bean. O esboço em execução no Uno responde às solicitações I2C, lendo mensagens MIDI do USB Host Shield conectado e gravando-as no Bean +.

O Bean + precisa de quatro conexões:
- GND
- 5V
- SDA (A4)
- SCL (A5)
NOTA:Mude a operação Bean + para 5V.
Carregue o BeanMidiWireMaster do esboço para o Bean + e carregue o UsbMidiWireSlave para o Arduino Uno. Em seguida, conecte seu instrumento ao USB Host Shield, conecte seu aplicativo iOS ao adaptador (procure por "Bean +") e comece a tocar.
Por motivos de desempenho, o suporte para mensagens de canal Control Change e After Touch foi comentada no esboço, mas pode ser habilitado em uma versão futura.
Código
CurieUsbMidiBridge.ino
Use com Arduino 101 + Hobbytronics USB HOST-MIDIhttps://github.com/joebowbeer/CurieUsbMidiBridgenRF52MidiWireMaster.ino
Carregue para nRF52 breakout e carregue UsbMidiWireSlave.ino (veja abaixo) para o Arduino que está conectado ao instrumento USB MIDI.https://github.com/joebowbeer/nRF52MidiWireMasterBeanMidiWireMaster.ino
Faça upload para Bean + e faça upload de UsbMidiWireSlave.ino (abaixo) para o Arduino que está conectado ao instrumento USB MIDI.https://github.com/joebowbeer/BeanMidiWireMasterUsbMidiWireSlave.ino
Faça upload para o Arduino ADK (ou Arduino Uno + USB Host Shield). Lê mensagens MIDI do instrumento USB MIDI e as grava no Wire (I2C) master.https://github.com/joebowbeer/UsbMidiWireSlaveEsquemas
Conectando Arduino 101 com Hobbytronics USB HOST-MIDICconectando Arduino ADK com Sparkfun nRF52 BreakoutConnecting Arduino ADK com LightBlue Bean +Processo de manufatura