(SKU:DFR0534)Voice Module

来自DFRobot Product Wiki
跳转至: 导航搜索
ProductLink Voice Module 语音模块

目录

简介

您是否也会在DIY制作时总感觉缺点什么?没有生命力,没有活力?作品很枯燥不吸引人?DFRobot新推MP3语音模块可以帮你解决以上的烦恼。
DFRobot MP3语音模块内置8 MB存储空间,无需外接SD卡,若一个音效以秒计算,8M的内存可以存储两百多个音效供您选用。存储方式和使用U盘一样简单,可随时更新模块内的音效。使用上非常的简单,沿用DFRobot-Gravity接口,减少了接线的烦恼;支持MP3、WAV音频格式,可做指定播放,循环播放,30级音量调节等。 适用于各种需要有音效或者语音的项目,例如:智能小车、气象站、智能家居、车载导航、收费站、安监检测、机器语音导航等等。模块板载喇叭接口,可以直接推动8Ω3W无源小喇叭,使用简单。

技术规格

  • 工作电压:3.3V-5V
  • 接口类型:UART
  • 支持MP3 WAV硬件解码
  • 支持采样率(KHz):8/11.025/12/16/22.05/24/32/44.1/48
  • 支持SPIFLASH模拟成U盘,直接操作U盘一样更新SPIFLASH里的语音
  • 支持30级音量调节
  • 模块尺寸:22x30mm


引脚说明

顶层
底层
引脚说明
标号 名称 功能描述
1 T TX
2 R RX
3 - 电源地
4 + 电源正3.3V-5V
5 VCC 电源正3.3V-5V
4 GND 电源地
5 BUSY 忙信号脚,播放时为高,其它为低
6 SP+ 喇叭
7 SP- 喇叭
8 DACL DAC音频输出左声道
9 DACR DAC音频输出右声道
10 ONE 一线串口控制脚
11 micro usb 音效文件更新接口 (usb连接到电脑,存储方式与使用U盘一样简单)


通讯指令

查询播放状态(01)

指令:AA 01 00 AB

返回: AA 01 01 播放状态SM

说明:在任何时候都可以查询当前的播放状态,SM表示校验和,即 SM=0xAA+0x01+0x01+播放状态

播放(02)

指令:AA 02 00 AC

返回: 无

说明:在任何时候发此命令都会从头开始播放当前曲目

暂停(03)

指令:AA 03 00 AD

返回:无

停止(04)

指令:AA 04 00 AE

返回:无

上一曲(05)

指令:AA 05 00 AF

返回:无

下一曲(06)

指令:AA 06 00 B0

返回:无

指定曲目(07)

指令:AA 07 02 曲目高 曲目低 SM

返回:无

例如: AA 07 02 00 08 BB 指定播放当前盘符第 8 首,曲目数从 1-65535

指定盘符指定路径播放(08)

指令:AA 08 长度 盘符 路径 SM

返回:无

说明:长度=盘符长度+路径长度=1+路径长度

查询当前在线盘符(09)

指令:AA 09 00 B3

返回: AA 09 01 盘符 SM

说明:在线盘符是按位来区分的:USB:BIT(0) SD:BIT(1) FLASH:BIT(2) 此功能可以知道当前在线盘符,在切换盘符前建议先查询一下在线盘符

查询当前播放盘符(0A)

指令: AA 0A 00 B4

返回: AA 0A 01 盘符 SM

切换到指定盘符(0B)

指令:AA 0B 01 盘符 SM

返回: 无

说明:盘符切换指令,如果当前盘符在线,可以切换到相对应的盘符等待播放,切换 后曲目为第 1 首,建议切 换前先查询一下盘符是否在线。

查询总曲目(0C)

指令:AA 0C 00 B6

返回:AA 0C 02 总曲目高 总曲目低 SM

查询当前曲目(0D)

指令:AA 0D 00 B7

返回:AA 0D 02 曲目高 曲目低 SM

上一文件夹目录(0E)

指令:AA 0E 00 B8

返回:无

说明:切换后会播放文件夹里的第一首

下一文件夹目录(0F)

指令:AA 0F 00 B9

返回:无

说明:切换后会播放文件夹里的第一首

结束播放(10)

指令:AA 10 00 BA

说明:此指令可以提前结束当前操作,会结束当前播放,如果是在插播等则会提前结 束插播返回原来状态

查询文件夹目录首曲目(11)

指令:AA 11 00 BB

返回:AA 11 02 曲目高 曲目低 SM

说明:为当前目录的第一首歌曲的序号

查询文件夹目录总曲目(12)

指令:AA 12 00 BB

返回:AA 12 02 曲目高 曲目低 SM

说明:此曲目不包含子目录里的文件数

音量设置(13):

指令:AA 13 01 VOL SM

返回:无

例如:AA 13 01 14 D2 设置音量为 20 级

音量加(14)

指令:AA 14 00 BE

返回:无

音量减(15)

指令:AA 15 00 BF

返回:无

指定曲目插播(16)

指令:AA 16 03 盘符 曲目高 曲目低 SM

返回:无

例如:AA 16 03 00 00 09 CC 插播 U 盘里的第 9 首

说明:插播结束后返回插播点继续播放

指定路径插播(17) 

指令:AA 17 长度 盘符 路径 SM

返回:无

说明:长度=盘符长度+路径长度=1+路径长度

设置循环模式(18)

指令:AA 18 01 循环模式 SM

返回:无

举例:设置为单曲停止 : AA 18 01 03 C6

设置循环次数(19)

指令:AA 19 02 次数高 次数低 SM

返回:无

说明:此指令只在播放模式为 全盘循环、单曲循环、目录循环时有效、顺序播放。

例如:AA 19 02 00 06 CB 循环 6 次

EQ 设置(1A)

指令:AA 1A 01 EQ SM

返回:无

例如:AA 1A 01 02 C7 设置 EQ 为 ROCK

组合播放(1B)

指令:AA 1B 长度 曲目 1 名称高字节,曲目名称 1 低字节..... 曲目 n 名称高字节,曲 目 n 名称低字节 SM

返回:无

例如:AA1B04303130328C,文件名为“ 01”、“ 02”歌曲组合播放

说明:文件名组合会方便很多,比文件序号组更准确,不受拷贝顺序限制。

结束组合播放(1C)

指令:AA 1C 00 C6

返回:无

说明:结束组合播放,返回组合前的播放状态

设置通道(1D)

指令:AA 1D 01 通道 SM

返回:无

查询歌曲短文件名(1E)

指令:AA 1E 00 C8

返回:AA 1E 短文件名长度 短文件名 SM

选曲不播放(1F)

指令:AA 1F 02 曲目高 曲目低 SM

返回:无

复读控制(20)

指令:AA 20 04 起始分 起始秒 结束分 结束秒 SM

返回:无

结束复读(21)

指令:AA 21 00 CB

返回:无

指定时间快退(22)

指令:AA 22 02 时间高 8 位 时间低 8 位 SM

返回:无

说明:单位为秒

指定时间快进(23)

指令:AA 23 02 时间高 8 位 时间低 8 位 SM

返回:无

说明:单位为秒

获取当前曲目总时间(24)

指令:AA 24 00 CE

返回:AA 24 03 时 分 秒 SM

开启播放时间发送(25)

指令:AA 25 00 CF

返回:AA 25 03 时 分 秒 SM

说明:开启播放时间发送,时间更新时会自动返回

关闭播放时间发送(26)

指令:AA 26 00 D0

返回:无

说明:关闭播放时间发送

使用教程

  1. 指定播放音效
  2. 循环播放音效
  3. 修改音量大小


准备

  • 硬件
    • 1 x Arduino UNO控制板
    • 1 x IO扩展板
    • 1 x 无源音箱小喇叭 (8Ω3W)
    • 若干 杜邦线
  • 软件


音效文件下载

1、本模块自带音效,如需要新增或者替换音效,我们可以使用micro usb线接到电脑端做更新下载;
2、音效文件更新方式和使用U盘的方式一样;
3、模块支持MP3和MAV格式音频文件;
4、文件要求存储在“ ZH”文件夹下,一般建议用数字表示。如: 01.mp3,02.mp3,也可以用两个字母或一个汉字命名 。

接线图

DFR0534连线图.png

样例代码

/*
 * @file Voice Module.ino
 * @brief 
 * @n [Get the module here]
 * @n This example Set the voice module volume and playback
 * @n [Connection and Diagram]()
 *
 * @copyright  [DFRobot](http://www.dfrobot.com), 2016
 * @copyright GNU Lesser General Public License
 *
 * @author [carl](lei.wu@dfrobot.com)
 * @version  V1.0
 * @date  2017-11-3
 */
#include <SoftwareSerial.h>

SoftwareSerial Serial1(10, 11);

unsigned char order[4] = {0xAA,0x06,0x00,0xB0};


void setup() {  
//Serial.begin(115200);
 Serial1.begin(9600);
 volume(0x1E);//音量设置0x00-0x1E
}

void loop() {
 play(0x01);//指定播放:0x01-文件0001
// Serial1.write(order,4);//顺序播放
 delay(2000);
}

void play(unsigned char Track)
{
 unsigned char play[6] = {0xAA,0x07,0x02,0x00,Track,Track+0xB3};//0xB3=0xAA+0x07+0x02+0x00,即最后一位为校验和
   Serial1.write(play,6);
}
void volume( unsigned char vol)
{
  unsigned char volume[5] = {0xAA,0x13,0x01,vol,vol+0xBE};//0xBE=0xAA+0x13+0x01,即最后一位为校验和
     Serial1.write(volume,5);
 }


Mind+图形化程序

此模块不需要库,直接使用十六进制代码即可控制,因此可以使用Mind+等图形化程序进行控制。
1、安装mind+,下载地址:http://www.mindplus.cc
2、软件右上方,切换到"上传模式"
3、软件左上方,"扩展"中选择"主控板"中的“Arduino uno","扩展"中选择"功能模块"中的"软串口"
4、进行编程,代码如下,完了"上传到设备"
P.S : 更多关于Mind+的介绍及使用方法查看论坛Mind+板块 点击查看


Mind+mp3.png

结果

播放音效“DO”。


常见问题

还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!


更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。


更多


DFshopping car1.png DFRobot商城购买链接

个人工具
名字空间

变换
操作
导航
工具箱