程 慧,孙纳新,郑晶晶,霍柄良
(武警后勤学院基础部信息技术教研室,天津300309)
随着社会的发展和电子产品的长时间使用,人们用眼的时间也越来越长[1]。2016 年《国民视觉健康》白皮书发布的数据显示,2012 年我国5 岁以上人群中,约有5 亿人患有各种视觉障碍,其中近视患者总数达到4.5 亿左右。如果没有有效的措施干预,到2020 年,中国5 岁以上人群近视患病率将提高至51%左右,近视人数也将达到近7 亿。现有市场上的护眼方式可以分为2 类:一类偏向治疗方向,比如口服药[2]、按摩仪[3]、近视矫正手术等;另一类偏向缓解方向,比如护眼灯、护眼眼贴、眼药水等。但是这些护眼方式主要针对视后缓解用眼过程中的疲劳及对近视的治疗,不能从根本上解决用眼习惯不正确导致的近视问题。
目前,随着科技水平的进步,测距手段和方式越来越丰富,主要有微波测距、激光测距、辐射测距、超声波测距等。而超声波测距因其安全性、稳定性被更多的测距产品所使用,广泛应用于农业、医学、工业之中,但与蓝牙技术相结合实时进行视力保护和预防的产品却很少。因此,本文从预防近视的根源出发,设计一种基于单片机的护眼测距眼镜,同时与手机Android 系统的App 相连接,通过测距及实时提醒,从根源上来帮助用户矫正用眼习惯,保护视力。
近视形成的主要原因之一是长时间、近距离地使用眼睛,导致眼球中睫状肌失去弹性,从而影响晶状体正常恢复[4]。睫状肌是眼睛中可以改变晶状体形状,以调节物品对焦距离的肌肉组织。长时间、近距离用眼容易使睫状肌缺乏锻炼,导致持续紧张或痉挛而失去灵活的自我调节能力,引发近视[5]。因此,减少近距离用眼是预防近视发生的重要手段。当书本与眼睛的距离长时间处于10 cm 以下时,就会使得眼睛的自我调节异常紧张,从而形成近视。所以在日常的工作、学习中,需要且有必要实时了解眼睛与书本之间的距离,及时调整用眼姿势,养成良好的用眼习惯,从而降低近视的发生率。
针对人们对自身用眼距离的检测需求,本文设计了一个智能护眼测距眼镜,主要采用STC89C51单片机作为系统主控单元,通过超声波测距模块测量距离数据,并将数据实时发送至手机端App,从而作出提醒和数据分析。该眼镜可以实时记录采集的数据,并对距离进行实时监控。当用户获得自身的数据后便可以采取相应的措施调整用眼习惯。智能护眼测距眼镜示意图如图1 所示。
图1 智能护眼测距眼镜
智能护眼测距眼镜主要使用超声波测距技术,核心是在单片机上开发测距系统,使得智能眼镜具有测距与报警的功能。基于单片机的超声波测距系统的工作原理是利用超声波发射器进行超声波发射,并进行计时,当超声波遇到书本等物品时发生反射,记录反射的回波到达超声波发射器的时间t,则可得出智能眼镜与书本之间的距离为H=340t/2。超声波在稳定的温度状态下速度保持为常数,因此,能够保证距离测量结果的准确性。
智能护眼测距眼镜主要具有实时监测、数据回顾、智能分析、知识科普、互动分享等功能。
(1)实时监测。使用超声波测距模块测量距离数值,将实时数据在App 中显示,用户可以随时随地查看。并且当连续10 次测量值的数据都在红线以下时,App 会弹出推送窗口,同时触发手机振动,提示用户调整眼镜与书本等物品之间的距离。
(2)数据回顾。超声波测距模块将收集到的数据通过蓝牙串口模块传送至手机App 端,以折线图的形式展现在App 中,用户可以在折线图上查看一段时间内的测量值,了解这段时间的用眼习惯。同时设计了一条红线,红线以下的数据是非健康的用眼习惯数据,红线以上是健康用眼习惯数据。
(3)智能分析。将测量出的数据进行自动分类,分为健康数据和非健康数据。健康数据所占数据总数量的百分比作为当日评分,健康数据与非健康数据的比例关系以圆饼图的形式展现在App 上,并按照分值给予合理化建议。
(4)知识科普。收集和整理与用眼健康有关的科普文章加入到“知识”标签中,并定期进行补充和更新。
(5)互动分享。为增加用户体验,在分析界面的右上角加入了分享按钮,允许用户把当日用眼评分分享给微信好友,发布到朋友圈、微博等社交平台,增强用户之间的互动性,增加应用程序的趣味性。
智能护眼测距眼镜硬件主要由STC89C51 单片机、超声波测距模块、蓝牙串口模块组成。
STC89C51 是一款基于8 位核心处理芯片STC89-C51RC 的单片机系统[6],供电电压为3.8~5.5 V,同时具有4 KB 的FLASH 存储器与512 B 的内部存储器。其集成了丰富的片内外设,比如UART(universal asynchronous receiver/transmitter)通用异步通信口、定时器、PDIP(plastic dual in-line package)引脚等,具有速度快、低功耗等优点。STC89C51 单片机完整电路图如图2 所示。
图2 单片机电路图
超声波测距模块电压为DC 5 V,采用VCC、TRIG(脉冲触发引脚)、ECHO(回波引脚)、GND 的接线方式,可探测距离为2~450 cm[7],感应角度不大于15°。采用渡越时间(time of flight,TOF)法发射换能器启动后,向某一方向发送超声波,同时启动计时器开始计时。超声波在传输过程中遇到障碍物会被反射,接收换能器接收反射回的超声波并停止计时。在实际运用中,该模块采用IO 口触发测距,赋予至少10 μs的高电平信号。该模块自动发送8 个40 kHz 的方波,自动检测是否有信号返回。若有信号返回,通过IO 口ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间[8],从而得出测试距离为高电平的时间与超声波传播速度(340 m/s)乘积的一半。超声波测距模块原理图如图3 所示。
鉴于目前蓝牙技术已经成为物联网体系框架中的核心技术,蓝牙串口模块采用以蓝牙V2.0 协议为主体的芯片。其工作电压为3.6~6 V,默认波特率为9 600 bit/s。在数据传输方面,采用支持Android 系统的开源组件Bluetoothspp。该模块采用单微控制器模式,即蓝牙底层传输协议和高层传输协议以及用户应用程序都集成到该模块中,整个处理过程由该模块中的微处理器来实现[9]。
图3 超声波测距模块原理图
考虑到C 语言在复杂算法的使用中有很高的优势,因此测距软件部分采用C 语言编程。之后使用STC-ISP 软件将单片机程序烧写进单片机中。App的开发采用Android Studio IDE 开发环境,将Java 语言作为主要编程语言。该开发环境对UI 界面设计和编写代码更加友好。
4.2.1 App 软件程序设计
超声波测距模块测量距离并将数据传输至单片机,经单片机处理后通过蓝牙串口模块发送至App端。App 端接收数据,并调用数据进行分析。如果距离低于10 cm,则调用Object 函数,触发手机振动,同时出现提示对话框,提醒用户注意调整用眼距离。App 软件程序设计的流程如图4 所示。
图4 App 软件程序设计流程图
4.2.2 单片机测距程序设计
单片机测距程序启动超声波测距模块测量距离,利用单片机发送声波、监测发射和接收信号,并以cm 为单位,计算发射信号与接收信号之间的时间间隔,结合超声波传播速度从而得出距离。为防止距离过远和重新开始测距,主要设计T0、T1 2 个中断参数来控制中断系统。若测试距离过远,则打开T0中断,提示溢出;T1 中断参数用来控制每次测量之间的时间间隔,设置800 ms 开始下一次测量。
4.2.3 调用数据程序设计
蓝牙串口模块在启动之后一直处于随时侦听、建立连接状态,当单片机启动超声波测距模块测量数据之后,由该模块进行数据传送。该模块设计每3 s读取一次蓝牙数据,每5 s 接收一次数据。
选择一名测试者对智能护眼测距眼镜进行性能测试。在测试者保持与书本不同距离下来测试该眼镜的准确性。根据该眼镜预期达到的效果进行以下测试:
(1)测试者与书本的距离小于5 cm 或大于50 cm,程序丢弃该数据且不显示。因为测试距离太短或太长,使用者可以很直观地感受到距离的远近,从而调整用眼距离。
(2)测试者与书本的距离为5~50 cm,观察手机App 数据显示和变化,并多次记录,对比其误差值。该环境为测试的核心部分,因此采用在同一显示距离下分别测量10 次实际距离的方式来进行测试。
采用SPSS 统计软件进行数据录入与分析,实际距离数据以x¯±s 表示,使用单样本t 检验,P>0.05 表示显示距离和实际距离差异不显著,智能护眼测距眼镜具有一定的准确性。结果见表1。图5 为手机App 显示距离页面,图6 为连续10 次测试结果小于10 cm 时手机App 提示界面。
表1 显示距离与实际距离对比cm
图5 显示距离界面
图6 提醒界面
从测试结果可以看出,智能护眼测距眼镜测试误差在3 mm 之内,在功能上可以满足实时测量距离的要求,帮助用户矫正用眼习惯,降低近视的发生率。经过一段时间的模拟试用,该智能护眼测距眼镜稳定性良好、距离测试准确、提醒及时,非常适合对护眼有需求的用户。
本文主要针对的是眼镜与书本之间的距离,通过App 实时提醒并监测距离达到防止近视的目的。通过试验,该智能护眼测距眼镜能够实现在用户坐姿异常、距离过近时实时提醒的目的。在调试的过程中,该眼镜能够正常稳定运行,通过超声波测距模块较为准确地获取距离数据,并发送至手机App,对于预防近视有一定的实用价值。
但是在使用过程中,产品互动性还需要进一步提高,比如可以通过增加用户系统,允许用户通过账号、密码登录,设置个性化软件来增加趣味性。另外,在测试准确性方面,温度会对超声波的传播速度有一定的影响。该眼镜使用的环境一般为标准大气压,温度也比较稳定,因此在护眼眼镜设计时,采用超声波的传播速度(340 m/s)计算距离。为了保证该眼镜在不同的温度和环境下都能够正常运行,在电路设计中需要添加温度感应和检测电路,根据实测温度来计算超声波实时的传播速度(其速度计算公式为C=331.45+0.6T[10],其中,C 为超声波实时的传播速度,T 为温度)来确保该眼镜测试的精度。另外,该眼镜目前设计为工业原型机,在大规模生产中可以采用集成电路来完成整体的设计与实现,使用小型锂电池供电,从而减小其尺寸和质量,方便市场推广。