吴亮
(山西大同大学物理与电子科学学院,山西大同 037009)
我国已于很多年前就开始了对学生群体近视问题的重视,科研人员也为此作出了许多的努力,直至现在,市面上已经流通了许多相关产品[1]。其中有一款是坐视宝,它能发现并对使用者的错误坐姿进行一定提示;还有一款是由深圳华恒电子公司生产的一款坐姿矫正器,它的型号为MS-3023,它的功能同坐视宝相似,可以对看书和写字的不正当坐姿加以提醒和保护。但这些产品的功能相对而言都是比较单一的,并不能够做到更加全面的提醒和保护。本文设计了一种超声波视力保护器。
本设计对该单片机的要求是:需实现定时、观书测距、光强检测以及警示功能。产品元件需参考性价比,需要用到的电阻电容等器件的参数及数量需合理选择。当产品设计完成并开始工作之后,要实现产品的功能必须满足以下几点要求:第一,当显示屏倒计时为0时,蜂鸣器需发出警报;第二,超声波测距模块测量距离小于设定值时,蜂鸣器需发出警报;第三,当学习环境的光照强度太暗或者太亮不符合规定值时,蜂鸣器需发出警报;第四,电路的设计必须安全可靠,设计电路过程中要尽可能的减少产品电路的复杂程度,且其所设计出的产品必须实现其相对应的功能。
本设计方案是由STC89C52单片机为本产品的主要控制元件,供电方式(电源)采用了DC电源插头及USB电源线的组合供电,光感元件是常见的光敏电阻,测距模块是利用超声波传感器,显示器是型号为LCD1602的液晶显示器,报警器使用蜂鸣器报警模块来共同实现。本设计一方面通过光敏电阻来采集光线的信号,然后通过AD转换器将采集到的光信号进行转化,经过转换之后可将其转换为电信号并将该电信号交于单片机处理;另一方面通过超声波测距模块感应人脸与实物间距离并将数据传输给单片机处理,单片机将会对收集到的数据进行处理,将数据与设定值相比较[2],若不符合设定值范围,则将控制蜂鸣器进行警示,反之则不警示。系统总体方框图可见图1。
图1 系统总体方框
1)硬件设计方案
本设计的主控模块是单片机(STC89C52)。该单片机的芯片自带时控电路[2],这样就很好的避免了再次设计电路时所带来的一些不必要的问题,且其拥有优秀的控制及运算功能,成本低廉,是一个非常理想的元件。
供电方式(电源)使用的是:USB接口电源线及DC电源插头的组合供电方式,且其组合供电电压的大小为5 V。
光强强度检测模块使用的元件是光敏电阻。该元件可以接在任意电源电路(既可交流也可直流)中工作。该元件在接收到光照后,其内部处于稳定状态的一些电子便会受到激发,从而变为可自由移动的电子,这样会使光敏电阻的阻值变小[3]。由于该元件并无极性,所以它可以适应任何电路的接法。
报警系统利用的是蜂鸣器来进行鸣声警告,该模块结构相对较为简单,体积也比较轻便,所以其使用也极其简单。
测距模块所使用的是超声波传感器[4]。该元件可以将其所测得的数据以电信号传输给核心控制元件(既单片机)处理。
显示模块是液晶显示屏(LCD1602)。此元件拥有着显示清晰,内容丰富和使用方便的有点,非常符合我们对元器件的选择标准。
2)软件设计方案
该方案的设计思路:由于产品的设计要求是一定的,所以我们可以从设计的要求着手进行准备,以此来推出产品的各项功能。根据功能将各个模块之间的联系用框图联系起来作为备用的子程序。最后便是确定该系统的核心部分。这样的想法将整个设计分了开来,哪一部分出错可以很快的查找到并且不会干扰到其他模块。
软件设计包括两个流程图,系统主程序流程图(图2)和子程序流程图(图3)。其中主程序流程图对系统的总体功能流程进行了介绍,并且根据设计要求设计了对三个数据的判断。而子程序流程图是对超声波这一模块的工作流程进行了展示。这两个框图将整个产品的设计的主要部分都展现了出来,是该产品工作运行时的重中之重。
图2 系统软件主程序流程图
当产品系统工作开始后,首先进行的操作是将系统进行初始化,其次系统将会同时对是否小于产品设定的距离值、是否小于产品所设定光照值、是否学习时间大于设定时间值进行判断。当所测的的数据中有仍一数值不符合产品所设定的设定值范围时,产品的报警模块将会进行蜂鸣警示。否则,重复执行以上程序。
图3 测距模块的功能流程图
测距模块既超声波模块是本设计的重要组成部分[5]。从流程图的可以看出,模块开始之后,首先确定定时电路的时间是否为1s,确定是1s之后,发射器发出超声波,同时检测超声波的设备开启,当其检测到超声波时表明超声波已经返回。然后即可运用公式计算出距离,小于时报警[6]。
本设计的仿真是在Proteus 7 Professiona软件中完成的[6-7]。液晶显示屏上显示的时间由定时电路实现,显示光照强度的数值是由电阻分压原理实现超声波传感器可以直接仿真,距离的大小可以通过按键加减来实现。蜂鸣器与LED灯连接,报警的同时还有灯光提示。
本设计调试的软件有Proteus 7 Professiona和Keil。编写程序使用C语言进行编写。程序编写完成之后使用Proteus进行仿真,待一切完成之后将程序写入单片机,自此,软件调试得以完成[7]。
在2~110 cm的范围之内做了20次超声波测距模块的测量,所测得数据见表1所示:
表1 测试结果及对比/cm
测量结果说明:仪器的最大误差是3 cm,最小误差是0 cm。在测量的结果中5~55 cm测量结果与实际结果没有出现误差,而在60~110 cm之中出现误差,而且误差最大值也出现了。因此可见超声波传感器的误差在超过某一距离后会增大,超过之后测量结果会出现较大误差[8]。
考虑到实际情况,本设计对于视力保护器的测距要求不会超过50 cm,通过上表可以得到在55 cm之内,误差出现的次数仅有一次且稳定在1 cm之内。所以由此可知,在实际使用中该产品完全可以正常工作,所以本设计是可以投入实际使用的。
此设计是一个以单片机做为控制芯片,与测距模块、液晶显示模块、报警模块和光强检测模块等一起组成的一款视力保护器。编写该产品程序时所用到的软件为KEIL。本产品的优点是能够在显示屏上显示设定的光照值、时间以及距离;可以通过按键来调节设定值的大小;各部分框图简单易懂,电路模块清晰,元器件的获取容易;可以在实际中使用,可以量产。
当然,本设计并不是完美的,还有许多的不足之处。设计主要适用的是学习的时候,对于其他影响视力的因素还没考虑,比如长时间观看或者使用电子产品,双手接触眼睛时不注意卫生,饮食不健康等。因此,接下来的任务是针对这些方面来设计保护措施,使其更加完善。相信随着科技的发展,将会有功能越来越全面的产品问世,为我们的社会带来福音。