JQ6500语音模块

  • Post author:
  • Post category:其他




一:Note

今天分享一下最近用到的JQ6500语音模块,我主要是用它来做个语音播报功能,同时在使用中遇到的一些问题。



二:使用说明

这个模块一些什么使用场景的废话我就不讲了,主要讲一些比较重要的部分。

1、它的工作电压,这个点我觉得我还挺重要,因为在后面我使用的时候,发现有的时候语音出来是很短,一下就没了,后来发现是电压这里的问题

在这里插入图片描述

2、 实物图及原理图,新手刚拿到,就只能按照这个图来连线,对好个个引脚。
在这里插入图片描述

在这里插入图片描述

3、通讯命令,它是支持异步串口通信,波特率9600,8位数据位,没有校验位,没有流控制,这里也要注意,在利用串口调试的时候,这些参数都要设置好,一旦有偏差都通信不了。调试的时候利用串口调试助手就可以,尤其注意一点,发送数据的时候,要勾选上以十六进制发送数据。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

组合播放 :

连续发送【7E 04 03 00 01 EF】【7E 04 03 00 02 EF】【7E 04 03 00 03 EF】,则连续播放第一首、第二首、第三首,最多可以十首组合,播放完停止。



三:添加语音

拿到这个模块,当然需要是自己弄语音进去让他播放,这里就要使用到更新语音这个环节了。拿一根usb线,连接上模块的miniUSB口,注意,这里的USB线,我之前用的是那种充电宝的万能充电线,然后就一直不行,后来我换了一个单一的usb线就可以了,所以如果你的也是这样连接不上,可以试一下换一根USB线。然后你插上电脑,就可以了,就会出现以下情况

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这样就可以了,先要下的进去语音,才能用串口调试一下各个指令。哦,对,还有一个合成语音软件,做语音播报一般都是合成自己需要的语音就可以,如果你需要,留言给我,我可以分享给你!



四:软件控制

我是用STM32实现的,用了一个串口,然后通过程序实现语音播放

void uart3_init(u32 bound){
  //GPIO端口设置
  GPIO_InitTypeDef GPIO_InitStructure;
  USART_InitTypeDef USART_InitStructure;
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);	//使能USART3,GPIOB时钟
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);
  
	//USART3_TX   GPIOB.10
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; 
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;	//复用推挽输出
  GPIO_Init(GPIOB, &GPIO_InitStructure);
   
  //USART3_RX	  GPIOB.11初始化
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
  GPIO_Init(GPIOB, &GPIO_InitStructure);  
   //USART 初始化设置

	USART_InitStructure.USART_BaudRate = bound;//串口波特率
	USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式
	USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位
	USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位
	USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制
	USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;	//收发模式

  USART_Init(USART3, &USART_InitStructure); 
//  USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);//开启串口接受中断
  USART_Cmd(USART3, ENABLE);                     

}

//音乐播放  7e 04 03 00 02 ef
void Play(u16 cmd)
{
		USART_SendData(USART3,0x7E);
		delay_ms(1);
		USART_SendData(USART3,0x04);
		delay_ms(1);
		USART_SendData(USART3,0x03);
		delay_ms(1);
		USART_SendData(USART3,0x00);
		delay_ms(1);
		USART_SendData(USART3,cmd);
		delay_ms(1);
		USART_SendData(USART3,0xEF);
		delay_ms(1);

}



五:总结

1、语音模块一般都要搭一个喇叭才能外放声音,我是接了一个0.5欧8w的喇叭,接在原理图spk那里。

2、更新语音插入无显示,尝试换一根usb线。

3、串口调发送数据以十六进制

4、出现语音断续,可能是电压的问题。



版权声明:本文为qq_43590728原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。