用于 Arduino 的 Korg Nanokey MIDI 控制器?

Posted

技术标签:

【中文标题】用于 Arduino 的 Korg Nanokey MIDI 控制器?【英文标题】:Korg Nanokey MIDI Controller for Arduino? 【发布时间】:2011-07-09 03:41:23 【问题描述】:

我有一个Korg NanoKey,我想用它来控制我在 Arduino 平台上设计的简单合成器。 (我有一个Arduino Uno。)基本上,我不关心 MIDI,我只想读取键盘按下的音符,但如果 MIDI 是我能做到这一点的唯一方法,那么我没关系。所以我最大的问题是,我该怎么做?我无法在 Internet 上找到其他已经这样做的人。

但更具体地说,我看到了两个挑战:首先,我想将 NanoKey 直接插入 Arduino 的 USB 端口,然后我想知道 Arduino 是否会为 NanoKey 提供必要的电源。其次,我不确定我会阅读什么协议。我可以按照this tutorial 中的说明读取 MIDI 信号吗?

【问题讨论】:

有什么进展吗?从我目前发现的情况来看,一些 USB 主机需要告诉 nanokey 来“初始化”自己,否则它不会发送任何键盘数据。我想尝试完全绕过主 nanokey 电路oi42.tinypic.com/nd4vpi.jpg 并自己处理原始键盘和按钮数据。 【参考方案1】:

我不想抑制你的热情,但你正在尝试的可能有点困难。 USB 系统由主机控制器和一个或多个外围设备组成。控制流向设备的流量是主机,这意味着如果没有主机控制器的明确请求,设备就无法在总线上传输数据。

我对 nanoKey 或 Arduino 平台都不熟悉,但我相当确信 nanoKey 是一个 USB“设备”,通常连接到充当主机的计算机。因此,要使该系统正常工作,您需要让 Arduino 在与 nanoKey 通信时充当主机。 Arduino schematic 表明 Arduino Uno 使用 ATmega8U2 用于 USB coms。不幸的是,ATmega8U2 是一个 USB 设备,所以你有两个外围设备,但没有主机控制器来促进它们之间的数据传输。您最好使用提供 USB Host 或 USB On-the-Go 的 micro 开发板。

【讨论】:

啊,我明白了。好吧,这有点令人失望,但我理解。编写软件 USB Host 有多难?我想我可能只是将这两个设备连接到我的电脑,然后让电脑从键盘读取并写入 Arduino。谢谢。 我通过笔记本电脑让它工作了。我使用处理来读取 MIDI 命令,然后写入串行。 youtube.com/watch?v=vOkB_B_TNxY 嘿嘿酷。现在创作超级马里奥兄弟的歌曲:D。您将无法编写软件 USB 主机。那个 Arduino 板的问题是你的软件没有暴露在 USB 中。您只能将引脚 1 上的串行数据输出到 ATmega8U2 中,该 ATmega8U2 通过 USB 处理传输。但由于 ATmega8U2 是一个 USB 设备,可能发生的情况是您传输的串行数据在 ATmega8U2 中缓冲,直到 PC(USB 主机)上的虚拟 com 端口驱动程序轮询 ATmega8U2 并请求它的缓冲数据。 我看到 Arduino 有一个 SPI 接口。您可能会使用带有 SPI 接口的 USB 主机控制器。类似于Maxim MAX3421E。【参考方案2】:

我昨天打开了一个 Korg Nano 控制器,惊讶地发现里面有一个 AVR mega32。这将是一项艰巨的任务,但通过一些工作,您可能会制定出原理图并使用他们的编程头突破自己重新编程。您最终可能不会获得比其他方式更多的功能,但它会很有教育意义。

【讨论】:

【参考方案3】:

我同意 Jono 的观点——你咬了很多东西——它甚至可能最终最容易将按键直接连接到 Arduino——拆掉电子设备并想办法将按键多路复用到单个通道中,而无需失去复音(可能是电阻“阶梯”)。我无论如何,祝你好运。有趣的是,你会制作一个模拟键盘来插入数字合成器。

Quick and Dirty Arduino MIDI Over USB 演示了如何通过 USB 发送/接收 MIDI,但不幸的是,这可能对您尝试做的事情没有任何帮助,因为他找到了一种发送和接收的方法从 USB 主机接收 MIDI 信号,而不是自己充当 USB 主机 - 与您的问题相反。但是,如果您想从计算机控制您的设备,我认为它可能会有用。

【讨论】:

【参考方案4】:

正如其他帖子中提到的,您需要使用单独的芯片来提供 USB 主机接口。这是使用 USB Host shield by Circuits@Home 与 Akai LPK25(USB Midi 键盘)接口的绝佳指南。

http://blog.makezine.com/2010/11/30/usbhacking/

提供了 Arduino 草图,因此您应该可以尝试一下,但是如果无法开箱即用,调试 USB 主机连接可能会变得非常棘手。

【讨论】:

以上是关于用于 Arduino 的 Korg Nanokey MIDI 控制器?的主要内容,如果未能解决你的问题,请参考以下文章

ABAP中,SELECT-OPTIONS:s_ekorg FOR eine-ekorg MEMORY ID eko.

用于控制 arduino 机器人的 Arduino + 实时摄像头。可能吗?

用于 Arduino 的智能卡读/写器

python的arduino库叫啥

arduino 串口如何数据提取变量,请各位高手指点

从python脚本发送32位整数到串行的arduino,用于驱动RGB条带