智能台灯控制系统设计
2023-10-26胡蓉
胡 蓉
(江西工业职业技术学院,江西 南昌 330095)
0 引言
随着语音识别技术在人工智能领域的不断普及,基于语音识别技术的智能台灯是符合时代发展和人们追求的一款产品。有专家预测,到 2050 年全球将有 47.6 亿人患有近视,其中包括 9.4 亿人会患有高度近视[1]。导致近视的原因众多,跟遗传、环境及人的用眼习惯都有关。人眼长时间处于同一状态(即调节相对静止)时会导致眼疲劳,睫状肌痉挛,从而会导致近视的产生。打破眼睛的调节相对静止状态,可有效防控近视或减缓近视进展。具有护眼、节能等功能的台灯更是各大灯具厂商产品设计方向。
目前,市面上的台灯功能各不相同,主要实现的功能有:手动亮度调节、自动亮度调节、离线语音控制以及护眼功能等。但是将具备智能控制,人体存在检测,以及不良坐姿视距过近提醒等功能集成在一起,同时还兼具简化桌面及语音互动功能的台灯目前并未可见。
1 系统硬件设计
1.1 系统硬件总体设计
本文基于离线语音识别的智能台灯的硬件设计,选用了由低功耗单片机STM32F103C8T6 单片机、HLK_LD2410C人体存在感应24 GHz雷达模组检测器、OLED 显示模块、光照检测传感器、HC_SR04超声波测距、L298N驱动器、调节按键和 LED 灯板组成的设计方案。
使用主控芯片STM32F103C8T6内部定时器的比较模式生成 PWM 控制信号,该输出信号经过L298N驱动芯片进行功率驱动后,控制 LED 台灯,通过控制time定时器的初始值达到调节PWM输出占空比,经过驱动器驱动后控制LED的亮度和控制桌面风扇的运行。模式按键选择台灯工作模式,有手动和自动两种模式。在手动模式下,人体检测模块检测是否有人使用台灯,从而控制台灯的开关;通过串口通信接收SU_03T语音指令,根据指令的不同序号实现相应的PWM脉冲输出,调节LED台灯的亮度;模式按键可切换到手动模式和语音模式进行亮度调节;在自动模式下,根据光敏模块的模拟信号检测值经过主控芯片进行ADC转换后进行数据处理,然后控制PWM脉冲输出,达到亮度的自动调整。同时,通过超声波测距模块进行监测使用者与台灯的距离,主控芯片对距离数据进行比对处理,当超过设定值,语音芯片发出提示语,用户需及时调整坐姿。主控芯片通过软件模拟SPI协议驱动0.96寸OLED屏幕,在128×64个像素点的屏幕上显示灯的亮度级数及其他信息。
1.2 主控制系统模块
作品采用的是嵌入式单片机芯片STM32F103C8T6。这是一款ARM M3内核的增强型微控制器,主控芯片引脚功能分配如表1所示。
表1 主控芯片引脚功能
1.3 离线语音控制模块
作品采用机芯智能SU_03T离线语音识别模组解决在线语音识别必须联网、对接云端,高成本等问题,轻松实现极简的用户体验。主控芯片内核采用了 32位RSIC 架构,并加入了DSP指令集,专门进行信号处理和语音识别。该芯片支持 150 条本地指令离线识别,支持 RTOS 轻量级系统,具有丰富的外围接口[2]。
1.4 人体存在毫米波雷达模块
传统的人体感应节能功能,一般采用人体红外探测,红外探测对移动的物体感应比较灵敏,但无法识别静止、微动或者坐卧的人体。作品采用了一款高灵敏度的24 GHz毫米波人体存在状态感应模组LD2410C。实现高灵敏度的人体存在状态感应,可识别运动和静止状态下的人体。在本作品中,可感知区域内是否有运动或者微动的人体,实时输出检测结果到STM32C8T6主控芯片,实现感知人体存在时间计算,并通过语音提示间隔休息;房间无人时台灯自动熄灭达到节能等功能。
1.5 HC_SR04超声波
坐姿调整模块主要采用 HC_SR04超声波测距传感器。超声测距是利用超声测距仪向正前方发射超声波,超声波在空气中传播时,当遇到物体会按原发射方向返回且被超声测距仪探测到,MCU 可以非常精确地测量超声波从发射到接收所用的时间t,又已知超声波在空气中播的速的度v为 340 m/s。因此,超声测距仪和物体间的距离L可以通过公式很简单地计算出[3]。
L=1/2vt
(1)
检测的最小距离在程序中事先设定好,本设计的最小距离范围是人体到台灯的最小距离30 cm。
1.6 光照检测模块
系统通过模式按键控制切换自动模式和手动模式。光照度检测模块根据环境光照强度进行数据输出。在自动模式下,接收到传感器的模拟信号,光敏电阻采集数据,经过LM393芯片放大后进行输出。输出信号电压有两种形式,分别是模拟信号和数字信号,此处作品使用模拟信号,输出口 A0端与主控芯片相连接,主控启用ADC转换,采用软件进行数据处理后,形成10级自动调光输出。
2 系统软件设计
2.1 主控软件组成及其功能介绍
整个程序的设计主要分为主控STM32F103C8T6单片机IO的初始化程序设计、PWM波输出程序设计、SU_03T语音识别程序设计以及外部中断程序、串口通信、OLED显示程序设计等,主控芯片STM32F103C8T6 的程序流程如图2所示。
图2 系统主控程序流程
2.2 语音识别模块固件生成
SU-03T 语音芯片依托智能公元平台上开发,该开发平台从整体而言较为复杂,但其生成代码比较方便,只需相关功能的网页配置好以后,便可生成软件开发工具包(SDK),然后通过相关的烧录工具就可以将生成的代码写入SU-03T 语音芯片中。
3 测试与分析
3.1 语音识别灵敏度测试
本文同时采用按键和语音两种控制方式,按键按下之后,台灯能够准确地做出判断并做出相应的动作,但是语音识别控制则存在一定的错误率,产生这种误差的原因如下:
(1) 环境存在一定的干扰性,干扰的声音越大,能够准确识别的概率会越低。
(2) 识别关键词本身的相似度或者个人的发音的准确度都会对识别率造成影响,相似度越高或者发音不准确,对其干扰就会越大,识别率也会随之降低。
(3) 语速过快或者过慢也会导致SU_03T识别出错,语速要适中,吐字清晰。
(4) 电源SU_03T对电源敏感,需要稳定的电压,在识别过程不能用手触摸电路板,否则会引起电流异常,影响识别结果。
3.2 PWM调光输出测试
IEEE组织对于屏幕闪烁的标准非常严格,目前最无害的闪烁频率被定义在3 000 Hz以上,任何在这个频率以下的闪烁都有可能对人类造成视力危害[4]。未来他们还会进一步研究调变波型与调变比例对视力的影响。作品设计的PWM脉冲输出频率高达48 KHz,有效地消除了屏闪带来的危害。利用TIM1->CCR4 = mode;通过确定定时器T1M1->CCR4寄存器的初始值达到改变PWM宽度的目的。
3.3 坐姿检测与提醒功能测试
坐姿检测是通过超声波反馈信号计算距离得出。在台灯放置在设定的距离后,当使用者与台灯的距离小于 30 cm 时,串口中断发送消息号,SU_03T语音模块接收到串口数据后,根据数据消息号,发出语音提醒:“小可爱,注意坐姿,保护视力,从点滴做起”。当使用者坐姿正确,使用者与台灯距离大于设定值30 cm,停止串口发送消息号。在设定的范围内,语音芯片未能接收到串口指令不发出声音,当超过设定距离30 cm的时候就发出提示语。坐姿模块起到了提醒注意视距的功能。
3.4 人体存在毫米波雷达感应功能测试
作品的人体检测设计了防误判功能。当人体靠近台灯但没有停留10 s 以上(例如只是路过的情况),台灯将仍然处于熄灭的状态;当人体靠近台灯并且停留 10 s 以上,台灯将会被点亮;当人体远离台灯并且在 10 s 以上时,台灯熄灭(延时熄灭)。当检测到人体存在,主控芯片内部定时器Time2开启进行计时,时间达到40 min的时候,主控芯片通过串口发送消息号,语音模组发出提示音:小可爱,关爱健康,起身休息休息吧。提示使用者中间间隔休息,活动活动,放松眼部肌肉。当人离开后,定时器计数器清零不再计时。
4 结语
本文基于嵌入式芯片STM32F103C8T6 和人工智能离线语音识别芯片SU_03T设计了一款多功能LED台灯。通过测试语音识别的准确率,LED台灯的亮度调节的连续性、稳定性、抗干扰性,以及LED台灯的节能性等几个方面的指标,验证了作品的性能是稳定可靠,并且在功能上操作简便、护眼、节能、具有多功能的特性,可以满足用户的日常使用需求。