我有一个Korg NanoKey,我想用它来控制我在Arduino平台上设计的简单合成器。 (我有一个Arduino Uno。)基本上,我不关心MIDI,我只是想读一下键盘按下了什么音符,但如果MIDI是我能做到的唯一方法,那么就可以了我。所以我的大问题是,我该怎么做?我无法在互联网上找到已经做过此事的其他人。
但更具体地说,我看到了两个挑战:首先,我想将我的NanoKey直接插入Arduino的USB端口,但后来我想知道Arduino是否会为NanoKey提供必要的电源。其次,我不确定我会阅读什么协议。我可以按this tutorial?
中所述读取MIDI信号答案 0 :(得分:2)
我不想遏制你的热情,但你所尝试的可能会有点困难。 USB系统由主机控制器和一个或多个外围设备组成。它是控制到设备的流量的主机,这意味着如果没有主机控制器的明确请求,设备就无法在总线上传输数据。
我不熟悉nanoKey或Arduino平台,但我相信nanoKey是USB“设备”,通常连接到充当主机的计算机。因此,您需要使用此系统才能使Arduino在与nanoKey通信时充当主机。 Arduino schematic表明Arduino Uno使用ATmega8U2进行USB通信。不幸的是,ATmega8U2是一个USB设备,所以你有两个外围设备但没有主机控制器来促进它们之间的数据传输。你最好将开发板用于提供USB主机或USB On-the-Go的微型计算机。
答案 1 :(得分:2)
我昨天打开了一个Korg Nano控制器,并惊讶地发现里面有一个AVR mega32。这将是一项重大的工作,但是通过一些工作,您可以完成原理图并使用他们的编程头突破自行重新编程。你可能不会得到比你用其他方式更多的功能,但它会非常有教育意义。
答案 2 :(得分:1)
我同意Jono的意见 - 你正在咬掉很多东西 - 甚至可能最容易将键直接挂到Arduino上 - 撕掉电子设备并找出将键复用到单个通道的方法失去复调(可能是电阻'梯形')。无论如何,祝你好运。有趣的是,你要制作一个模拟键盘插入数字合成器。
Quick and Dirty Arduino MIDI Over USB 演示了如何通过USB发送/接收MIDI,但不幸的是,这可能对您尝试做的事情没有任何帮助,因为他找到了一条通往从USB主机发送和接收MIDI信号,而不是自己充当USB主机 - 与您的问题相反。但是,如果你想从计算机上控制你的设备,我想也许它会有用。
答案 3 :(得分:1)
如其他帖子所述,您需要使用单独的芯片来提供USB Host接口。这是使用USB Host shield by Circuits@Home与Akai LPK25(USB Midi键盘)连接的好指南。
http://blog.makezine.com/2010/11/30/usbhacking/
提供了Arduino草图,因此您应该可以尝试一下,但是如果它不能开箱即用,调试USB主机连接可能会变得非常棘手。