一、硬件连接
材料准备:
1、光电耦合器 6N137
2、电阻10K一只、电阻220Ω一只。
原理图如下
引脚对应关系:
6N137引脚 MIDI母座引脚
2 4
3 5
5(GND) 2(GND)
电路连接完成后,接下来是软件方面的配置。
二、软件安装
1、安装ttyMIDI和libasound2-dev
2、配置boot/下的cmdline.txt和config.txt
下面来安装libasound2-dev和ttyMIDI:
$ sudo apt-get install libasound2-dev
$ wget http://www.varal.org/ttymidi/ttymidi.tar.gz
$ tar -zxvf ttymidi.tar.gz
$ cd ttymidi/
$ make
$ sudo make install
如果有make不成功的情况,打开ttymidi目录下的makefile文件,在gcc src/ttymidi.c -o ttymidi -lasound末尾加 -lpthread。
即:
gcc src/ttymidi.c -o ttymidi -lasound -lpthread
保存以后再make并sudo make install。
安装成功如下图
接下来配置boot/下的cmdline.txt文件,将console=serial0或者console=ttyAMA0,115200之类的删掉,修改后如下
dwc_otg.lpm_enable=0 console=tty1 root=/dev/sda2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
保存,接着修改boot/下的config.txt文件,在末尾添加如下几行:
enable_uart=1
dtoverlay=pi3-miniuart-bt
dtoverlay=midi-uart0
到此,软件方面的配置完成。
其原理大概是树莓派的串口原来已被蓝牙占用,配置cmdline.txt移除所有与ttyAMA0之间的关联之后才释放;
dtoverlay=pi3-miniuart-bt
dtoverlay=midi-uart0
这两行意思是解除蓝牙与串口的关联,并将串口强制配置为31250波特率;输入如下命令查询串口对应关系:
ls -l /dev
serial0对应ttyAMA0说明成功。配置之前ttyAMA0和ttyS0关系是相反的。
三、软件应用
输入命令
ttymidi -s /dev/ttyAMA0 -b38400 -v
运行JACK Audio Connection Kit,打开Connect界面,ALSA选项卡将出现ttymidi,此时你可以连接任何音序器或者合成器软件了,通过成本低廉的元件制作出MIDI输入接口,你可以将树莓派当成音源合成器使用,无需繁琐的USB-MIDI线,也不需要购买昂贵的pisound模块。
参考文献:
http://www.instructables.com/id/PiMiDi-A-Raspberry-Pi-Midi-Box-or-How-I-Learned-to/