电子说
步骤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
全部0条评论
快来发表一下你的评论吧 !