首页 > 评测 > 让音乐播放更简单——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
- 我要投稿
-
欢迎入驻,开放投稿
-
人均百万?英伟达中国员工收入曝光! 2024-08-29
-
《黑神话:悟空》玩家硬盘升级攻略:提升游戏体验,畅享3A大作 2024-08-29
-
数睿数据参加《系统与软件工程 低代码开发平台通用技术要求》国家标准编制 2024-08-29
- NRF52810蓝牙数字耳机找人定制
预算:¥30005天前
- 125KW模块式PCS软硬件外包开发
预算:¥1100000015小时前
- 12V汽车启动电源项目BMS设计
预算:¥50000023小时前
- 数据可视化软件 开发
预算:¥5000023小时前
- PLC项目调试修改
预算:¥100001天前
- 起动电机控制器开发
预算:¥1100001天前