仝碩 吳正朕 秦楓
摘 要:隨著時(shí)代的發(fā)展,近視人數(shù)在增多,所以人們要求可以更加方便的測(cè)試視力。傳統(tǒng)的視力檢測(cè)方法需要醫(yī)護(hù)人員參與到檢測(cè)過(guò)程中,對(duì)于測(cè)試者及其不方便。本文提出了一種基于STM32F103c8t6單片機(jī)的視力測(cè)試儀的設(shè)計(jì)方案,軟件采用 C 語(yǔ)言編程, 顯示部分采用串口屏顯示, 以國(guó)際標(biāo)準(zhǔn)視力表“E”字為視標(biāo),每次隨機(jī)顯示一個(gè)字符。因此本系統(tǒng)可以進(jìn)行自我視力檢測(cè),且本產(chǎn)品使用方便,成本低,具有較大優(yōu)勢(shì)。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);視力檢測(cè)儀;串口屏
DOI:10.16640/j.cnki.37-1222/t.2018.11.125
1 引言
視力,常用視角分辨率來(lái)表示,指的是人眼辨別細(xì)節(jié)的能力。而視力的檢測(cè)又常用視力表來(lái)檢測(cè),當(dāng)今世界視力表有很多種,目前我國(guó)常用的視力表是用“E”字作視標(biāo)。本文提出了一種基于STM32C8T6單片機(jī)的視力檢測(cè)儀的設(shè)計(jì)方案,該檢測(cè)儀以單片機(jī)為控制核心,串口屏為顯示手段,語(yǔ)音播報(bào)為提示手段,可進(jìn)行自我視力檢測(cè).
2 硬件設(shè)計(jì)
本設(shè)計(jì)硬件由單片機(jī)主控模塊、串口觸摸屏、藍(lán)牙模塊和鍵盤輸入模塊、語(yǔ)音合成模塊構(gòu)成,硬件結(jié)構(gòu)圖如圖1所示。單片機(jī)CPU控制語(yǔ)音合成模塊發(fā)出“開(kāi)始測(cè)試”聲音,引導(dǎo)測(cè)試者進(jìn)行視力檢測(cè);測(cè)試者只需將視標(biāo)開(kāi)口方向的判斷情況通過(guò)鍵盤輸入即可;單片機(jī)對(duì)輸入按鍵值進(jìn)行判斷是否正確,同時(shí)發(fā)出語(yǔ)音提示,最后通過(guò)發(fā)送語(yǔ)音告訴測(cè)試者視力情況。
2.1 單片機(jī)模塊
單片機(jī)主控模塊使用STM32單片機(jī),他具有性能好、功耗低和成本低的優(yōu)點(diǎn),其程序存儲(chǔ)器容量是64KB,單片機(jī)主要完成串口屏控制,語(yǔ)音合成控制以及結(jié)果判決等過(guò)程,串口屏通過(guò)藍(lán)牙與單片機(jī)串口連接,用于接收單片機(jī)的指令傳輸。
2.2 液晶顯示模塊
串口屏是指帶微處理器的液晶屏,它包括處理器、LCD液晶顯示屏和其他部分。它接收單片機(jī)UART串口發(fā)送過(guò)來(lái)的指令,完成在液晶屏上顯示漢字圖案的操作。本系統(tǒng)使用的是淘晶馳串口屏,可以使單片機(jī)對(duì)液晶屏的控制變得更加簡(jiǎn)單,讓普通的單片機(jī)可以驅(qū)動(dòng)復(fù)雜的圖像處理。
2.3 無(wú)線通信模塊
藍(lán)牙是一種支持設(shè)備短距離通信的無(wú)線電技術(shù)。藍(lán)牙的標(biāo)準(zhǔn)是IEEE802.15,工作在2.4GHz 頻帶。本系統(tǒng)使用的是藍(lán)牙模塊 HC-05,其RXD 接單片機(jī)的 PA9端口,TXD 連接單片機(jī)的 PA10端,這樣,就可實(shí)現(xiàn)藍(lán)牙模塊與單片機(jī)的串口通信。
2.4 語(yǔ)音合成模塊
本系統(tǒng)使用的是SYN6288語(yǔ)音合成芯片,其支持BIG5、GB2312、GBK和UNICODE 等常見(jiàn)的格式的文本,具有可靠的、清晰的、標(biāo)準(zhǔn)的中文語(yǔ)音合成效果。工作方式是通過(guò)單片機(jī)向串口發(fā)送文本,然后通過(guò)單片機(jī)控制該芯片合成語(yǔ)音,具有使用方便,開(kāi)發(fā)方便的優(yōu)點(diǎn)。
3 軟件設(shè)計(jì)
采用 Keil5 作為開(kāi)發(fā)平臺(tái),流程如圖2所示。根據(jù)結(jié)構(gòu)化的思想,軟件可以分為以下模塊:隨機(jī)數(shù)模塊、輸入識(shí)別模塊、語(yǔ)音合成模塊、視力等級(jí)判別模塊.隨機(jī)模塊可生成0~3的隨機(jī)數(shù),利用這一隨機(jī)數(shù)可控制屏幕顯示圖標(biāo),輸入識(shí)別模塊用于輸入的鍵值,語(yǔ)音合成模塊用于語(yǔ)音提示體驗(yàn)者的選擇是否正確。結(jié)果判別模塊是將收到的鍵值與單片機(jī)存儲(chǔ)的視力表比較,得出視力結(jié)果,通過(guò)語(yǔ)音播報(bào)視力值與近視度數(shù)。
3.1 隨機(jī)數(shù)生成模塊
為了避免每次視力測(cè)試的”E”圖標(biāo)的開(kāi)口具有規(guī)律性,本系統(tǒng)采用了隨機(jī)數(shù)去控制每一行中“E”的開(kāi)口方向,而這隨機(jī)數(shù)是由可確定的線性同余函數(shù)通過(guò)一個(gè)種子產(chǎn)生的,也就是說(shuō)可以引用頭文件”stalib.h”中的rand()函數(shù),即t=rand()%4,因此這些隨機(jī)數(shù)在閉區(qū)間[0,3]之間分布,從而確定了圖標(biāo)的開(kāi)口方向。
3.2 輸入識(shí)別模塊
本模塊是將鍵值信息傳遞給單片機(jī),本系統(tǒng)共使用了六個(gè)按鍵值,按鍵功能如表1所示。
3.3 語(yǔ)音合成模塊
當(dāng)單片機(jī)需要發(fā)出語(yǔ)音的時(shí)候,單片機(jī)就會(huì)向串口UART1發(fā)送需要的中文字符,然后語(yǔ)音合成函數(shù)speech()就會(huì)對(duì)其處理,最后發(fā)出語(yǔ)音提示測(cè)試者。
3.4 視力等級(jí)判別模塊
單片機(jī)將獲得的鍵值與程序中的視力表數(shù)組進(jìn)行對(duì)比,采用的算法是,從視力表的首行開(kāi)始,每次每行隨機(jī)取出三個(gè)視標(biāo),參與者答對(duì)的話,flag_correct加1,當(dāng)flag_correct大于3的時(shí)候,就會(huì)直接進(jìn)入下一行測(cè)試。當(dāng)?shù)谝淮纬霈F(xiàn)同一行的答錯(cuò)次數(shù)大于3次時(shí),則返回上一行進(jìn)行測(cè)試,記錄標(biāo)志位flag_return為1.在接下來(lái)的測(cè)試中再次出現(xiàn)答錯(cuò)次數(shù)大于3次時(shí),記錄標(biāo)志位flag_return為2,這時(shí)輸出結(jié)果為當(dāng)前上行的視力值。
4 結(jié)束語(yǔ)
本文設(shè)計(jì)了一種基于STM32C8T6單片機(jī)的智能視力測(cè)試儀,相比較古老的、傳統(tǒng)的視力檢驗(yàn),可在無(wú)專業(yè)人員幫助的情況下,自我進(jìn)行對(duì)視力測(cè)試。通過(guò)實(shí)驗(yàn)表明本系統(tǒng)對(duì)視力大的檢測(cè)確實(shí)帶來(lái)了方便,測(cè)試結(jié)果也較為準(zhǔn)確。不足之處在于,每次通過(guò)rand()函數(shù)取得隨機(jī)數(shù)是否是真正的隨機(jī)數(shù),是否會(huì)對(duì)視力測(cè)試結(jié)果造成影響。
參考文獻(xiàn):
[1]姚開(kāi)麒等.微機(jī)化視力檢查系統(tǒng)[J].中國(guó)醫(yī)療器械,1992,16(06):340.
[2]胡忠林.驗(yàn)光與視力表視力[J].中國(guó)眼睛科技,2006,12(12):104-105.
[3]邱杰等 基于MCS-51單片機(jī)的視力測(cè)試儀設(shè)計(jì)[J],玉林師范學(xué)院學(xué)報(bào),2015,4(02):31-34.
[4]蔡金川,張超,樊麗.基于 ZigBee和GPRS的智能家居控制系統(tǒng)設(shè)計(jì)以及傳感數(shù)據(jù)基于時(shí)間序列的聚類分析[J].新型工業(yè)化,2017, 7(03):52-55.
作者簡(jiǎn)介:仝碩(1996-),男,江蘇徐州人,本科,研究方向:數(shù)控技術(shù)。