www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

首頁 > 評測 > 讓音樂播放更簡單——Adafruit Music Maker FeatherWing和Audio FX Sound Board評測

讓音樂播放更簡單——Adafruit Music Maker FeatherWing和Audio FX Sound Board評測

Adafruit    Audio   音頻    Feather    MP3    OGG    播放器    解碼   
  • 作者:邵楠
  • 來源:21ic
  • [導(dǎo)讀]
  • 本文介紹的兩款模塊都很小巧,但功能強大,一款是高集成度的OGG播放器方案,另一款是大家都熟悉MP3解碼方案。此次評測的是Adafruit的兩塊板子:Audio FX Sound Board & Music Maker FeatherWing w/Amp

用VS1053做MP3的例子非常多,而我這里選擇另一方面的應(yīng)用:MIDI模式。這個模塊要使用MIDI模式,需要把PCB背面的跳線焊盤短路。模塊需要兩組電源5V和3V,分別供電給功放和VS1053。我這里從一個開發(fā)板上取電。功放輸出外接兩個無源小音箱(TB拆機件)。這里選擇用電腦串口發(fā)送指令,USB轉(zhuǎn)串口模塊是必須的,強烈建議使用FT232,其他的像PL2303不一定正常。因為都是從USB取電,所以這里串口模塊僅連接一根線。

這里參考了Adafruit的Arduino代碼,用Python實現(xiàn)同樣的功能,實現(xiàn)了這幾個函數(shù):

標(biāo)題圖片.jpg

初始化函數(shù)(注意這里設(shè)置了兩個通道,使用不同的樂器,在播放《獻給愛麗絲》的時候使用兩種樂器輪流演奏)

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

設(shè)置通道的樂器

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原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評論

  • 聯(lián)系人:巧克力娃娃
  • 郵箱:board@21ic.com
  • 我要投稿
  • 歡迎入駐,開放投稿

熱門標(biāo)簽
項目外包 more+