袁 炜,刘淮霞,张乃昌,朱 虹
(1.淮南师范学院机械与电气工程学院,安徽 淮南 232038;2.安徽理工大学电气工程学院,安徽 淮南 232038;3.杭州鸿泉物联网技术股份有限公司,浙江 杭州 310052)
随着科技的快速发展和人们生活水平的不断提高,人们对智能家居的需求量日益增多,对其功能性和操作性要求越来越高[1]。一方面台灯作为学生学习和成人工作必不可缺的工具,长时间的使用或不正确的使用方式都会导致用户视力的下降、驼背等后果;另一方面由于目前市面上的LED台灯构造简单,功能单一,已无法满足人们的需求,例如台灯的开关亮暗等状态多以手动调节为主,不具备与用户进行互动功能。为使台灯的使用更加便利化和健康化[2],可以在其功能及操作方法等方面加以改进,使其更加智能化、人性化。
系统硬件主要包括STM32单片机、YS-LDV7语音识别模块、人体红外测距模块、温湿度检测模块、DS1320时钟模块、QJ008语音模块、OLED显示屏、LED灯等。以STM32单片机为主控芯片,通过串口发送控制指令并传送检测数据,借助语音识别技术、红外测距技术,结合温湿度检测、用眼计时及语音播报等功能,实现了台灯的多功能设计。主要功能包括:①通过对语音信号的转换、传输及解析等,实现对台灯的语音识别与控制功能;②根据人体红外测距原理,检测人体坐姿情况,实现对不良坐姿的实时检测与纠正功能;③在传统台灯功能的基础上,增添温湿度显示,用眼过久语音提醒等功能。该台灯系统设计是智能家居领域的进一步探究与改进,具备一定的产品化与市场化潜力[3]。系统硬件整体架构如图1所示。
图1 系统硬件架构图
采用STM32F4作为主控芯片。该芯片是一种高性能ARM Cortex-M4处理器的32位RISC内核,工作频率高达168 MHz,能够快速准确处理指令,外设资源和库函数资源非常丰富,易于完成与其它外围设备的通信,其成本低、功耗低、实时性好、集成度高[4]。通过串行口和定时器实现语音指令数据的获取与解析,STM32F4驱动语音检测芯片获取数据,对监测数据信号按预先设定进行处理。STM32F4系列共有14个定时器,具有脉冲长度的输入捕获、PWM输出和单脉冲输出等功能。STM32F4的TIM3为16位定时器,具有四个独立通道,可通过改变通用定时器TIM3输出 I/O口的电平来获得不同的捕获值,实现不同频率的PWM输出,从而达到改变灯光亮度及开关灯等功能。
语音模块结构原理如图2所示。语音识别选用YS-LDV7模块[5],主要由51单片机和LD3320语音芯片构成,给STM32主控制器提供状态信息。该模块利用LD3320非特定语音识别芯片,进行语音采集、识别与控制,可根据需要预先设置开灯、关灯、调至合适亮度、增强、减弱等语音指令。该模块支持3.3V/5V双电压模式,可提供多条词条编辑与存储,支持多种语言辨识,识别率高达96%左右。具体原理:将语音信号转换为电信号传送至语音识别模块LD3320,通过对比采集到的语音词条与预先存储的语音词条,LD3320芯片将识别结果发给STC11L单片机,STC11L单片机监测到并识别成功后便给STM32控制器发送对应的动作信息,STM32根据语音控制指令驱动模块做出相应的动作,最终控制台灯的开关、亮度等状态。然而为了解决STC11L因发送引脚电平信息而导致驱动能力不足的问题,需设置上拉电阻以提高驱动能力。
图2 语音模块结构原理图
红外测距选用日本夏普公司生产的GP2Y0A21YK0F和GP2Y0A02YK0F红外测距模块(图3)。这些模块由位置灵敏探测器、红外发光二极管和信号处理电路集成组成,采用了三角测量原理,距离检测不易受物体的反射率、环境温度和工作持续时间等因素变化的影响,信号输出类型为电压模拟量,且与测量距离的输出关系呈类反比的非线性关系[6]。此外波束角小,可减小因角度原因造成的误差;遇物体时红外传感器发射出的红外光束会反射到接收端。设计中考虑到台灯用户坐姿的水平距离较近和测量角度较小,选用GP2Y0A21YK0F测距模块,可测距范围为10~80 cm;根据斜方向的距离较远和测量角度较大,选用两个GP2Y0A02YK0F测距模块,可测距范围为20~150cm。该类红外测距模块的测量角度原理如图4所示:α为红外夹角,a和c分别为红外测距传感器从两个不同角度测量的用户距离,由余弦定理和公式(1)可求出三角形的第三边b;再由余弦定理及计算公式(2),即可求出用户与桌面所成的角度β,从而反映坐姿是否良好。当坐姿良好时,β角度的大小接近90°;β角度偏离90°越大表明坐姿越不良,语音提示需要及时纠正。由于采用基于一定算法的红外测距技术,所以灵敏度、精准度等方面都优于人体红外感应模块及超声波测距模块[7]。
图4 坐姿监测原理
图3 红外测距模块
b2=a2+c2-2accosα
(1)
(2)
DHT11是一款价格便宜、体积超小、功耗极低的温湿度传感器,具有已校准数字信号输出功能,读数精确,性能稳定[8]。可测湿度范围为20%~90%RH,温度范围为0~50℃,湿度精度±5%RH, 温度精度±2℃。DHT11使用单一总线通信,DATA管脚直接与单片机进行数据交互。总线处于通信状态和空闲状态之间,单片机和DHT11通信时,总线处于通信状态;当单片机与DHT11没有交互时,总线处于空闲状态。通常外接4.7K~5.1K的上拉电阻来提高远距离传输的稳定性,信号传输距离可达20m以上。DHT11通过DATA管脚传输数据大小为40bit,传输的数据格式依次是湿度数值、 温度数值,最后8bit的数据就是校验值。图5为DHT11的实物图。
图5 DHT11实物图
时钟计时模块采用美国DALLAS公司生产的DS1320时钟芯片,用于记录台灯使用的时长,台灯打开后立即开始计时,设定台灯使用超过1小时计时结束,单片机输出信号给语音提示芯片,由语音提示芯片完成播报,提醒用户注意眼睛休息。DS1320是一种高性能、低功耗、带RAM的实时时钟电路,具有涓细电流充电能力,采用串行数据传输,以SCLK、I/O、RST三线接口与CPU进行同步通信。图6为DS1320芯片引脚图。
图6 DS1320芯片引脚图
QJ008是一款通过串口来直接控制的语音芯片[9],当用户用眼过久时,能发出语音提醒其注意休息。支持U盘内音频播放,集合了MP3格式和MAV格式音频的解码电路,可将USB连接到电脑上显示U盘模式,进行格式化下载语音到FLASH芯片,再通过串口命令播放指定的音频文件,调节声音、切换音频等。选择以SPI接口的W25Q64作为Flash存储芯片,其内存大,擦写次数多,内部数据保存时间长。采用无须外接耦合电容的LM4890作为功放电路主芯片,由喇叭进行语音播放,声音的大小通过调节LM4890的电阻值来控制。QJ008语音播报系统框图如图7所示。
图7 QJ008语音播报系统框图
为了让用户直观看到当前的环境温湿度,选用类似于点阵屏的OLED显示屏。OLED显示屏具有构造简单、自发光不需背光源、能耗低、对比度高、厚度薄、抗振荡、视角广、反应速度快、使用温度范围广等优点,显示稳定且效果好[10]。OLED屏用于显示DHT11模块检测出的温湿度,实时获取用户用灯环境的温湿度,其共有4个接口,分别为VCC、GND、SCL、SDA接口。
硬件系统搭建好后,进行软件流程的编写和运行[11]。软件设计需要实现的功能主要包括语音识别与控制、坐姿监测与报警、用眼计时与语音提示等。图8描述了多功能台灯主要的程序设计流程:首先对STM32单片机等各模块进行初始化,其次LD3320芯片通过驻极体拾音器采集语音信息,将获得的语音信息与预先存储在Flash中的词条进行匹对,当匹对成功后,该语音指令将通过串口通信存储到STM32单片机中,数据传输中断请求结束后,STM32单片机控制灯泡作出相应的状态变化,若匹对失败则需要再次获取语音指令。与此同时,时钟模块开始用眼时长计时,红外测距模块测量坐姿情况,温湿度检测显示结果。
图8 系统软件设计整体流程图
图9为设计的多功能台灯实物及温湿度显示界面,图10为发出“变暗”“最亮”语音指令测试的效果。
图9 多功能台灯实物图及温湿度显示界面
(a)“变暗”时效果 (b)“最亮”时效果
由于预先设置了中文和英文两种语言指令,测试人员可以根据需要进行选择[12]。当测试人发出“小艾你好”或“Hello Xiao ai”语音指令时,灯的状态不变,仅仅唤醒语音识别模块;发出“开灯”或“Turn on the light”语音指令时,灯自动打开;发出“变亮”或“Brighten”语音指令时,灯亮度增加;发出“最亮”或“Brightest”语音指令时,灯达到最大亮度;发出“变暗”或“Darken”语音指令时,灯亮度减弱;发出“最暗”或“Darkest”语音指令时,灯达到最小亮度;发出“关灯”或“Turn off the light”语音指令时,灯熄灭。测试结果表明, LED 灯状态的语音控制系统功能得以实现。具体语音控制测试结果如表1所示。
表1 LED灯语音控制状态测试
将GP2Y0A21YK0F和GP2Y0A02YK0F红外测距模块与测试者身体如图4位置放置。当测试者身体未进入红外测距模块感应区域时,即β角接近90°时,语音未提示,表明坐姿良好,不需要调整坐姿;当测试者身体进入红外测距模块感应区域时,即β角偏离90°较大时,有语音提示,表明坐姿错误,需要及时调整,调整正确后语音提示自动关闭。测试结果如表2所示,表明系统的坐姿检测与语音提示功能正常,测试成功。
表2 坐姿检测与语音提示功能测试
系统以STM32单片机为主控芯片设计了一款多功能台灯,基于语音控制和红外测距技术,结合温湿度检测与用时语音提醒功能等,实现了台灯开、关、亮、暗等状态的语音控制功能,在方便用户操作的同时节约了电能;具有用户坐姿检测与纠正功能,在一定程度上防止了驼背;环境温湿度显示功能,一定程度提供了根据天气温湿度信息而选择穿着的便利;长时间用灯提醒功能,避免了用户过度用眼造成视觉疲劳,保护了视力。这些功能及优势使得台灯的智能化、人性化程度都得以提升,基本满足了人们对台灯智能控制的需求,具有不错的实际应用价值。
此外,功能方面仍有可以改进的地方。例如,增加人体识别模块(如HC-SR501),实现有人时台灯自动点亮,离开时自动熄灭的功能;还可增加光敏传感器,根据环境的光照强度变化自动调整台灯状态的功能;以上功能均可与语音控制相互配合,实现主、客观相结合的台灯状态调整模式,提高台灯控制的灵活性,节能环保的同时改善用户的体验感。