用microbit播放mp3

micro:bit可以用腳位來外接蜂鳴器發出聲音,但只能發出簡單的單音,且因為沒有音訊解碼的功能,無法播放mp3歌曲。有時候因為專案需求,希望能夠有更多變化,能夠播放MP3以符合專案需求,這時候就需要外接音訊編碼的元件以達成需求。

DFPlayer mini是個小巧的音訊播放裝置,大小大約如同一個一元硬幣,內建SD卡槽,可播放SD記憶卡裡面的MP3以及WAV檔,靠著serial序列埠,可以和micro:bit或是arduino連接,由micro:bit下指令給DFPlayer播放MP3,而且DFPlayer內建腳位,可以直接驅動3W以內的蜂鳴器或是喇叭發出聲音而不需再為喇叭外接電源,所以是micro:bit播放MP3的一個好選擇。DFPlayer mini甚至可以不用接開發板,只要有電源、喇叭,靠著DFPalyer mini的其他腳位,它也可以獨立運作。

我為DFPlayer mini寫的makecode底下可使用的micro:bit套件,套件安裝網址如下:

https://github.com/lioujj/pxt-mp3


另外,DFPlayer mini的相關連結請參考:

https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299

DFPlayer mini支援3V到5V的電壓,所以直接由micro:bit供電給DFPlayer mini是沒有問題的,它的RX以及TX腳位需要連接到micro:bit的二個接腳,micro:bit以序列埠的傳送資料方式傳送指令給DFPlayer mini以執行播放命令,內定的Boundrate是9600,相關的線路接法,請參考下圖:

DFPlayer mini體積小,約一元硬幣大小

DFPlayer mini可以接micro:bit或是arduino都可以。

DFPlayer mini的控制指令是10個byte的數字,只要了解它的格式,我們就可以透過micro:bit或是arduino來控制它,指令格式如下:

arduino有許多人開發了許多library供人呼叫使用,但是micro:bit還沒有,於是我研究了一下指令格式,先簡單做了一些積木,讓大家在makecode可以很方便的使用,積木的一些簡單的用法介紹如下:

如果指定資料夾以及檔案播放,資料夾以及檔案的命名規則,請參考以下範例:

範例一:指定播放第4首曲目(依存檔時間的先後順序)

範例二:循環播歌的模式

範例三:生日驚喜,用東西蓋住micro:bit時,micro:bit會保持安靜;當把東西掀開時,micro:bit就會播放生日快樂MP3。

範例四:利用凱斯的KSB039擴展板上的滑桿控制micro:bit音量,並且由麥克風偵測音量大小由燈光來顯示音量