吴博 郑俣昊 隋宏亮
摘要:近视已经成为困扰当前很多人的一大难题,当今社会中小学生的繁重的学习任务是引起近视的一大重要因素,因此从小养成一种良好的坐姿和阅读写作习惯能有效地避免近视。本系统以STC12C5A60S2单片机为核心控制单元,通过超声波测距技术和红外检测技术检测与使用者之间的距离,光线强度检测技术检测使用者的周围环境光线,以此来判断使用者此时的坐姿和光线环境是否标准规范,报警系统提醒使用者纠正不当的坐姿和寻找合适的学习环境,从自身和外界两个方面纠正青少年不良的学习习惯,从根本上解决近视问题。
关键词:近视;单片机;传感器;PWM
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)12-0203-03
1 引言
世界卫生组织最新研究报告称,目前中国近视患者人数多达6亿,几乎是中国总人口数量的一半。我国高中生和大学生的近视率均已超过七成,并逐年增加,青少年近视率高居世界第一,小学生的近视率也接近40%,青少年近视率排世界第一。近视在我国已成为一个严重的,亟待解决的社会问题。大部分中小学生,由于缺乏自觉意识和自我防护意识,家长和老师不能每时每刻守在身边加以提醒,所以容易养成不良的阅读写字习惯,这种坏习惯一旦养成就很难改掉,日复一日地恶性循环使许多学生过早的戴上眼镜,不仅在生活上很不方便,而且对青少年的身体和心理也有很大伤害。
通过网络对现在市场相关产品的调查,发现大多数产品是通过外力的作用,将身姿强行纠正。例如,支架式坐姿矫正器、背背佳、矫正坐姿椅等等。因此这些产品自身存在着很大的局限性,对身体有很大的负担,会造成呼吸不畅,身体因长时间紧绷得不到放松而僵硬酸痛等等。而且这种被动的身姿矫正还会让人产生厌倦和抵触的心理,一旦停止使用,读书学习的姿势又会变成原来那样,不能让人养成一个良好的阅读写作习惯。
本系统主要是针对长时间阅读学习的中小学学生,以人为本为核心理念,将电子学、物理学、人体工程学相结合的智能电子设备。能够及时提醒读写者,端正坐姿,挺直腰背,主动培养自觉意识,养成良好的读写习惯,提高学习效率,有效防止驼背、脊椎弯曲以及近视等生理疾病,即使在停止使用后,仍然自觉的保持良好的阅读自而坐习惯,从而有效的保护学生的身心健康。
2 系统的硬件设计
系统采用STC12C5A60S2单片机作为核心控制器件,结合超声测距、光线检测、蜂鸣器报警、液晶显示、LED控制等外围电路,可实现使用者坐姿检测、学习光线环境检测、报警、人机交互、环境光线补充等多项功能。供电系统分为两部分,一部分给单片机供电,由开发板自身的micro USB接入;第二部分给LED补光灯供电,使用9V电源,经LM2940降压后接入LED补光灯模块。另外还有两个独立按键分别控制LED灯的开关和超声波报警的距离阈值。系统的总体框架如图1所示。
2.1 超声波距离检测模块的设计
超声波测距模块主要实现对使用者与本装置距离的测量,通过数据比较,再由单片机程序判断使用者的坐姿是否正确,若不正确,则由报警系统报警提醒使用者纠正坐姿。
采用IO口TRIG触发测距,单片机的P1.5给TRIG至少10us的高电平信号,模块自动发送8个40khz的方波,自动检测是否有信号返回,有信号返回,通过IO口ECHO输出一个高电平给单片机的P3.2,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340m/s))/2。本模块使用方法简单,一个控制口发一个10us以上的高电平,就可以在接收口等待高电平输出。一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离。超声波测距模块电路图如图2所示。
2.2 光线检测模块的设计
光线是学习环境中一个最重要的影响因素,在光线不足的环境中学习很容易导致近视。光线检测模块主要实现对环境光线强度进行实时监测,判断周围环境是否过暗。
GY-30是一个数字环境光传感器集成电路,光电二极管PD检测到光线强度,产生电流,到达运算放大器AMP将电流转换成电压,再通过模数转换将模拟信号转换成16位数字信号,送入逻辑运算器中计算出光照强度,通过标准的NXP IIC通信接口將数据传入单片机,OSC为内部振荡器,其时钟频率值为320KHZ,内部逻辑时钟。
GY-30光强度传感器直接数字输出,省略了复杂的计算;不区分环境光源种类,有很强的适应性;其分光特性接近于视觉灵敏度,能计算出更适合人眼的光线强度;光照度范围大,可测量0-65535lx范围内的光强。
光线检测模块框图如图3所示。
2.3 LCD显示模块的设计
LCD液晶显示电路,主要由LCD1602液晶显示器组成,能够较好地显示,达到目的要求。主要用于显示每次开机之后提醒警报被触发的次数,可以借此明确知道使用者自身触发警报的次数,根据记录的数据可以知道近段时间自身的状况,能够促使学生有意识的主动改正不良的坐姿习惯。
2.4 报警检测模块
考虑到学生学习环境的多样性,而且是以在学校学习为主。报警系统是由两部分构成,一部分是有声警报:由一个NPN三极管,一个1k电阻和一个蜂鸣器组成,当使用者在家学习时,可以设置为响铃模式,能够有效的提醒使用者。另一部分是振动警报:由一个NPN三极管,一个1k电阻和一个1027振动马达组成,当使用者在学校学习,可以将本装置设置成振动模式,这样既不会影响到其他人学习,同时也可以起到提醒自己的作用。这两种提醒模式适用于各种场合,大大增加了产品的实用性。
2.5 LED补光灯模块的设计
LED补光灯模块由4颗功率1W的LED灯珠并联组成。当光线检测模块检测到用户周围环境过暗时用户可以选择打开LED补光灯,其发光强度是单片机根据当前光线环境计算出的基本最适合的光强。人眼的主观亮度与主光源和外界光强的对比度有关。主管亮度感觉S与光源亮度B的对数成比例,其公式如下:
3 系统的软件设计
近视防护仪系统的设计以Keil u Vison4为编程软件,采用比汇编语言简洁且更加方便移植的C语言作为编程语言。C语言是国际上广泛流行的计算机高级语言,功能强大,使用灵活的过程性编程语言,既可用于编写应用软件,又能用于编写系统软件。它的语言簡洁紧凑,使用方便灵活,具有丰富的运算符、数据结构和结构化的控制语句,能够实现在其他高级语言中难以实现的运算。本产品主要程序都是利用C语言编写,主要有:超声波模块驱动程序、光线检测程序、LCD1602液晶屏驱动程序、报警检测程序、LED控制程序,按键控制程序、延时程序等。
3.1主程序系统流程
先对系统上电,之后运行各个模块的初始化程序,等系统初始化工作完成并能进行稳定工作后,光线传感器模块及超声波测距模块开始测量数据,并且将测量的数据经过A/D转换、放大等操作后再送入单片机中进行分析。在程序中设置了一个5ms定时中断,主要用来进行光线强度检测和超声波距离检测。主程序流程图如图4所示。
软件设计中最重要的部分是中断部分的超声波测距和光线检测,其程序流程图如图5所示。
部分程序清单:
void main()
{
int m=0;
int temp=0;
int q=0;
//a=0;
TMOD = 0x01;//使用定时器T0进行5ms定时
TH0 = 0x0EC;
TL0 = 0x78;
EA = 1;
ET0 = 1;
TR0 = 1;
delay_nms(200); //延时200ms
InitLcd(); //初始化LCD
Init_BH1750(); //初始化BH1750
while(1) //循环
{
if(m==1)
{
temp++;
}
DisplayOneChar(0,0,'t');
DisplayOneChar(1,0,'i');
DisplayOneChar(2,0,'m');
DisplayOneChar(3,0,'e');
DisplayOneChar(4,0,':');
// DisplayOneChar(4,4,k);
d=z/10; //十位
e=z%10; //个位
xianshi(d,e);
//BUF[8]=0; // rst1=1;
// delay_nms(1); /* */
}
}
4 结语
针对当今社会人们普遍关注的青少年近视问题,提出了一种基于STC12C5A60S2单片机的智能近视防护仪设计。结合超声波距离检测,实时测量使用者与装置的距离,判断其坐姿是否正确,同时通过光线检测,判断当前环境是否适合学习。与市场上的各种身姿矫正仪不同,本设计从自身和外界环境两个方面同时着手,既防止由于青少年自身主观原因导致的近视,也防止了由于外界光线等客观因素导致的近视。由试验结果表明,本设计具有集成化和较高的自动化优点,并且实用性强,开发空间大,使用灵活,拥有很大的发展前景。
同时感谢张伟老师和岳耀亮老师的悉心指导,在他们的高标准严要求之下,我得到了很大的收获,他们不仅仅是我的学业导师,更是我的人生导师。
参考文献:
[1] 张岩, 张鑫. 单片机原理及应用[M]. 机械工业出版社, 2015.
[2]肖雅金, 张伟, 胡子牛,等. 基于STC89C52的智能台灯软件设计[J]. 电脑知识与技术, 2017, 13(1X):248-250.
[3]江文明. 一种磁平衡直线振动马达及其振动方法:, CN 105305762 A[P]. 2016.
[4]李香宇, 王世功, 王萌,等. 基于PID算法和PWM控制的温控系统设计[J]. 仪表技术, 2016(5):31-33.
[5]佚名. 中国青少年近视超七成 青少年近视率排世界第一[J]. 中学时代, 2017(8).
[6]刘燮, 吴苏晨, 王瑞林. 基于BH1750的LCD屏幕亮度自动调节设计与实现[J]. 硅谷, 2013(13):24-26.
[7]杨慧敏. 超声波测距仪的设计[J]. 科技视界, 2012(18):27-28.
[8]谭浩强. C程序设计(第四版)[J]. 计算机教育, 2010, No.128(20):34-34.