基于STM32C8T6单片机的视力检测仪设计的研究论文

摘 要: 随着时代的发展, 近视人数在增多, 所以人们要求可以更加方便的测试视力。传统的视力检测方法需要医护人员参与到检测过程中, 对于测试者及其不方便。本文提出了一种基于STM32F103c8t6单片机的视力测试仪的设计方案, 软件采用C语言编程, 显示部分采用串口屏显示, 以国际标准视力表“E”字为视标, 每次随机显示一个字符。因此本系统可以进行自我视力检测, 且本产品使用方便, 成本低, 具有较大优势。

基于STM32C8T6单片机的视力检测仪设计的研究论文

关键词: 单片机; 视力检测仪; 串口屏;

1、 引言

视力, 常用视角分辨率来表示, 指的是人眼辨别细节的能力。而视力的检测又常用视力表来检测, 当今世界视力表有很多种, 目前我国常用的视力表是用“E”字作视标。本文提出了一种基于STM32C8T6单片机的视力检测仪的设计方案, 该检测仪以单片机为控制核心, 串口屏为显示手段, 语音播报为提示手段, 可进行自我视力检测。

2、 硬件设计

本设计硬件由单片机主控模块、串口触摸屏、蓝牙模块和键盘输入模块、语音合成模块构成, 硬件结构图如图1所示。单片机CPU控制语音合成模块发出“开始测试”声音, 引导测试者进行视力检测;测试者只需将视标开口方向的判断情况通过键盘输入即可;单片机对输入按键值进行判断是否正确, 同时发出语音提示, 最后通过发送语音告诉测试者视力情况。

2.1、 单片机模块

单片机主控模块使用STM32单片机, 他具有性能好、功耗低和成本低的优点, 其程序存储器容量是64KB, 单片机主要完成串口屏控制, 语音合成控制以及结果判决等过程, 串口屏通过蓝牙与单片机串口连接, 用于接收单片机的指令传输。

2.2、 液晶显示模块

串口屏是指带微处理器的液晶屏, 它包括处理器、LCD液晶显示屏和其他部分。它接收单片机UART串口发送过来的指令, 完成在液晶屏上显示汉字图案的操作。本系统使用的是淘晶驰串口屏, 可以使单片机对液晶屏的控制变得更加简单, 让普通的单片机可以驱动复杂的图像处理。

2.3、 无线通信模块

蓝牙是一种支持设备短距离通信的无线电技术。蓝牙的标准是IEEE802.15, 工作在2.4GHz频带。本系统使用的是蓝牙模块HC-05, 其RXD接单片机的PA9端口, TXD连接单片机的PA10端, 这样, 就可实现蓝牙模块与单片机的串口通信。

2.4、 语音合成模块

本系统使用的是SYN6288语音合成芯片, 其支持BIG5、GB2312、GBK和UNICODE等常见的格式的文本, 具有可靠的、清晰的、标准的中文语音合成效果。工作方式是通过单片机向串口发送文本, 然后通过单片机控制该芯片合成语音, 具有使用方便, 开发方便的优点。

3、 软件设计

采用Keil5作为开发平台, 流程如图2所示。根据结构化的思想, 软件可以分为以下模块:随机数模块、输入识别模块、语音合成模块、视力等级判别模块。随机模块可生成0~3的随机数, 利用这一随机数可控制屏幕显示图标, 输入识别模块用于输入的键值, 语音合成模块用于语音提示体验者的选择是否正确。结果判别模块是将收到的键值与单片机存储的视力表比较, 得出视力结果, 通过语音播报视力值与近视度数。

3.1、 随机数生成模块

为了避免每次视力测试的“E”图标的.开口具有规律性, 本系统采用了随机数去控制每一行中“E”的开口方向, 而这随机数是由可确定的线性同余函数通过一个种子产生的, 也就是说可以引用头文件“stalib.h”中的rand () 函数, 即t=rand () %4, 因此这些随机数在闭区间[0, 3]之间分布, 从而确定了图标的开口方向。

3.2、 输入识别模块

本模块是将键值信息传递给单片机, 本系统共使用了六个按键值, 按键功能如表1所示

表1 按键功能

3.3、 语音合成模块

当单片机需要发出语音的时候, 单片机就会向串口UART1发送需要的中文字符, 然后语音合成函数speech () 就会对其处理, 最后发出语音提示测试者。

3.4、 视力等级判别模块

单片机将获得的键值与程序中的视力表数组进行对比, 采用的算法是, 从视力表的首行开始, 每次每行随机取出三个视标, 参与者答对的话, flag_correct加1, 当flag_correct大于3的时候, 就会直接进入下一行测试。当第一次出现同一行的答错次数大于3次时, 则返回上一行进行测试, 记录标志位flag_return为1.在接下来的测试中再次出现答错次数大于3次时, 记录标志位flag_return为2, 这时输出结果为当前上行的视力值。

4、 结束语

本文设计了一种基于STM32C8T6单片机的智能视力测试仪, 相比较古老的、传统的视力检验, 可在无专业人员帮助的情况下, 自我进行对视力测试。通过实验表明本系统对视力大的检测确实带来了方便, 测试结果也较为准确。不足之处在于, 每次通过rand () 函数取得随机数是否是真正的随机数, 是否会对视力测试结果造成影响。

参考文献:

[1]姚开麒等。微机化视力检查系统[J].中国医疗器械, 1992, 16 (06) :340.

[2]胡忠林。验光与视力表视力[J].中国眼睛科技, 2006, 12 (12) :104-105.

[3]邱杰等基于MCS-51单片机的视力测试仪设计[J], 玉林师范学院学报, 2015, 4 (02) :31-34.

[4]蔡金川, 张超, 樊丽。基于Zig Bee和GPRS的智能家居控制系统设计以及传感数据基于时间序列的聚类分析[J].新型工业化, 2017, 7 (03) :52-55.