基于微软Kinect的体感控制智能窗帘系统

2020-04-22 16:27罗伟梁世豪姜鑫安妮杜锐
微型电脑应用 2020年3期
关键词:单片机

罗伟 梁世豪 姜鑫 安妮 杜锐

摘 要:设计了一种基于微软Kinect的体感控制智能窗帘系统。采用微软Kinect v1传感器及其开发者工具包(SDK)和Microsoft Visual Studio集成开发环境作为核心开发工具,并和基于80c51单片機的步进电机控制系统组成体感控制智能窗帘系统。能够通过Kinect体感传感器对人体肢体动作识别并做判断,并将判断结果通过串口通讯传送至单片机控制步进电机系统,从而使得通过肢体动作控制窗帘系统的开启和关闭。本系统具有动作判断准确、易于针对特殊群体进行拓展开发、使用方便等优点,在智能家居、残疾人士辅助工具方面有较大应用价值。

关键词:Kinect传感器; 智能窗帘; 体感识别; 单片机; 残疾人辅助

中图分类号: TN710

文献标志码: A

Abstract:A somatosensory control intelligent curtain system based on Microsoft Kinect was designed. Microsoft Kinect v1 sensor and its developer kit (SDK) was adopted and Microsoft Visual Studio integrated development environment was used as the core of development, and a somatosensory control intelligent curtain system was developed by using the stepping motor control system which was based on the 80c51 single-chip microcomputer. The Kinect sensor was used to identify and judge the human body motion, and the judgment result was transmitted to the single-chip microcomputer to control the stepping motor system through serial communication, thereby controlling the opening and closing of the curtain system through the limb motion. The system has the advantages of accurate action judgment, easy development and specialization for special groups, and has strong application value in smart home and assistive tools for the disabled.

Key words:Kinect sensor; Smart curtain; Somatosensory recognition; Microcontrollers; Disabled assistance

0 引言

智能家居由于其独特的智能和便捷被人们广泛关注和使用。窗帘作为智能家居不可分割的一部分,其使用模式和便捷程度一直备受关注。在智能家居中传统的智能窗帘使用方式基本分为自动定时控制、光强感应控制[1-3]、声控控制[3]、传统遥控及手机App远程控制[4]等几类。上述几类传统智能窗帘为生活提供便利的同时也具有各自的局限性,如自动定时和光强感应窗帘不能满足用户随时需要开窗的需求、声控控制窗帘虽然可以满足用户随时开窗但不能应用于失声人群并且使用过程中必须发出声音可能会打扰到工作或休息的人群、遥控或App控制窗帘操作繁琐且遥控或手机经常会遗忘放在某个角落不易随时使用,并且对老龄幼龄或其他不会操作遥控或App的人群的使用产生障碍。

针对上述传统窗帘所出现的问题,本文提出了一种基于微软Kinect的体感控制智能窗帘系统的设计,此设计仅需要通过上半身肢体动作即可对窗帘进行控制,可为用户提供容易操作、安静、可随时控制的便捷性并且可为下肢和语言表达等方式不便的人群使用。

1 系统总体设计方案

1.1 系统整体结构

系统整体结构如图1所示。

由Kinect传感器[5]、电源、主机、串口通讯[6]、51步进电机模块和简易窗帘模型构成,具体实物图如图2所示。

系统运行的流程为预先在体感肢体动作判定主程序内设置所用四个肢体动作阈值范围,然后用户通过在微软Kinect体感传感器前做出相应的动作,传感器将捕捉到的肢体信息传入肢体判定主程序并输出相应的结果指令,之后将相应的结果指令通过串口通讯发送至单片机驱动步进电机系统,接受到相应指令的单片机将驱动步进电机从而对窗帘系统的开闭进行控制。

其中Kinect体感判定程序由C#语言编写,开发环境为Microsoft Visual Studio2010。单片机控制步进电机程序由C语言编写,开发环境为keil uVision4,用STC-ISP作为单片机程序写入软件。

1.2 系统硬件结构

整个系统分为上位机和下位机:

1.上位机为连接Kinect传感器的笔记本电脑,是整个体感控制的核心。

所用硬件:微软Kinect v1传感器、笔记本电脑。

2.下位机为单片机控制步进电机系统,此部分为一个简单的单片机驱动步进电机程序。所用模块:STC89C52RC微控制器、步进电机模块、USB串口通讯模块、自制简易窗帘模型。

2 体感智能窗帘关键技术

2.1 Light coding技术

Kinect传感器的核心技术为光编码(Light coding)技术,使用连续光对投射空间进行编码,通过红外线接收器读取编码的光线并解码,即可产生具有深度信息的圖像。所使用的的为激光散斑光源,即当激光穿透毛玻璃照或射到粗糙物体会随即形成衍射斑点,此斑点具有高度随机性并且会根据斑点距离不同而形成不同的图案[7]。而Kinect通过红外投射机向测量空间中发射红外线并对所投射空间进行编码,通过红外摄像头对这些反射的随机编码斑点进行获取,将获取的数据经过系统解码处理建立物体在空间中的具有深度信息的三维模型[8]。

2.2 骨骼点追踪技术

通过对Kinect红外线投射器和红外线摄像头获取的数据流进行处理从而对空间中的人体建立三维人体模型,再通过对人体三维模型的分析从而确定模型中人体的20个骨骼跟踪点[9],人体骨骼跟踪点如图3所示。

此设计判定肢体动作主要用到了三个骨骼点分别是HAND RIGHT、HAND LEFT、HEAD,其中每个骨骼点都有位置坐标(x,y),坐标值单位为米。具体判断方法为如果HAND RIGHT的横坐标值小于HEAD横坐标值减去0.5或HAND LEFT的横坐标值大于HEAD横坐标值加上0.5时即判定右手或左手抬起[10]。

3 系统硬件设计

3.1 微软Kinect传感器

微软Kinect传感器设备如图4所示。

在基座和感应器之间为一个能够通过程序调整感应器俯仰角度的电动机,在上面的感应器中从左至右分别为红外线投射器、传感器工作状态指示灯、彩色摄像头、红外线摄像头,另外传感器底部有一排麦克风阵列用作获取音频数据和背面有一个散热风扇。其中彩色摄像头红和外线摄像头分别支持1280*960和640*480分辨率成像[11]。

3.2 51单片机驱动电机系统

下位机单片机驱动电机系统的原理图,如图5所示。

此系统主要由四个部分组成:串口通讯电路、51单片机电路、电源电路、步进电机驱动电路[12]。核心处理部分采用STC89C52RC微控制器,首先通过电源电路对整个系统供电,然后检测串口通讯电路是否传来相关控制指令,当单片机接受到步进电机控制指令时将控制步进电机的正转、反转或暂停从而带动窗帘的开启关闭或暂停。

4 系统软件设计

4.1 肢体动作检测程序

肢体动作检测判断程序流程图,如图6所示。

当程序启动时首先对系统初始化,然后获取串口通讯模块的指令,若未获得相应指令则继续检测串口模块,当获得相应指令时判断质量是否为暂停、正转或反转,若不是此三种指令则继续检测串口模块获取指令,当检测为三种指令其中一种时则向步进电机模块发送相应的操作指令,从而控制步进电机的正转、反转或暂停。

5 系统测试结果与分析

5.1 系统实测结果与数据分析

体感智能窗帘系统的整体测试效果图,如图8、图9所示。

为了便于观察在骨骼追踪时只显示三个骨骼点分别是头部、左手和右手,并且将未达到预设阈值的个骨骼点显示为常规小圆点,将达到预设阈值的骨骼点显示为大圆点。在图8中图片为模拟正常人站立时的体感操作,在图9中图片为模拟不能站立的残疾人士或想躺在床上操作窗帘系统的人士的体感操作。此系统共定义了如图8、9自左到右、自上到下图片分别表示为双手未抬起、左手抬起、右手抬起和双手抬起四个操作动作。

为测试此体感检测系统的动作识别率,将每个动作进行300次重复测试并记录检测成功的次数,动作识别率为检测成功动作次数与所做动作总次数的比值。测试记录如表1所示。

在300次重复动作测试中站立左右手未抬起动作识别率最高约为99.34%,平躺右手抬起动作识别率最低约为96.67%,其中站立右手抬起、左手抬起和双手抬起的识别率分别约为98.00%、98.67%和98.00%,平躺左右手未抬起、左手抬起和双手抬起的动作识别率约为97.67%、98.33%和97.00%,站立和平躺全部动作总体识别率约为98.50%和97.42%。如图8、9和表1中所示实测结果表明,此套系统能够以约96%以上的识别率识别人体双手或单手抬起动作。

不同体感动作各300次测试对应的电机及窗帘正确状态的次数,如表2所示。

由表中统计可得在站立及平躺的场景下左右手未抬起动作识别成功时电机和窗帘都为停止状态、右手抬起动作识别成功时电机反转窗帘开启、左手抬起动作识别成功时电机为正转窗帘关闭、当双手同时抬起动作识别成功时电机停止窗帘也停止,在对动作未识别成功时电机和窗帘都保持原状态。根据表2所示的不同体感动作各300次实测结果可得,此系统若上位机动作检测判定系统能成功检测体感动作则下位机步进电机系统就能完成对步进电机的正反转控制,此过程中没有出现失误,即整个系统的稳定程度可由97%体感检测识别率代替,该系统较为稳定。

5.2 不同控制方式的对比分析

不同控制方法的智能窗帘优缺点对比,如表3所示。

Kinect体感控制窗帘相对于其他几种控制方法突出的优点主要为体感动作简单易学、操作无声、可为失声或下肢行动不便的特殊人群使用和可随时操作等,缺点为易误触发、制作成本高和功耗高。

6 总结

体感控制为通过对肢体动作的识别和判定从而与周围环境或设备互动的一种控制方法,这种控制方法目前已被大量的应用在游戏、教育[14]及虚拟现实[15]等行业。

系统测试结果表明此基于Kinect的体感控制窗帘系统可以通过识别判断人的肢体动作来控制窗帘的开启、关闭和停止。此系统可以在提高智能家居体验科幻感的同时为下肢或表达不便的特殊人群提供自主开关窗帘的便利。此设计是基于Kinect体感控制的一个方向的研究,具有较大的实际应用价值,在此基础上可以对其进行二次开发为如体感门窗开关、体感灯具、体感飞行器等应用。但由于每个人一天可能会无意间做出很多种动作,假设其中某一个动作和此设计预设的动作相似,将会造成对系统的误操作。为了避免此问题的出现,目前较好的思路就是将Kinect体感系统与定时或声控等功能相结合,或者设置特殊的连贯手势动作作为体感系统的启动、关闭动作。并且现阶段整体系统需要微软Kinect体感设备和相应的主机设备支持造成了此系统功耗较大、成本较高等缺点。随着体感技术和智能家居等科技的不断发展,体感传感器等硬件成本和功耗将会更加低廉和多种控制方式结合的出现,在未来将会出现更多惠及生活的体感研究和应用[16]。

参考文献

[1] 杨成慧,王书志,何佑星,等.一种基于STC89C52的智能窗帘控制系统设计[J].自动化与仪器仪表,2016(6):246-248.

[2] 谭艳春,武琰.智能窗帘控制系统的仿真与设计[J].电子技术与软件工程,2019(12):239-240.

[3] 赵健,吴顺伟,陈兴美,等.基于单片机的光敏窗帘及声控灯系统的设计[J].泰山学院学报,2013,35(3):101-103.

[4] 唐卫斌,宋亚峰.基于boa嵌入式的智能家居系统的设计[J].电子设计工程,2019,27(10):173-177.

[5] 千承辉,邵晶雅,夏涛,等.基于Kinect的手语识别方法[J].传感器与微系统,2019,38(6):31-34.

[6] 王公仆,王文成.计算机与单片机的串口通讯程序设计[J].轻工机械,2007(3):103-105.

[7] 贾同,吴成东,陈东岳,等.一种基于全向结构光的深度测量方法[J].自动化学报,2015,41(9):1553-1562.

[8] 张志林,苗兰芳.Kinect v2的三维物体重建系统设计[J].计算机应用与软件,2019,36(6):136-141.

[9] 吴秦,陈智,周宇旋,等.基于Kinect骨骼跟踪技术的人机交互[J].常州大学学报(自然科学版),2014,26(3):6-12.

[10] 樊景超,周国民.基于Kinect骨骼跟踪技术的手势识别研究[J].安徽农业科学,2014,42(11):3444-3446.

[11] 吴国斌,李斌,闫骥洲.Kinect人机交互开发实践[M].北京:人民邮电出版社,2015.

[12] 陳慧琴.基于STC89C51单片机步进电机控制系统的设计[J].山东工业技术,2016(18):187-188.

[13] 李杰.体感交互游戏中的人体骨骼跟踪技术研究[J].现代计算机(专业版),2014(9):58-61.

[14] 王钰文,邓嵘,曾鸣.Kinect技术对石油高校实验教学的作用[J].实验科学与技术,2018,16(5):104-108.

[15] 刘肖佑,田立国,张驰宇,等.智能体感虚拟现实交互运动系统[J].科技创新与应用,2019(3):37-38.

[16] 贾骋,李妍,毛丰.体感技术应用现状与展望[J].科技传播,2018,10(12):102-103.

(收稿日期: 2019.08.08)

猜你喜欢
单片机
基于单片机MCU的IPMI健康管理系统设计与实现
浅析51单片机的特点与应用
单片机在智能控制中的应用
C8051F020与80C51单片机的异同点
MCS—51单片机多串口通讯技术应用分析
一种单片机虚拟实验室的建立方法
点阵式液晶显示器lMl2864与51单片机的接口设计
单片机I/O口模拟串行通讯的C51实现方法
单片机调试方法的探讨
用PIC单片机制作的时间继电器