亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

USB-BLE 无线 MIDI 适配器

组件和用品

Arduino 101
选项 1:结合 Hobbytronics USB MIDI 主机突破
× 1
Hobbytronics USB MIDI Host Breakout
× 1
Arduino ADK Rev. 3
选项 2:结合 nRF52 突破或 Bean+
× 1
SparkFun nRF52832 Breakout
× 1
穿插 LightBlue Bean+
× 1
Arduino UNO
选项 3:结合 USB Host Shield 和 nRF52 breakout 或 Bean+
× 1
Arduino USB 主机扩展板
× 1
SparkFun 逻辑电平转换器 - 双向
将 5V 逻辑与 nRF52 突破 (3V3) 接口。
× 1

应用和在线服务

Arduino IDE

关于这个项目

使用低功耗蓝牙将您的 USB MIDI 乐器无线连接到您的 iOS 设备。

通常需要 Apple Camera Connection Kit 才能将 USB MIDI 乐器(例如 K-Board、BopPad 或 Artiphon)连接到 iOS 音乐应用程序(例如 GarageBand、DrumJam 或 GeoShred)。然而,在一些 Arduino 组件和草图的帮助下,很容易制作一个适配器,从 USB 乐器读取 MIDI 消息并将它们发送到使用蓝牙 LE (BLE) 的 iOS 设备。

我研究了三种不同的方法,并在这个项目中为每种方法提供了说明。

Arduino 101 / Hobbytronics USB HOST-MIDI

第一种设计在零件和连接方面是最简单的。它结合了 Arduino 101 提供的 BLE 支持和 Hobbytronics USB HOST-MIDI breakout 提供的 USB Host 支持。

Arduino 101 和 Hobbytronics breakout 使用串行 I/O 进行通信。在 Arduino 101 上运行的草图从 USB 主机分支读取 MIDI 消息,然后将它们写入其集成的 BLE 服务。

适配器目前仅在一个方向上运行,从 USB 接收消息但不传输到 USB。顺便说一下,这个项目中的所有适配器都是如此。出于这个原因,Hobbytronics breakout 只需要三个连接:5V、GND 和 TX。将其 TX 引脚连接到 Arduino 101 上的 RX 引脚 (D0)。

要对适配器进行编程,请将 CurieUsbMidiBridge 草图上传到 Arduino 101。现在您已准备好插入乐器,将您的 iOS 应用程序连接到适配器(扫描“CurieBLE”),然后开始播放。

许多 iOS 应用程序直接支持 BLE MIDI 连接。对于没有的应用,midimittr 应用可以充当中介。

出于稳定性原因,适配器的这种实现仅处理 Note On 和 Note Off 消息。对其他通道消息的支持,例如 Control Change、After Touch 和 Pitch Bend 可能会在未来版本中启用,但目前它们在草图中被注释掉了。

Arduino Mega ADK / SparkFun nRF52832

第二个设计利用了 SparkFun nRF52832 Breakout 提供的 BLE 支持和 Arduino Mega ADK 提供的 USB 主机支持。

SparkFun nRF52 breakout 和 Arduino Mega 使用 I2C 进行通信。 nRF52 是 I2C 主机,从 Arduino Mega 请求 MIDI 消息。从 Arduino Mega 接收到的消息通过 nRF52 的 BLE 服务发送出去。在 Arduino Mega 上运行的草图响应 I2C 请求,从其集成的 USB 主机控制器读取 MIDI 消息并将它们写入 nRF52。

SparkFun 突破需要五个连接:

  • 3V3
  • RST
  • SDA (24)
  • SCL (25)

由于 SparkFun nRF52 分线在 3V3 下运行,而 Arduino Mega 在 5V 下运行,三个逻辑引脚通过双向电平转换器连接。

注意:SDA 和 SCL 分配必须在 SparkFun variant.h 文件中重新定义。有关更多详细信息,请参阅此连接指南讨论。

将草图 nRF52MidiWireMaster 上传到 SparkFun breakout,将 UsbMidiWireSlave 上传到 Arduino Mega。然后将您的乐器插入 USB 主机连接器,将您的 iOS 应用程序连接到适配器(扫描“nRFMIDI”),然后开始演奏!

Arduino Uno / USB 主机扩展板 / Bean+

最终设计采用 LightBlue Bean+ 的 BLE 功能,将其与连接到 Arduino Uno 的 USB 主机扩展板配对,如下图所示。 Arduino Mega ADK 可以替代 USB Host Shield 和 Arduino Uno 组合。 Fritzing 图显示了 Arduino Mega ADK 版本。

与之前的设计一样,两个 MCU 使用 I2C 进行通信。 Bean+ 是 I2C 主机,从 Arduino Uno 请求 MIDI 消息。从 Uno 接收到的消息通过 Bean 的 BLE 服务发送出去。在 Uno 上运行的草图响应 I2C 请求,从连接的 USB Host Shield 读取 MIDI 消息并将它们写入 Bean+。

Bean+ 需要四个连接:

  • 5V
  • SDA (A4)
  • SCL (A5)

注意:将 Bean+ 切换到 5V 操作。

将草图 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/CurieUsbMidiBridge
nRF52MidiWireMaster.ino
上传到nRF52 breakout,将UsbMidiWireSlave.ino(见下文)上传到连接USB MIDI乐器的Arduino。 https://github.com/joebowbeer/nRF52MidiWireMaster
BeanMidiWireMaster.ino
上传到Bean+,上传UsbMidiWireSlave.ino(下图)到连接USB MIDI乐器的Arduino。 https://github.com/joebowbeer/BeanMidiWireMaster
UsbMidiWireSlave.ino
上传到 Arduino ADK(或 Arduino Uno + USB Host Shield)。从 USB MIDI 乐器读取 MIDI 消息并将它们写入 Wire (I2C) master。https://github.com/joebowbeer/UsbMidiWireSlave

示意图

将 Arduino 101 与 Hobbytronics USB HOST-MIDI 连接将 Arduino ADK 与 Sparkfun nRF52 Breakout 将 Arduino ADK 与 LightBlue Bean+ 连接

制造工艺

  1. 在家中构建无线传感器网络
  2. 无线磁性数据传输
  3. Arduino Spybot
  4. FlickMote
  5. 自制电视 B-Gone
  6. 主时钟
  7. Unopad - 带有 Ableton 的 Arduino MIDI 控制器
  8. Arduino Touch Breakout 游戏
  9. Arduino + LEDs + MIDI 键盘 + MuseScore =Piano Tutor
  10. 找到我
  11. Arduino Power
  12. 无线灯开关操纵器