首页 > 评测 > 让音乐播放更简单——Adafruit Music Maker FeatherWing和Audio FX Sound Board评测
让音乐播放更简单——Adafruit Music Maker FeatherWing和Audio FX Sound Board评测
- [导读]
- 本文介绍的两款模块都很小巧,但功能强大,一款是高集成度的OGG播放器方案,另一款是大家都熟悉MP3解码方案。此次评测的是Adafruit的两块板子:Audio FX Sound Board & Music Maker FeatherWing w/Amp
用VS1053做MP3的例子非常多,而我这里选择另一方面的应用:MIDI模式。这个模块要使用MIDI模式,需要把PCB背面的跳线焊盘短路。模块需要两组电源5V和3V,分别供电给功放和VS1053。我这里从一个开发板上取电。功放输出外接两个无源小音箱(TB拆机件)。这里选择用电脑串口发送指令,USB转串口模块是必须的,强烈建议使用FT232,其他的像PL2303不一定正常。因为都是从USB取电,所以这里串口模块仅连接一根线。
这里参考了Adafruit的Arduino代码,用Python实现同样的功能,实现了这几个函数:
初始化函数(注意这里设置了两个通道,使用不同的乐器,在播放《献给爱丽丝》的时候使用两种乐器轮流演奏)
def vs1053_midi_setup(com_name,timeout=0.5):
ser=serial.Serial(com_name,31250,timeout=timeout)#31250
ser.open
print(ser.name+' is opened!')
midiSetChannelBank(ser,0, VS1053_BANK_MELODY)
midiSetChannelVolume(ser,0, 127)
instrument = VS1053_GM1_Acoustic_Grand_Piano
#instrument = random.randint(1,128)
midiSetInstrument(ser,0, instrument)
print("Set Instrument1: %u"%instrument)
instrument = VS1053_GM1_Acoustic_Guita
midiSetInstrument(ser,1, instrument)
print("Set Instrument2: %u"%instrument)
print('Ready!')
return ser
设置通道的乐器
def midiSetInstrument(ser, chan, inst):
if chan>15:
return -1
inst=inst-1 #page 32 has instruments starting with 1 not 0 :(
if inst>127:
return -1
ser.write([MIDI_CHAN_PROGRAM | chan])
time.sleep(1)
ser.write([inst])
time.sleep(1)
return 0
- 本文系21ic原创,未经许可禁止转载!
网友评论
- 联系人:巧克力娃娃
- 邮箱:board@21ic.com
- 我要投稿
-
欢迎入驻,开放投稿
-
RAK831 Lite:基于树莓派3的LoRa网关... 2022-06-17
-
Imagination推出PowerVR AX2185和AX2145神经... 2022-06-17
-
ODROID-GO是一款兼容Arduino的基于ESP32的便... 2022-06-17
- PID温度控制器
预算:¥700003天前
- 摄像头的可视画面需要一直超上(linux系统,ARM)
预算:¥1000018小时前
- DICOM协议搭建(ARM架构,linux系统)
预算:¥1000017小时前
- 需MIPI摄像头隔离电路,实现3-4米能长距离
预算:¥1000017小时前
- 膨宫仪的控制板,控制流量和检测压力
预算:¥1000016分钟前
- 无创自动测量血压计 NIBP模块
预算:¥100007小时前