梁计锋
(西安翻译学院,工程技术学院,陕西,西安 710105)
研究表明,我国中小学生里小学生的视力下降率大约占整体的25%左右,中学生视力下降比例较高,已经达到了50%以上。错误的书写姿势、长时间的用眼疲劳、环境光照度不够,都是导致近视的主要原因,并且这些行为很大一部分发生在学生时期。学生在学校自控能力较差,没有老师与家长的提醒,就会形成不好的书写习惯,很多学生为了在书写过程中让书写舒适,使眼睛与书本过近,以至开始出现近视,从那时起眼镜便成为了生活中不可缺少的东西。为了尽量避免这种情况发生,本文设计了一款光电控制书写提醒器。通过调查发现,众多国内外电子企业自行设计制作了书写提醒装置,就中国而言,“学生1.5视力保护器”也被称为“手表宝”,可以用简单的声音报警提醒学生,纠正学生的书写姿势。然而该产品只有这一种功能。一般来说,具有视力保护功能的产品,目前国内的书写提醒装置相对简单,无法满足部分用户的需求。国外最常见的是电子防止困倦提醒器,将防止困倦作为解决问题的关键,使用微电脑进行书写姿态校正,或基于红外距离完成书写姿势校正。这类产品有其独特性,但也有局限性。
研究表明,目前市场上还没有多功能书写提醒装置。现在很多产品主要集中在视力保健上,这些产品的功能相对简单,然而用户的需求是功能的多样性,不喜欢只有单一的功能。因此,本文的目标要设计一种具有多样性功能、成本低、使用寿命长,且具有较高的灵敏度,小巧便于携带,外形美观的书写提醒装置。
本装置主要作用是监测书写者头部的位置与桌面的距离,当头部离桌子距离过近,导致光线减弱时,系统会发出报警提示。为了将使用者的连续学习时间控制在一个合理的范围内,本装置通过外部时钟模块完成定时功能,在一段长时间的工作学习后,装置会提醒使用者闭目休息片刻(定时模块未实现),系统功能设计如图1所示。
图1 功能示意图
系统主要功能分为2大部分:坐姿提醒和定时提醒。整个系统主要由单片机核心控制器(MCU)[1]、测距电路、定时电路、提醒电路、光敏检测电路等组成,主要框架如图2所示。
图2 主要功能结构图
书写提醒主要功能是提醒功能。通过单片机程序处理数据得出头部与提醒装置的距离进而判断是否过于接近和坐立时间过长,如果距离过近和学习时间过长,则会提醒用户及时调整书写姿势和休息。
系统主要功能分为坐姿提醒和定时提醒。坐姿提醒是通过感应模块[2]对使用者与提醒器之间距离进行测量,当使用者头部过低遮住光线的时候,便会发出提醒。定时提醒起到了控制书写时间的作用,通过定时器完成这部分的功能。
硬件电路框如图3所示。
图3 硬件电路框图
2.2.1 单片机核心电路
设计主要基于8051单片机来进行设计,它设计简单,体积小巧,接口方便,便于用户的扩展,按照它可以方便完成用户所需要的各种功能。主要组成部分如下。
(1)CPU。CPU即中央处理器,是80c51单片机的重要组成部分,它由两部分组成,分别是控制器和运算器,这两部分分别帮助完成控制和运算的任务。运算器能够帮助实现数据的多种运算,控制器可以帮助平衡单片机整体运作,发出控制信号,并且能够产生脉冲。
(2)数据存储器[3]。它是内部RAM,用来存放和读写数据,这款单片机包含的存储单元一共有128个。
(3)程序存储器。它是内部RAM,可以帮助放置原始数据,并且能够存放程序。
(4)定时器/计数器。为了达到这种效果,它有16个。
(5)并行I/O口。可以帮忙完成系统的输入输出,内部有4个8位的I/O口。
(6)串行I/O口。可以很方便简洁的完成单片机和数据的串行之间传送。
(7)中断控制器[4]。可以分为5个控制中断源,这些中断源有不相同的优先级。
2.2.2 定时模块
这一部分主要是通过时钟电路(PCF8563)[5]来实现的。PCF8563是一款多功能时钟/日历芯片,它具有很多种功能,包括定时器、时钟输出和中断输出功能。这款芯片可完成很多种复杂的定时任务,它具有双线IIC总线通信模式,这不仅使得芯片外围电路简单,而且让芯片的稳定性变得更好,可靠性变得更高。总体上来说这款时钟芯片拥有较高的性价比,正因为这个优点,这款芯片已经被广泛应用于多个产品领域,比如电话机、生活用表等。
在本设计中,通过外部定时电路实现定时,通过双向I2C总线将数据输送至单片机核心,总线由2条线组成,分别是时钟线与数据线。这两条线必须用上拉电阻才可以同电源相连,在本系统中,将P1.6作为SCL,P1.7作为SDA。
2.2.3 测距模块
这部分主要功能是测量用户与书面提醒之间的距离,传输系统通过超声波发射装置测量目标与装置的距离,由于信号微弱,需要通过运算放大器[6]的放大,随后通过计算得出结果,具体工作流程如图4所示。
图4 超声波模块工作过程
发射部分由2部分组成,分别是共射放大电路和三极管电路。电路图如图5所示。
图5 发射部分电路
该发射部分电阻的参数为:R1=330 Ω,R2=20 Ω,R3=470 Ω,R4=10 kΩ。
接收部分电路由2部分组成,分别是超声波接收管TPS708和电压串联负反馈的模拟运算放大电路。电路图如图6所示。
图6 接收端电路
在电路中各电阻参数为R5=10 kΩ,R6=10 kΩ,U2B=100 kΩ,R11=10 kΩ,R9=100 kΩ,R10=330 kΩ,R8=10 kΩ。
2.2.4 测光电路
设计采用光敏电阻实现光强度采集[7]。光敏电阻也称为光导,通常用CdS、Se、Al2S3、PbS和Bi2S3制成。这些材料表现出一个共同特性,即在特定λ的光下光敏电阻的阻值会迅速降低。产生这一现象的原因是由光产生的载流子参与导电,并在施加的电场作用下做漂移运动,电子向电源的阳极运动,并且另一部分运动到电源的阴极,从而使得电阻的电阻值迅速下降。
2.2.5 报警电路
报警部分采取的方式是声光报警,输出采用3个LED,进行显示报警,结构如图7所示。
图7 LED报警电路电路图
报警电路[8]实现的是书写提醒器与使用者距离不处于系统设置的阈值中的时候、光强低于所设阈值的时候或学习时间超过所设阈值的时候,都将通过输入输出口驱动蜂鸣器工作,从而完成报警。由于单片机输入输出口输出的电流较弱,无法直接驱动蜂鸣器工作,故设计了该部分驱动电路,在本系统中,单片机端口P2.4、P2.5、P2.6与LED相连,P3.7与蜂鸣器相连,如图8所示。
图8 蜂鸣器报警电路图
Keil C51[9]是由Keil Software研发的针对51系列兼容单芯片的C语言软件开发系统。Keil提供的开发解决方案相对于其他开发系统较为完整,具有库管理、集成开发环境、仿真调试器以及编译器等等。并且这款开发系统的运行兼容程度高,在Windows多种版本的操作系统下都可以完美运行。如果选择了C语言进行程序的编写,由于操作简单的集成环境以及功能强大的调试工具,因而Keil是最好的选择。
3.2.1 超声模块软件设计
在整个系统运行过程中。启动超声模块后,微控制器开始进行初始化。如果MCU接收到接收电路发送的模拟电压信号,进入A/D转换程序进行模数转换[10],接收到的模拟信号被转换成可被MCU识别的数字信号,并通过电压距离计算的子程序,将改变后的电压转换为距离,为后面判断提供条件,该部分流程图见图9。
图9 红外部分程序流程图
在得到使用者与书写提醒器的距离后,将测得距离与所设置阈值进行比较并作出决策。
3.2.2 测光模块软件设计
通过测光模块测得环境光的强度,此时输出量为模拟电压值,输出会进入单片机控制核心,由内部ADC转化为数字量,并通过计算转化为光照强度,得到当前光照强度后与所设置阈值进行比较,以便单片机做出下一步的决策。
3.2.3 声光报警软件设计
声光报警部分的触发条件包括距离过近、光强过低。距离过近的指令由单片机发出,即当超声波模块部分测得距离不在所设阈值的范围内时,单片机发出指令使LED发生频闪,蜂鸣器发出滴滴声,光强过低反映的就是头部对光源产生些许遮挡,即头部过低与书本距离过近,产生效果与距离过近一致。
在整个设计过程中,所有的部分都需要协调配合才可以完成预期的效果,实现预期的功能。而这就需要对每一个部分都进行相应的测试才可以得到保证,不仅仅是硬件的正常,同时需要软件对于硬件的协调配合。
在接收部分制作过程中,应对该部分实行相应的屏蔽措施,以防止电磁干扰,并在前面加入一个红色的塑料片以防止可见光的干扰,在发射部分与接收部分组装过程中要注意两者之间的距离,保持7—8 cm最佳。
监测部分包括红外和测光两部分,在使用所设计超声波模块进行测距测试时,由于需要将距离显示出来,所以借助了LCD1602作为辅助,经过调试后超声波部分测距的误差在允许范围内,该部分设计在软件的配合下正常工作;测光部分的调试相对于超声波部分比较简单,通过改变光源与测光部分的距离来观察即可。由于测光部分的输出为模拟电压,不可直接观测到,故借助LED来进行调试,当光源离测光部分较远或光源有些许遮挡的时候,LED的亮度变暗,反之变亮,故该部分可以正常工作。
将实物平放于桌子上,以正常坐姿进行书写,将头缓缓低下,声音报警器率先响起,继续将头低下,测光报警器接着亮起闪烁提醒。当使用者头部过低导致身体遮住光线时,提醒器开始报警。满足该设计的基本要求。
本设计通过MCU作为主控制单元,多种芯片组合成处理电路,并采用MCU定时功能,基于MCU汇编语言进行软件设计,通过测试,设计的基本目标,完成设计要求。
当然,这种设计不够准确。它只是控制青少年的头部不低下,通过发出声音加以提醒,但没有设计特定的范围和头部的角度,需要进一步研究和改进。