Arduino USB MIDI接口的制作

电子说

1.3w人已加入

描述

步骤1:组件

Atmega8微控制器

套接字DIP28

USB-B连接器

极化电容器10uF〜50uF

连接器5x2引脚(可选)

连接器1x4引脚

石英16Mhz

陶瓷电容器33pF

电阻2k2

电阻68欧姆

Zenner Diodes 3V6

原型板

步骤2:原理图

接口

电路图很简单。

这是用于实现USBasp编程器的标准原理图。

区别在于我们将要放入ATmega8的固件。

第3步:安装USB连接器

要安装USB连接器,我们需要制作两个2-2.5mm的孔。

步骤4:安装电阻器

步骤5:安装齐纳二极管

步骤6:安装DIP28 Soket

。..以及电容器和16 MHz石英。

步骤7:模块已完成

安装4针连接器后模块已完成。

从左开始向右:

Pin 1-Gnd

Pin 2-Vdd

Pin 3-Rx

Pin 4-Tx

我尚未安装5x2pin ISP连接器,因为我已经可以在先前制造的模块上写入固件。

如果无法在外部写入固件该项目将必须安装ISP连接器(5x2pin)并根据示意图进行连接。

步骤8:刻录固件

要为ATmega8编写固件,我们需要一个程序员。图像中的一个是USBasp。当然,您也可以使用任何其他兼容的编程器。

MidiShield1Hex.zip仅包含十六进制文件。

MidiShield1.zip包含整个AVR Studio 4项目。

固件是MOCO/MICO的略微修改版本– USB转MIDI转换器。

步骤9:与Arduino配合使用

现在我们可以在Arduino开发板和USB模块之间建立连接。

实际上,这很简单。只需插入两个微控制器的串行端口和GND:

RX从Atmega8到Atmega32的TX(或Arduino的TX)

TX从Atmega8到Atmega32的RX(或Arduino的RX)

GND从Atmega8到Atmega32(Arduino)的GND

在我的设置中我未连接VCC,因为USB接口由USB供电端口(或HUB)和Arduino(Atmega32)分别供电。

现在,我们可以使用Arduino IDE进行首次测试。如您所见,它可以与标准示例文件》》示例》》通信》》 MIDI一起使用。

void setup() {

// Set MIDI baud rate:

Serial.begin(31250);

}

void loop() {

// play notes from F#-0 (0x1E) to F#-5 (0x5A):

for (int note = 0x1E; note 《 0x5A; note ++) {

//Note on channel 1 (0x90), some note value (note), middle velocity (0x45):

noteOn(0x90, note, 0x45);

delay(100);

//Note on channel 1 (0x90), some note value (note), silent velocity (0x00):

noteOn(0x90, note, 0x00);

delay(100);

}

}

// plays a MIDI note. Doesn‘t check to see that

// cmd is greater than 127, or that data values are less than 127:

void noteOn(int cmd, int pitch, int velocity) {

Serial.write(cmd);

Serial.write(pitch);

Serial.write(velocity);

}

您还可以安装以下库:https://github.com/FortySevenEffects/arduino_midi_library。

步骤10:屏幕截图

接口

接口

接口

在ATmega8中刻录固件并建立连接后,我将USB电缆连接到了计算机。Windows立即检测到该设备并安装了标准驱动程序。不需要其他驱动程序(在Windows7-64bit和WindowsXP-32bit上测试)。

我还使用Fl Studio和Traktor进行了测试。
        责任编辑:wv 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分