507|7

1010

帖子

3

资源

纯净的硅(中级)

【NUCLEO-L552ZE测评】+HLK-V20语音识别模块的实验 [复制链接]

    通过语音控制家电是我本次评测项目的一个重点,这次实验使用的是从某宝购买的语音识别模块,这个模块具有较高的性价比,缺点就是无法改变识别的内容,只能使用其定制好的语音命令。下面是实验过程中的照片:

yysb_01.jpg

 

    下图是语音识别模块,模块通过串口与单片机进行通讯:

yysb_02.jpg

    为了方便测试,我使用了一块192*64的LCD显示屏来展现相关的信息:

yysb_03.jpg

 

    输出控制部分暂时使用了一块四路继电器模块,在各个继电器上标注了被控制的家电设备,并没有真正连接器对应的家电设备,在测试过程中可以通过观察对应的LED灯亮灭确定执行何种操作,同时也会在LCD屏幕上显示相应的内容:

yysb_04.jpg

 

    实验过程并不复杂,因为语音识别在模块内完成,并通过串口将信息发送到单片机,单片机仅仅是将接收到的信息提取几个关键点进行判别,然后显示相应的内容并改变对应的GPIO电平的高低,从而驱动继电器动作,代码如下:

void yy_handler(void)
{
	uint8_t f0,f1,f2,f3,f4;
	f1 = rx_buffer[16];     //取关键字
	f2 = rx_buffer[22];
	f3 = rx_buffer[23];
	f4 = rx_buffer[24];
    LCD_clear_line(2);
	LCD_clear_line(3);
/*
	LCD_write_HEX(40,4,f1);
	LCD_write_HEX(70,4,f2);
	LCD_write_HEX(100,4,f3);
	LCD_write_HEX(130,4,f4);
*/
    switch (f1){
	    case 0x63:
			switch (f3){
			    case 0x63:
					LCD_write_BG(20,2,(uint8_t *)"关闭风扇");
				    OutFs_0;
					break;
				case 0x64:
					LCD_write_BG(20,2,(uint8_t *)"关闭灯光");
					OutDg_0;
				    break;
				case 0x6e:
					LCD_write_BG(20,2,(uint8_t *)"关闭空调");
					OutKt_0;
				    break;
                default:
       	            LCD_write_BG(20,2,(uint8_t *)"暂未处理");
			}
			break;
		case 0x64:
			switch (f2){
			    case 0x61:
					switch (f3){
					    case 0x69:
							LCD_write_BG(20,2,(uint8_t *)"打开开关");
							OutKg_1;
						    break;
						case 0x6f:
							LCD_write_BG(20,2,(uint8_t *)"打开照明");
							break;
						default:
							LCD_write_BG(20,2,(uint8_t *)"暂未处理");
					}
					break;
				case 0x66:
					LCD_write_BG(20,2,(uint8_t *)"打开吹风机");
					break;
				case 0x69:
					LCD_write_BG(20,2,(uint8_t *)"打开饮水机");
				    break;
				case 0x6e:
					LCD_write_BG(20,2,(uint8_t *)"打开电饭煲");
					break;
				case 0x75:
					switch (f3){
					    case 0x61:
							LCD_write_BG(20,2,(uint8_t *)"打开暖气");
							break;
						case 0x62:
							LCD_write_BG(20,2,(uint8_t *)"打开浴霸");
							break;
						default:
							LCD_write_BG(20,2,(uint8_t *)"暂未处理");
					}
					break;
				default:
       	            LCD_write_BG(20,2,(uint8_t *)"暂未处理");
			}
		    break;
		case 0x65:
			LCD_write_BG(20,2,(uint8_t *)"进入休眠");
		    break;			
		case 0x67:
			switch (f2){
			    case 0x61:
                    LCD_write_BG(20,2,(uint8_t *)"关闭电饭煲");
					break;
				case 0x63:
					LCD_write_BG(20,2,(uint8_t *)"关闭吹风机");
					break;
				case 0x6b:
					LCD_write_BG(20,2,(uint8_t *)"关闭开关");
				    OutKg_0;
				    break;
				case 0x6e:
					LCD_write_BG(20,2,(uint8_t *)"关闭暖气");
					break;
				case 0x79:
					switch (f3){
					    case 0x69:
							LCD_write_BG(20,2,(uint8_t *)"关闭饮水机");
						    break;
						case 0x75:
							LCD_write_BG(20,2,(uint8_t *)"关闭浴霸");
							break;
						default:
       	                LCD_write_BG(20,2,(uint8_t *)"暂未处理");
					}
					break;
				case 0x7a:
					LCD_write_BG(20,2,(uint8_t *)"关闭照明");
					break;
				default:
       	            LCD_write_BG(20,2,(uint8_t *)"暂未处理");
			}
			break;
		case 0x6f:
			switch (f2){
			    case 0x64:
					LCD_write_BG(20,2,(uint8_t *)"打开灯光");
				    OutDg_1;
				    break;
				case 0x65:
					LCD_write_BG(20,2,(uint8_t *)"打开风扇");
				    OutFs_1;
				    break;
				case 0x6e:
					LCD_write_BG(20,2,(uint8_t *)"打开空调");
				    OutKt_1;
				    break;
				default:
       	            LCD_write_BG(20,2,(uint8_t *)"暂未处理");
			}
			break;
		case 0x74:
			switch (f2){
			    case 0x5f:
					LCD_write_BG(20,2,(uint8_t *)"打开台灯");
					break;
				case 0x66:
					LCD_write_BG(20,2,(uint8_t *)"关闭台灯");
					break;
				default:
       	            LCD_write_BG(20,2,(uint8_t *)"暂未处理");
			}
			break;
		case 0x77:
		    LCD_write_BG(20,2,(uint8_t *)"准备就绪");
		    break;
		default:
       	    LCD_write_BG(20,2,(uint8_t *)"暂未处理");
	}
}

 

    下面的动画是实验时继电器的动作情况:

YY_01.gif

 

    这是实验时LCD屏幕显示的内容:

YY_02.gif

 

    

此帖出自stm32/stm8论坛

回复

1010

帖子

3

资源

纯净的硅(中级)

这是压缩后的视频文件:

ST_L552_YY0.mp4 (6.5 MB, 下载次数: 0)


回复

1010

帖子

3

资源

纯净的硅(中级)

这个视频文件是屏幕显示内容:

ST_552_YY1.mp4 (7.64 MB, 下载次数: 0)


回复

5872

帖子

453

资源

五彩晶圆(高级)

加油

下次直接用NUCLEO-L552ZE实现语音识别

点评

谢谢大佬鼓励,是有这个打算,已经买了一块语音识别模块。  详情 回复 发表于 2020-12-30 09:04

回复

3244

帖子

1

资源

五彩晶圆(初级)

楼主玩具真多。

个人签名人已离开,无事别找,找也找不到。

回复

1010

帖子

3

资源

纯净的硅(中级)

蓝雨夜 发表于 2020-12-29 20:41 加油 下次直接用NUCLEO-L552ZE实现语音识别

谢谢大佬鼓励,是有这个打算,已经买了一块语音识别模块。

点评

不知道移植MSP432的语言识别库难不难!  详情 回复 发表于 2020-12-30 09:07

回复

5872

帖子

453

资源

五彩晶圆(高级)

hujj 发表于 2020-12-30 09:04 谢谢大佬鼓励,是有这个打算,已经买了一块语音识别模块。

不知道移植MSP432的语言识别库难不难!


回复

1010

帖子

3

资源

纯净的硅(中级)

我买的是LD3320模块,不含单片机芯片。没有接触过MSP432的资料。


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

最新文章 更多>>
    关闭
    站长推荐上一条 1/7 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表