ESP32+TFTLCD实现WiFi天气语音播报(六)

ESP32+MY1680U实现语音播报



前言

在这一章将实现MY1680U语音模块播放MP3,语音播报存入的语句。
需要用到的资料 提取码:lwm2


一、MY1680U-12P 语音模块

1、概述

MY1680U-12P 是深圳市迈优科技有限公司自主研发的一款小巧的集成MP3模块。采用MY1680U-16S MP3主控芯 片,支持MP3、WAV格式双解码,模拟U盘下载。模块内置FLASH存储芯片,1-16M容量可选;也可外接U盘或USB数据线连接电脑更换FLASH的音频文件。该模块内置3W功放,可以直接驱动3W的喇叭,使用更方便。

产品特性

  • 支持 MP3 、WAV 高品质音频格式文件,声音优美。
  • 24 位 DAC 输出,动态范围支持 93dB,信噪比支持 85dB。
  • 完全支持 FAT16、FAT32 文件系统,最大支持 16M FLASH,32G 的 U 盘。
  • 支持 UART 异步串口控制:支持播放、暂停、上下曲、音量加减、选曲播放、插播等。
  • ADKEY 功能,通过电阻选择可实现标准 MP3 功能的 5 按键控制和其他功能。
  • 内置音量、曲目掉电记忆功能。  支持 USB 连接电脑下载声音。
  • 自带 3W 的功放,直接外接喇叭即可完成播放;音量不够客户也可外接功放。
  • MY1690-12P 插 SD 卡模块与这款管脚兼容,需要升级大存储空间方便更换

2、参数说明

在这里插入图片描述
在这里插入图片描述
MY1680U-12P内置标准UART异步串口接口,为3.3V TTL电平接口,波特率9600。可通过MAX3232芯片转换成RS232电平或者通过 USB转TTL模块与PC通讯进行调试。通讯数据格式是:
起始位:1位;数据位:8位;奇偶位:无;停止位:1位。
向语音模块里面传入音频文件可以通过USB连接电脑传输也可以通过USB转TTL模块,使用电脑串口调试助手,传输音频文件
USB转TTL模块与MY1680U-12P的连接图
在这里插入图片描述
这里是串口调试助手的下载地址 提取码:lwm2

使用普通安卓手机数据线连接模块,第一次连接会自动安装驱动。安装成功后电脑弹出可移动磁盘,直接将声音命名好然后拖进磁盘内便可
在这里插入图片描述

照歌曲命名规则

  • 存根目录时按以下方式命名,四位数字开头命名,后面可以带中文也可以不带。
  • 建文件夹时按以下方式命名,文件夹以两位数字开头命名,文件夹内歌曲以三位数字命名后面可以带中文也可以不带。

朗读女 提取码:lwm2
这个软件可以把你输入的文本合成语音生成音频文件

二、代码实现

1.MY1690.c

代码如下:

#include "MY1690.h"

VOICE_DEV voice1={
   .frame_head = 0x7E,.frame_end = 0xEF};
//0 1 2 3 4 5 6 7 8 9 10 100 1000 10000
u8 Voice_Table[] = {
   1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21};
	
//MY1690通信接口初始化
void MY1690_UARTConfig(u32 brr)
{
   
	GPIO_InitTypeDef GPIO_InitStructure;
	USART_InitTypeDef USART_InitStructure;
	//开时钟
	RCC_APB2PeriphClockCmd(MY1690_TX_CLK | MY1690_RX_CLK, ENABLE);
	MY1690_UART_CLKCMD(MY1690_UART_CLK, ENABLE);
	//结构体赋值
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;	
	GPIO_InitStructure.GPIO_Pin = MY1690_TX_PIN;
	GPIO_Init(MY1690_TX_PORT, &GPIO_InitStructure);
	
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
	GPIO_InitStructure.GPIO_Pin = MY1690_RX_PIN;
	GPIO_Init(MY1690_RX_PORT, &GPIO_InitStructure);
  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Arduino编程循环播放Ys-m3语音播报模块,您可以按照以下步骤进行操作: 1. 连接Ys-m3模块:将Ys-m3模块的VCC和GND引脚连接到Arduino板的5V和GND引脚上,将Ys-m3模块的TX引脚连接到Arduino板的数字引脚2上,将Ys-m3模块的RX引脚连接到Arduino板的数字引脚3上。 2. 下载并安装Ys-m3库:打开Arduino IDE,点击“工具”菜单,选择“管理库”,在搜索框中输入“Ys-m3”,然后安装“Ys-m3”库。 3. 编写代码:以下是一个简单的循环播放代码示例: ``` #include <SoftwareSerial.h> //导入软件串口库 SoftwareSerial mySerial(2, 3); //定义软件串口对象并指定RX和TX引脚 void setup() { mySerial.begin(9600); //初始化串口通信 } void loop() { //播放第1个语音文件 mySerial.write(byte(0x7E)); mySerial.write(byte(0xFF)); mySerial.write(byte(0x06)); mySerial.write(byte(0x03)); mySerial.write(byte(0x00)); mySerial.write(byte(0x01)); mySerial.write(byte(0xF7)); //等待播放完成 delay(2000); //播放第2个语音文件 mySerial.write(byte(0x7E)); mySerial.write(byte(0xFF)); mySerial.write(byte(0x06)); mySerial.write(byte(0x03)); mySerial.write(byte(0x00)); mySerial.write(byte(0x02)); mySerial.write(byte(0xF7)); //等待播放完成 delay(2000); //播放第3个语音文件 mySerial.write(byte(0x7E)); mySerial.write(byte(0xFF)); mySerial.write(byte(0x06)); mySerial.write(byte(0x03)); mySerial.write(byte(0x00)); mySerial.write(byte(0x03)); mySerial.write(byte(0xF7)); //等待播放完成 delay(2000); } ``` 其中,mySerial.write()函数用于向Ys-m3模块发送指令,byte()函数用于将指令转换为字节形式。在这个示例中,我们使用了三个语音文件,每个文件之间停顿2秒钟。 4. 上传代码:将Arduino板通过USB连接到电脑上,选择对应的串口和Arduino板类型,然后点击“上传”按钮将代码上传到Arduino板上。 5. 测试播放:将Ys-m3模块连接到扬声器或耳机上,然后复位Arduino板,您就可以听到循环播放的语音文件了。 希望这个示例能对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值