2019年2月13日 星期三

Mini MP3 Player

為了想要用arduino控制音效,所以淘了這個撥放器回來試試看,一看到底下說明整個就傻住了,竟然要發送指令,這,我不會啊,幸好賣家提供了一篇文章









https://stonez56.blogspot.com/2015/03/arduino-dfplayer-mini-mp3-module.html

原始文章應該出自底下
https://t93093.wordpress.com/2017/08/03/arduino-%E6%B8%AC%E8%A9%A6-dfplayer-mini-mp3-%E6%92%AD%E6%94%BE%E6%A8%A1%E7%B5%84/

但是,看的時候不仔細,多花了點時間,所以依照自己的方式做紀錄,
先到底下路徑抓函式庫放到arduino的libraries
https://github.com/DFRobot/DFPlayer-Mini-mp3

#include <DFPlayer_Mini_Mp3.h>

聲音檔的放置方式:
在準備的micro SD卡裡面新增"mp3" 資料夾,把聲音檔放進這個資料夾
而聲音檔要先以四個數字命名0001~9999,在寫arduino程式碼的時候,要使用哪個聲音檔,不管前面的0,比如0001寫1就可以,
mp3_play (1);         //播放0001的聲音檔

測試用的程式碼,注意接腳用的是0、1,所以傳程式碼時先不要接
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>

//
void setup () {
Serial.begin (9600);
mp3_set_serial (Serial); //set Serial for DFPlayer-mini mp3 module
mp3_set_volume (15);
}


//
void loop () {     
mp3_play (1);
        delay (6000);
}

聲音檔名的數字之後就可以加文字,比如0001test.mp3,

我也拆了一條USB線,測試讀卡功能,插到電腦上,還真的有抓到勒


只是,有個困惱的地方,接喇叭的正負極並沒有清楚的標示,實際上測試則是怎麼接都可以,但SPK2接正極的時候雜音比較少,至於要沒雜音的話,

依照官方的說法,需要接個1k的電阻,不過,上述的測試程式碼不能使用底下的接腳,因為是接10、11,所以為了符合底下的接腳說明,稍微修改了一下





#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>

SoftwareSerial mySoftwareSerial(10, 11); // RX, TX

void setup() {
 Serial.begin (9600);
 mySoftwareSerial.begin(9600);
 mp3_set_serial (mySoftwareSerial); //set Serial for DFPlayer-mini mp3 module
 mp3_set_volume (20);

}

void loop () {     
 mp3_play (1); //play 0001.mp3
 delay(10)
}




官方也有提供函式庫跟範例
http://wiki.dfrobot.com.cn/index.php/(SKU:DFR0299)DFPlayer_Mini%E6%A8%A1%E5%9D%97

接著,我叫兒子錄了兩句話,把它接到otto上,只不過otto的10跟11是用來接嘴巴的Led,因為線太亂,我沒有接,修改成遇到障礙物發出人聲警告。

題外話,因為我本來是用mblock寫程式,但是不知道怎麼把MP3player加進去,所以想用arduino 的IDE來編輯程式碼,但是,不管怎麼compiler都失敗,後來,到下面下載函式庫放到libraries裡面就可以了。
https://github.com/stembotvn/OttoDIY_mBlock_Extension





沒有留言:

張貼留言