本例实验采用Mini MP3 Player播放器模块
是一款小巧且价格低廉的MP3模块,可以直接接驳扬声器。模块配合供电电池、扬声器、按键可以单独使用,也可以通过串口控制,作为UNO或者是任何有串口的单片机的一个模块。模块本身完美的集成了MP3、WAV、WMA的硬解码。同时软件支持TF卡驱动,支持FAT16、FAT32文件系统。通过简单的串口指令即可完成播放指定的音乐,以及如何播放音乐等功能,无需繁琐的底层操作,使用方便,稳定可靠。
![【花雕动手做】ASRPRO语音识别(71)---DFPlayer 播放 MP3图2](https://mc.dfrobot.com.cn/data/attachment/forum/202402/15/162425gcf70g0dzgx883cu.jpg)
![【花雕动手做】ASRPRO语音识别(71)---DFPlayer 播放 MP3图3](https://mc.dfrobot.com.cn/data/attachment/forum/202402/15/162425wz1a1fcl84f48441.jpg)
模块管脚图
管脚号 管脚名称 功能描述 备注
1 BUSY 播放时输出高电平,停止为低 忙信号
2 RX UART异步串口数据输入 3.3V的TTL电平
3 TX UART异步串口数据输出 3.3V的TTL电平
4 DACR DAC右声道输出 可外接功放、耳机
5 DACL DAC左声道输出 可外接功放、耳机
6 SPK1 外接单声道喇叭 接3W/4Ω或2W/8Ω无源喇叭
7 SPK2 外接单声道喇叭 接3W/4Ω或2W/8Ω无源喇叭
8 VCC 电源正极 3.6-5V
9 IO5 触发输入口5 接地触发
10 IO4 触发输入口4 接地触发
11 IO3 触发输入口3 接地触发
12 IO2 触发输入口2 接地触发
13 IO1 触发输入口1 接地触发
14 GND 电源负极 系统地
15 DP USB数据线 读U盘或用USB数据线连接电脑更换TF卡内容
16 DM USB数据线
![【花雕动手做】ASRPRO语音识别(71)---DFPlayer 播放 MP3图4](https://mc.dfrobot.com.cn/data/attachment/forum/202402/15/162425zfk0cpo6cif1eefp.jpg)
串口模式
模块支持异步串口通讯模式,通过串口接受控制命令
![【花雕动手做】ASRPRO语音识别(71)---DFPlayer 播放 MP3图1](https://mc.dfrobot.com.cn/data/attachment/forum/202402/15/162425mytaztdiwnya2999.jpg)
![【花雕动手做】ASRPRO语音识别(71)---DFPlayer 播放 MP3图5](https://mc.dfrobot.com.cn/data/attachment/forum/202402/15/162425cgadthp8ut9fawph.jpg)
【花雕动手做】实验七十六:语音控制SD卡音乐DFPlayer模块播放MP3
实验开源代码
- #define ASC2_12
- #define ST7735_CS_PIN 9
- #define ST7735_CS_GPIO_PIN gpio_pin_1
- #define ST7735_DC_PIN 1
- #define ST7735_DC_GPIO_PIN gpio_pin_1
- #define ST7735_RST_PIN 25
- #define ST7735_RST_GPIO_PIN gpio_pin_1
- #define ST7735_SCK_PIN 3
- #define ST7735_SCK_GPIO_PIN gpio_pin_3
- #define ST7735_MOSI_PIN 2
- #define ST7735_MOSI_GPIO_PIN gpio_pin_2
- #define ASC2_32
- #define ST7735S_RGB_GBR_ORDER 0
-
- #include "asr.h"
- extern "C"{ void * __dso_handle = 0 ;}
- #include "setup.h"
- #include "myLib/asr_st7735.h"
- #include "myLib/asr_event.h"
- #include "myLib/asr_mp3.h"
-
- uint32_t snid;
- unsigned char i;
- void hardware_init();
-
- SPITFT spi_tft(128, 160);
- //{ID:250,keyword:"命令词",ASR:"最大音量",ASRTO:"音量调整到最大"}
- //{ID:251,keyword:"命令词",ASR:"中等音量",ASRTO:"音量调整到中等"}
- //{ID:252,keyword:"命令词",ASR:"最小音量",ASRTO:"音量调整到最小"}
- void ASR_CODE()
- {
- //{ID:500,keyword:"命令词",ASR:"播放歌曲",ASRTO:"好的,播放了"}
- if(snid == 500){
- spi_tft.clear((0xF800));
- spi_tft.set_text_color((0x07FF),(0xF800));
- spi_tft.set_cursor(0,66);
- spi_tft.draw_hanzi_32("开始播放");
- for (i = 0; i < 8; i = i + 1) {
- Serial.write(MP3_wie_cmd(i,0x0D,0,0));
- }
- }
- //{ID:501,keyword:"命令词",ASR:"下一首",ASRTO:"好的,下一首"}
- if(snid == 501){
- spi_tft.clear((0x07E0));
- spi_tft.set_text_color((0x001F),(0x07E0));
- spi_tft.set_cursor(0,66);
- spi_tft.draw_hanzi_32("下一首歌");
- for (i = 0; i < 8; i = i + 1) {
- Serial.write(MP3_wie_cmd(i,0x01,0,0));
- }
- }
- //{ID:502,keyword:"命令词",ASR:"停止播放",ASRTO:"好的,停止了"}
- if(snid == 502){
- spi_tft.clear((0x001F));
- spi_tft.set_text_color((0xF800),(0x001F));
- spi_tft.set_cursor(0,66);
- spi_tft.draw_hanzi_32("播放停止");
- for (i = 0; i < 8; i = i + 1) {
- Serial.write(MP3_wie_cmd(i,0x16,0,0));
- }
- }
- //{ID:503,keyword:"唤醒词",ASR:"智能管家",ASRTO:"我在"}
- if(snid == 503){
- digital_write((21),1);
- spi_tft.clear((0x8FFF));
- spi_tft.set_text_color((0x001F),(0x8FFF));
- spi_tft.set_cursor(0,60);
- spi_tft.draw_hanzi_32("歌曲仓库");
- }
- //{ID:504,keyword:"命令词",ASR:"不错不错",ASRTO:"谢谢鼓励,继续唱歌"}
- if(snid == 504){
- digital_write((21),1);
- spi_tft.clear((0x001F));
- spi_tft.set_text_color((0x8FFF),(0x001F));
- spi_tft.set_cursor(30,66);
- spi_tft.draw_hanzi_32("谢谢");
- }
- }
-
- void hardware_init(){
- spi_tft.init();
- spi_tft.set_direction(2);
- spi_tft.set_text_wrap(true);
- spi_tft.set_text_size(32);
- spi_tft.set_bg_mode(1);
- vTaskDelete(NULL);
- }
-
- void setup()
- {
- Serial.begin(9600); setPinFun(13,SECOND_FUNCTION); setPinFun(14,SECOND_FUNCTION);
- //{speak:小蝶-清新女声,vol:20,speed:10,platform:haohaodada,version:V3}
- //{playid:10001,voice:欢迎使用人工智能AI语音助手,用智能管家唤醒我}
- //{playid:10002,voice:我退下了}
- digital_write((4),1);
- xTaskCreate(hardware_init,"hardware_init",256,NULL,100,NULL);
- }
复制代码
生成模型与编译烧录
![【花雕动手做】ASRPRO语音识别(71)---DFPlayer 播放 MP3图6](https://mc.dfrobot.com.cn/data/attachment/forum/202402/15/164819nb8fk8cfpffnkcmp.jpg)
![【花雕动手做】ASRPRO语音识别(71)---DFPlayer 播放 MP3图7](https://mc.dfrobot.com.cn/data/attachment/forum/202402/15/164819t4tn3aggovtgtzsc.jpg)
实验记录视频
【【花雕动手做】ASRPRO语音识别(71)---DFPlayer 播放 MP3】 https://www.bilibili.com/video/BV1cx4y1y7Ws/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987
实验场景图
![【花雕动手做】ASRPRO语音识别(71)---DFPlayer 播放 MP3图8](https://mc.dfrobot.com.cn/data/attachment/forum/202402/15/164839yq3boznn4y4868v6.jpg)
![【花雕动手做】ASRPRO语音识别(71)---DFPlayer 播放 MP3图9](https://mc.dfrobot.com.cn/data/attachment/forum/202402/15/164839yy5yyv9rm8yeuzyr.jpg)
![【花雕动手做】ASRPRO语音识别(71)---DFPlayer 播放 MP3图10](https://mc.dfrobot.com.cn/data/attachment/forum/202402/15/164840bxjgl8ls84849a0i.jpg)
![【花雕动手做】ASRPRO语音识别(71)---DFPlayer 播放 MP3图11](https://mc.dfrobot.com.cn/data/attachment/forum/202402/15/164840sjsjmsz7789sace1.jpg)
![【花雕动手做】ASRPRO语音识别(71)---DFPlayer 播放 MP3图12](https://mc.dfrobot.com.cn/data/attachment/forum/202402/15/164840gj1oqm14cox0w6rw.jpg)
|