APP下载

基于STM32的语音控制与坐姿检测智能台灯原型系统

2019-06-03

实验室研究与探索 2019年3期
关键词:微控制器台灯坐姿

袁 博

(南阳理工学院计算机与信息工程学院,河南南阳473004)

0 引言

随着生活水平的提高和科学技术的发展,人们对于家用电器的功能与性能要求越来越高。同时,随着学生课业压力与成人工作压力的不断增大,长时间的不良阅读姿势导致的近视与驼背等问题日趋严重。为了使日常阅读体验更加便利化与人性化,同时及时发现与提醒不健康的阅读姿势,采用同时具备语音控制与坐姿检测功能的家居照明设备是十分必要的。传统的家居照明设备通常不具备语音控制与坐姿检测功能;固定在墙壁与屋顶的声控灯具会限制人们的阅读活动范围[1-3];目前市面上的智能台灯,能够同时实现语音控制与坐姿检测功能的不多,且价格较为昂贵[4-6]。因此,设计一种能够同时具备语音控制与坐姿检测功能,且价格适中的便携式智能台灯是必要和有价值的。

本文提出了一种基于STM32微控制器的智能台灯原型系统,系统以STM32为主控制器,通过串口发送控制指令并传送检测数据,结合WTK6900B-B01语音识别模块、HC-SR501人体红外感应模块和SRD-05VDC-SL-C继电器模块,实现了台灯的语音控制与坐姿检测/提醒功能。该原型系统是物联网技术在智能家居领域的一种有益探索与典型应用,经进一步技术改进与细化,具备产品化与市场化的潜力。

1 系统硬件设计

1.1 系统硬件总体设计

系统硬件主要需要实现以下三方面功能:①通过对语音指令的存储和解析,实现对台灯的语音控制功能;②通过红外反射原理检测人体坐姿,实现对不良坐姿的提醒功能;③通过主控制器实现对系统各模块的统一控制。

整个系统由微控制器、存储器、系统电源、语音识别、坐姿检测、继电器与LED灯等功能模块组成。语音识别模块连接麦克风,用于获取使用者的语音命令。系统上电后,微控制器通过USART串行口控制语音识别模块获取并解析语音指令,根据指令解析结果,通过继电器输出脉冲宽度调制(Pulse Width Modulation,PWM)信号,增强负载能力,控制LED灯作出相应动作,包括灯的亮灭、亮度调整与颜色变化等。同时,微控制器通过坐姿检测模块的反馈信息判断使用者的坐姿是否正常,当使用者阅读姿势不健康时,利用报警灯闪烁结合语音报警的方式提醒使用者纠正坐姿,预防近视与驼背。系统硬件设计框图如图1所示。

1.2 主控模块

选用STM32L053R8微控制器作为主控芯片,NUCLEO-L053R8开发板作为主控制电路板,通过串行口和定时器实现语音指令数据的获取与解析,以此实现开/关台灯、亮度调节和颜色改变等功能。NUCLEO-L053R8是ST公司推出的一款针对STM32L0系列设计的cortex-M0开发板,具有完备的基于浏览器的软件开发环境,编译程序只要烧录到开发板上即可使用[7-11]。

STM32L053R8中的通用定时器TIM2是一个16位自动重装计数器,具有4个独立通道,可用于实现输入捕获、输出比较、PWM输出等功能,且具有独立DMA功能。通过改变TIM2输出I/O口的电平来改变定时器的捕获值,实现不同频率的PWM输出,就能够实现改变灯光亮度及颜色的功能。

1.3 语音识别模块

语音识别模块选用WTK6900B-B01,如图2所示。该模块是由深圳唯创知音电子有限公司推出的一款语音辨识模块,采用ssop24封装,方便拆装,操控方便。能够辨认预先存储的语音词条并经过串口输出辨别结果。该模块还具有以下特点:支持多种采样率;通过语音指令操控输出,具有串口输出、IO输出、扬声器播放3种输出模式;通过外挂SPI Flash增大内存容量,能够存放多组词条;支持多种语言的辨识,识别准确率高[12-13]。

WTK6900B-B01在收到语音指令时,会与存储在芯片中的词条进行对比,若语音指令波形与词条波形一致,或波形相似度高于所设阈值,则认为识别正确。此时串口TX端会输出相应指令,同时3个 IO口(OUTA、OUTB、OUTC)会输出相对应的电平,再通过串口RX端输出到STM32L053R8微控制器,进而控制灯光的开关,改变亮度及颜色[14]。

WTK6900B-B01模块串口指令格式采用起始码+参数+反码格式。例如“打开灯”的语音指令TX输出AA07F8,起始码为AA参数07反码F8,参数+反码=FF,TX输出指令起始码为AA,RX输入指令起始码为BB。

1.4 人体红外感应模块

选用深圳市捷顺科技有限公司的HC-SR501人体红外感应模块,如图3所示。该模块采用德国原装进口的LH 1778探头,敏锐性高、操纵性强。选择高低电平变换输出,当检测到人体存在时,输出高电平,人体离开该模块感应范围时输出低电平,从而实现人体坐姿检测功能。此外,模块输出为高电平信号,与灯泡、蜂鸣器等具有提醒功能的器件对接方便。

图3 HC-SR501人体红外感应模块

HC-SR501人体红外感应模块采用A、B双元探头,探头窗口为长方形,探头位居长方形较长方位的两头。其检测原理为:当人体从左到右或从右到左经过双元探头,红外光谱达到双元的时刻、间距有差值,差值越大其检测越敏锐。但人体从上到下或从下到上经过该模块时,差值较小,甚至检测不到差值导致检测不灵敏。这就要求该检测模块放置应该与人体活动方向平行,且为了增大感应角度范围,该模块采用圆形透镜,四面都能感应,但左右两侧比上下感应范围大、灵敏度强[15-17]。该模块感应范围如图4所示。

图4 HC-SR501感应范围

1.5 继电器模块

选用带光耦隔离的5 V继电器模块。此模块可以在噪声较大的环境中使用,并且该模块采用两个外部电源系统供电,确保了继电器开关不会对信号回路发生影响。另外该模块具有高低电平两种驱动模式,可自由切换,操作简单。贴片光耦隔离使得该继电器模块驱动能力强、性能稳定。

1.6 系统硬件电路设计

对于WTK6900 B-B01语音识别模块,分别用13号引脚TX与14号引脚RX与STM32L053R8微控制器的PA9和PA10引脚连接,20号引脚接电源正极,电压为3.3 V,WTK6900 B-B01与STM32L053R8的连接方式如表1所示。

表1 WTK6900B-B01与STM32L053R8连接方式

对于HC-SR501人体红外感应模块,用1号引脚连接电源正极,电压为 3.3 V;2号引脚连接STM32L053R8微控制器的 PB3引脚,HC-SR501与STM32L053R8的连接方式如表2所示。

表2 HC-SR501与STM32L053R8连接方式

继电器模块采用双电源供电,外部VCC接3.3 V电源,VCC2接5 V电源且与STM32L053R8微控制器的PB9引脚连接,继电器模块中的三极管分别与PC9、PB8相连接,继电器模块与STM32L053R8的连接方式如表3所示。

表3 继电器模块与STM32L053R8连接方式

系统硬件电路如图5所示。

图5 系统硬件电路

2 系统软件设计

系统主控制程序流程如图6所示。首先,对STM32L053R8的串口、定时器进行初始化,同时对语音模块进行初始化。语音识别模块通过麦克风收取语音指令,若指令与存储在SPI Flash的词条波形相识度高于设定的门槛,该语音指令通过串口通信存储到STM32中,在数据传输中断请求结束后,单片机控制灯泡作出相应变化,否则需要再次获取语音指令。

图6 主控制程序流程

主控制程序主要由定时器中断程序和串口通信程序两部分组成。

定时器中断程序保证在接收语音指令信息时不再接受其他指令请求。当STM32L053R8主控模块接收到语音指令请求时,选择工作寄存器,接受语音识别模块的中断请求,若请求中断成功则清除中断标志,从缓存区读取语音指令信息,并将信息存储在寄存器中,结束本次指令请求,若接受中断请求失败则结束本次指令请求,等待下一次中断请求。

串口通信模块完成在语音识别模块和主控模块之间语音指令的收发。首先STM32L053R8关闭中断,获取寄存器中的语音指令数据;然后通过串口传输数据,并判断语音指令数据传输是否完成。若数据传输失败,则重新传输语音指令数据,若成功则开中断,结束本次传输。

3 测试与分析

实现的智能台灯原型系统及其调试场景如图7所示。

3.1 语音控制LED灯功能测试

当测试人发出语音指令“小白”时,唤醒语音识别模块;发出语音指令“开灯”时,LED灯自动打开;发出语音指令“亮点”时,LED灯变亮;发出语音指令“暗点”时,LED灯变暗;发出语音指令“变色”时,灯泡循环改变颜色;发出语音指令“最亮”时,灯泡达到最大亮度;发出语音指令“最暗”时,灯泡达到最小亮度;发出语音指令“关灯”时,灯泡熄灭。具体测试结果如表4所示。语音质量识别成功后,串口输出内容与播报内容如表5所示。

图7 智能台灯系统原型及调试场景

表4 语音控制LED功能测试

表5 语音识别成功后串口输出与播报内容

测试结果表明,语音控制LED灯的系统功能正常,测试成功。

3.2 坐姿检测与提醒功能测试

将人体红外感应模块与人体活动方向平行放置。当人体进入模块感应范围时,蓝色提醒LED灯亮起,蜂鸣器鸣叫;当人体离开模块感应范围后,蓝色提醒LED灯熄灭。测试结果如表6所示,表明系统的坐姿检测与提醒功能正常,测试成功。

表6 坐姿检测与提醒功能测试

4 结语

本文以STM32系列微控制器为主控单元,基于语音识别技术与人体红外检测技术,设计实现了一种同时具有语音控制与坐姿检测/提醒功能的智能台灯原型系统。该设计在为使用者提供便利化操控体验的同时,能够在一定程度上预防近视与驼背;同时,允许使用者根据实际照明需求用语音改变灯泡亮度,有助于提高电能有效利用率,具有节能效果,对以智能台灯为代表的智能家居技术的发展进行了有益探索。

在系统功能方面,仍有许多地方值得进一步探索与完善。首先,可以考虑通过加入光照度传感器,增加一个根据当前环境光照强度变化自动调整台灯亮度的新功能,作为语音控制的并行模式供用户自由选择,实现主观(语音)与客观(光照度)相结合的台灯亮度调整模式,进一步改善用户照明体验,节约能源。其次,原型系统中采用的人体红外传感器,由于其特定工作原理,对放置位置有一定需求,有可能造成用户使用不便,且难以保证对不同体型用户的坐姿检测都合理、精准;若在系统中加入测距传感器,同时提供较完善的坐姿矫正算法,则系统的实用性将进一步提高。

猜你喜欢

微控制器台灯坐姿
基于表面肌电和动态体压的办公坐姿疲劳测试
坐姿好习惯
DIY书房小台灯
TASKING针对英飞凌第三代AURIX微控制器推出多核开发环境
学生作业坐姿及台灯控制器
基于坐姿感应的智能视力保护台灯设计
物联网技术在微控制器实验教学中的应用
用于高品质电动汽车的分布式并行计算
太阳与台灯
两盏台灯辉映下的难忘岁月