基于MSP430智能防近视眼镜的设计
软件总体分为三个状态,即“跟踪模式”、“矫正模式”和“数据同步模式”。在“跟踪模式”中,系统完成对用户眼睛工作环境数据的采集和对用户眼疲劳度的评估这两个任务即可,这两个任务下系统需要完成的具体任务见图8;在“矫正模式”中,系统完成对用户坐姿的检测和对用户眼疲劳度的评估,这两个任务下系统需要完成的具体的软件任务见图8;在“同步模式”中,系统仅需完成将系统数据缓冲区的疲劳值数据发送到蓝牙串口。
本文引用地址:https://www.eepw.com.cn/article/271653.htm每一个状态中,又有各自的前后台程序。前台程序是对软件实时性要求较高的程序,在系统中断中被触发运行,包括传感器数据采集记录程序、按键键值采集程序和LED/振子触发条件判断程序,其执行时间很短;后台程序是对软件实时性要求较低的程序,在系统主循环中运行,包括模拟人眼疲劳值算法、姿态解算算法等,其运行时间较长且难以确定。前后台程序相配合的技术手段有利于避免CPU阻塞,保证了系统的稳定性。
系统程序“状态”之间转换关系见图9,当用户短按按键时,切换“跟踪模式”和“矫正模式”,当用户长按按键时,进行数据同步。
3.4 模拟人眼疲劳算法
在本文所开发的智能防近视眼镜系统中,系统可以直接采集到的影响人眼疲劳值的参数包括:当前用户的用眼时间、视线距离、明暗变化以及阅读/写字姿态,然而实际情况是人眼疲劳值受到当前时刻之前这些参数所有变化累积的影响。在模拟人眼疲劳值的算法中,上述四个参数都有各自的权值,其中,用眼时间、视线距离所占权值最大,其影响真实人眼疲劳值的程度也最深;光线变化所占权值次之,阅读/写字姿态由于受到实际环境影响较大,所占权值最小。
下面就视线距离这一参数做详细说明,其他参数可以此类推。
首先定义视线距离参数的权值得分S,其总分为35分,即视线距离因素占35%的比例权值。之后,占获取当前的视线距离参数,以此减去标准参考距离(33.3厘米),获得的差值记为d,那么:
其中,f(Sn)是Sn的函数,这样就模拟了实际过程中视线距离随时间的变化对人眼疲劳的影响。
3.5 动态分配传感器测量频率算法
为降低系统功耗所采用的动态分配传感器测量频率算法原理如下:首先建立一个长度为5的环形数据缓冲区,单片机定时器每秒钟产生一次定时中断,在中断内唤醒六轴传感器读取相关数据并暂时关闭传感器。然后,计算三轴加速度的平方和,并将此平方和存入上述环形数据缓冲区内,当缓冲区数据存满时,对缓冲区内的5个数据进行加权相加运算,以此分配下一次距离传感器和光强传感器唤醒的时间。在此之后再有新的数据被记录时,优先放弃掉环形数据缓冲区内先被记录的数据。由于此算法涉及到浮点数乘除运算,运算量相对较大,所以将其放在后台系统循环中运行,运行结束后可休眠CPU。
4 性能分析
本系统的主要性能指标有:待机时间、测距精度、便携性、六轴检测精度。
从实际测试的情况来看,由于本系统采取了一系列方式来降低功耗,有效待机时间可以达到一天以上。
测距精度方面,由于所选红外传感器的优秀特性,在大多数环境下测距精度优于1%。
便携性方面,本系统所选器件均在保证系统功能完善的情况下选择了体积最小的器件,尽可能地缩小了整体体积,但考虑到作品最终要与眼镜镜框一体,现在体积还是有点大,后期可考虑使用低功耗的BLE来取代单片机及蓝牙4.0系统,到时可进一步缩小体积,增强便携性。
六轴检测精度方面,根据量角器等工具对传感器检测结果进行记录并分析,并结合本系统应用场景进行考虑,传感器测量时引入的误差基本可以忽略。
参考文献:
[1]谢楷.《MSP430系列单片机系统工程设计与实践》[M] .上海:机械工业出版社,2007
[2]陈学平.《Altium Designer 13电路设计、制板与仿真从入门到精通》[M] .北京:清华大学出版社,2014
评论