16983浏览
查看: 16983|回复: 7

[DFR0112 Arduino mp3 播放模块]评测

[复制链接]
本帖最后由 沧海笑 于 2012-10-8 23:51 编辑

评测项目:DFR0112 Arduino IIC/TTL串口SD卡音乐 mp3 机器人语音播放器
时间:2012-03~10

1、板子外观
[DFR0112 Arduino mp3 播放模块]评测图3
板子做工比较精致,与喇叭尺寸相比,算是小巧。

2、连接方式
(1)左侧接口连接arduino,有两种方式:串口或者I2C通信方式,可以通过跳线选择。I2C方式:+5V,GND不必说,DO接A4,DI接A5
(2) 单/双声道选择:MONO短路子(短接为单声道)。
    连接后是这样的。
[DFR0112 Arduino mp3 播放模块]评测图1
3、看看代码(来自DFR网站介绍,因为注释比较详细了,就不再解释)
  1. /////////////////////////////////////////////////////////////////////////////////
  2. //将音频文件放在根目录下的sound文件夹 (sound),支持.WAV、.MP3、.MIDI 这三种文件格式
  3. //模块的MOD跳针用于选择 串口(UART) 或者I2C接口,MONO短路子用于当只适用一个喇叭的时候
  4. //短路这个跳针作为单声道输出
  5. //电压 5V,电流保证有1000毫安,如果电流不够需要将音量调小或者使用单个喇叭
  6. //指示灯的功能: 开机后短促闪烁一次说明进入串口模式,闪烁两次进入I2C模式
  7. //               等待初始化成功后将长亮,如果SD卡未插好将一直闪烁同时
  8. //               如果是串口模块将输出 Plese check micro SD card\r\n
  9. ///////////////////////串口或者I2C通信方式/////////////////////////////////////////////
  10. // 播放音频:语音文件名称\r\n 播放相应名称的歌曲,如果找到歌曲播放正确将返回 Play ok\r\n
  11. // 如果失败返回 Not found\r\n; 如果播放完毕返回 over\r\n(\r\n表示回车换行)
  12. // 语音文件名称不超过8个英文字母,4个中文。I2C接口无命令返回
  13. // 暂停播放\\:p\r\n   成功返回pause\r\n
  14. // 继续播放\\:s\r\n   成功返回start\r\n
  15. // 播放下一首\\:n\r\n   成功返回next\r\n,失败返回 false\r\n
  16. // 播放上一首\\:u\r\n  成功返回key up\r\n
  17. // 音量设置\\:v255\r\n,设置音量大小 数字 0-255 数字越大音量越大,成功返回vol set ok
  18. /////////////////////////////////////////////////////////////////////////////////
  19. //IIC接线方式
  20. //Arduino    MP3
  21. //模拟口4    DO
  22. //模拟口5    DI
  23. //5V         +5V
  24. //GND        GND
  25. #include <Wire.h>
  26. #include <stdlib.h>
  27. #define ArduinoPlayer_address 0x35  //定义ArduinoPlayer 语音播放模块I2C地址
  28. void TwiSend(const char  *cmd)  //I2C发送命令函数
  29. {
  30.   char len = 0;
  31.   len = strlen(cmd); //计算字符串长度
  32.   Wire.beginTransmission(ArduinoPlayer_address); // ArduinoPlayer 语音播放模块I2C地址
  33.   while(len--)
  34.   {
  35.     Wire.send(*(cmd++));     
  36.   }
  37.   Wire.endTransmission();    // stop transmitting
  38. }
  39. void setup()
  40. {
  41.   Wire.begin(); // join i2c bus (address optional for master)
  42.   Serial.begin(9600);
  43.   delay(2000);//等待2秒钟播放器初始化完成
  44.   Serial.println("Ready");
  45.   TwiSend("\\:v 255\r\n");    // 音量设置最大  数字 0-255 数字越大音量越大
  46. }
  47. //接收串口命令字符,执行相应操作
  48. void loop()
  49. {
  50.   int val;
  51.   if(Serial.available() > 0)
  52.   {
  53.     val=Serial.read();
  54.     switch(val)
  55.     {
  56.     case 'p':      // 暂停播放
  57.       TwiSend("\\:p\r\n");
  58.       Serial.println("OK");
  59.       break;
  60.     case 's':     // 继续播放
  61.       TwiSend("\\:s\r\n");
  62.       Serial.println("OK");
  63.       break;   
  64.     case  'n':
  65.       TwiSend("\\:n\r\n");  // 播放下一首
  66.       Serial.println("OK");
  67.       break;
  68.     case 'u':
  69.       TwiSend("\\:u\r\n"); // 播放上一首
  70.       Serial.println("OK");
  71.       break;
  72.     case  'm':      //播放名称为yes的音频文件
  73.       //注意:必须将音量控制放在播放之前
  74.       TwiSend("\\:v 250\r\n");    // 音量设置250 数字 0-255 数字越大音量越大
  75.       TwiSend("\\yes\r\n");
  76.       Serial.println("OK");
  77.       break;  
  78.     default:
  79.       break;   
  80.     }
  81.   }
  82. }
复制代码
4、评测情况
(1)通过串口助手控制歌曲播放,P代表暂停;S是恢复播放;N/U上下翻动歌曲,M是播放特定名称歌曲。配套的小喇叭倒不是很给力,你也可以考虑输出给功放。
(2)感觉:控制起来是比较流畅的,通过串口方式由PC控制,很方便用上位机编程。或者用按钮(需要加电阻,编程时注意延时去抖)引入开关量,很便利地控制歌曲的播放、暂停、上下曲选择以及特定歌曲播放、音量调节。(发热情况不严重,比较轻)[DFR0112 Arduino mp3 播放模块]评测图4
(3)用途
a.因为体积很小,所以第一感觉就是互动玩具,与语音识别模块配合,可以做预先录制好的应答库。然后根据互动结果输出。
b.与液晶配合(英文数字歌曲名可以用1602),显示歌曲名称(使用串口模式),做一个小的MP3播放器。当然,这个功能需要详细的技术手册。
c.与oled2864配合,我希望能够试试视觉电子乐,(电位器可以调节声音)也许是另外一种很炫的玩法。很期待这个尝试。

5、需要注意的问题

(1)需要注意的问题就是micro sd卡的选择,就是那种手机卡,为了考虑和W5100模块兼容,最好选择2G以下的,我测试了两种卡,都认,不像W5100模块挑卡。下图就是我的诺基亚手机的卡。
[DFR0112 Arduino mp3 播放模块]评测图2
(2)这块板子到手比较早,和语音识别模块一起买的,当时也评测了,但是没有整理。现在DF好像已经升级了这款模块,本文仅供参考。
(3)板子与arduino UNO不是叠装方式,板子本身有四个比较合适的安装孔(在四角),可以通过铜柱固定。





mickey  NPC

发表于 2012-10-10 11:58:10

好文章不顶不行。新版的MP3模块兼容gadgeteer接口,同时有排针输出接普通Arduino,取消了IIC接口,只有串口。
回复

使用道具 举报

沧海笑  高级技师
 楼主|

发表于 2012-10-10 18:12:35

mickey兄,看资料,有串口可以读取mp3文件名是吗?这样一来,结合oled 2864,可以显示歌名。
另外:兼容gadgeteer接口,是不是可以和DF的Gadgeteer Audio Analyzer 语音分析模块对接,从而实现对mp3的音频分析,可视化展示其七个频段的幅值。这可以更好地发挥2864模块了。
有搞头。

唉,要是可以以旧换新就好了,:(


回复

使用道具 举报

Rockets  NPC

发表于 2012-10-24 10:09:25

沧海笑 发表于 2012-10-10 18:12
mickey兄,看资料,有串口可以读取mp3文件名是吗?这样一来,结合oled 2864,可以显示歌名。
另外:兼容gad ...

也许以后可以考虑这样的活动噢,不过目前暂时没有这样的活动呢。
回复

使用道具 举报

admin  管理员

发表于 2012-10-24 18:27:15

对于沧海兄,这样的活动可以有!
回复

使用道具 举报

沧海笑  高级技师
 楼主|

发表于 2012-11-8 00:02:36

嗯嗯,相当振奋,这段时间工作岗位调整,比较忙,看到这消息,振奋。
回复

使用道具 举报

darf  见习技师

发表于 2014-6-6 16:57:14

楼上大家好,挖坟的来了!我刚买了MINI PLAYER(DFR0299)MP3模块,可是库文件不全啊。兄弟小白,狂求 带“设置音量”函数的库文件。
回复

使用道具 举报

20060606  高级技匠

发表于 2020-8-24 05:19:10

沧海笑 发表于 2012-10-10 18:12
mickey兄,看资料,有串口可以读取mp3文件名是吗?这样一来,结合oled 2864,可以显示歌名。
另外:兼容gad ...

以旧换新,哈哈哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail