(浙江工業(yè)大學(xué) 教育科學(xué)與技術(shù)學(xué)院,杭州 310023)
國(guó)內(nèi)外眼科領(lǐng)域目前一般使用閱讀視力表來(lái)評(píng)估閱讀能力。傳統(tǒng)E字對(duì)數(shù)視力表使用字母“E”作為視標(biāo),而閱讀視力表則一般使用不同印刷大小的文字作為視標(biāo),可以檢查受測(cè)者適合閱讀哪種印刷大小的文字,反應(yīng)受測(cè)者進(jìn)行日常閱讀時(shí)所需要的功能性視力。臨床上閱讀視力檢查可用來(lái)確定低視力患者近用助視器以及老視者配驗(yàn)老視眼鏡時(shí)的配驗(yàn)參數(shù)[1];也用于比較低視力患者治療前后閱讀能力的變化,來(lái)評(píng)估視功能康復(fù)情況或手術(shù)效果[2-3],選用合適的閱讀視力表,準(zhǔn)確檢查閱讀視力,是眼科視功能檢查、視覺(jué)康復(fù)等領(lǐng)域的需要[4]。
國(guó)外最流行的閱讀視力表是明尼蘇達(dá)連續(xù)文本閱讀視力表,簡(jiǎn)稱(chēng)MNREAD[5];國(guó)內(nèi)學(xué)者在MNREAD的基礎(chǔ)上開(kāi)發(fā)了C-READ中文對(duì)數(shù)閱讀視力表等適用于中文本土閱讀者的檢查工具[1, 6-7]。但實(shí)際用于臨床檢查時(shí),使用的均是紙質(zhì)版本的閱讀視力表,需要手工記錄數(shù)據(jù),檢查效率低,且表存在光照度無(wú)法定量、文字難以逐行顯示等問(wèn)題。需要一種專(zhuān)門(mén)的檢查儀器,優(yōu)化檢查流程,減少人工操作,自動(dòng)記錄分析數(shù)據(jù),呈現(xiàn)直觀的檢查結(jié)果。除了上述功能需求,檢查儀的主要實(shí)現(xiàn)難點(diǎn)在于顯示最小視標(biāo)所需像素密度(pixels per inch, ppi)遠(yuǎn)高于主流平板電腦或手機(jī)屏幕的像素密度;例如C-READ中文對(duì)數(shù)閱讀視力表中,小數(shù)記錄2.0視力對(duì)應(yīng)的漢字視標(biāo)高度約為0.29 mm,以一個(gè)漢字需要10*10的分辨率來(lái)計(jì)算,需要單位英寸像素點(diǎn)數(shù)達(dá)到874 ppi才能清晰顯示。而主流平板電腦或手機(jī)屏幕的像素密度一般不超過(guò)350 ppi,小數(shù)記錄視力、漢字視標(biāo)高度和清晰顯示所需ppi對(duì)應(yīng)關(guān)系如表1所示。針對(duì)上述問(wèn)題和難點(diǎn),為滿足正常和低視力人群閱讀視力檢查的需要,本文基于STM8S105系列單片機(jī),并配以BLE103藍(lán)牙4.2模塊、定制段式液晶顯示模塊和手機(jī)控制App設(shè)計(jì)了閱讀視力檢查儀。優(yōu)化數(shù)據(jù)收集效率的同時(shí),也保證了文字視標(biāo)顯示的清晰度。理論上本儀器可以通過(guò)定制來(lái)適用于多種臨床閱讀測(cè)驗(yàn)。但本設(shè)計(jì)以C-READ中文閱讀視力測(cè)驗(yàn)[7]為例,更好的適用于簡(jiǎn)體中文閱讀者,以檢驗(yàn)本儀器的有效性。
表1 小數(shù)記錄視力與漢字視標(biāo)大小對(duì)應(yīng)表
閱讀視力檢查儀總體結(jié)構(gòu)框圖如圖1所示,由硬件端和上位手機(jī)App端兩部分組成。其中硬件端由STM8主控單片機(jī)、藍(lán)牙4.2透?jìng)髂K、定制段式液晶顯示模塊和電源組成,手機(jī)App端的功能主要包括通過(guò)藍(lán)牙對(duì)單片機(jī)發(fā)送指令,通過(guò)語(yǔ)音識(shí)別判斷受測(cè)者閱讀內(nèi)容正誤,記錄閱讀數(shù)據(jù)和呈現(xiàn)分析結(jié)果。STM8單片機(jī)是硬件部分的主控核心,連接藍(lán)牙4.2透?jìng)髂K對(duì)上位手機(jī)App端發(fā)送的數(shù)據(jù)進(jìn)行解析,并驅(qū)動(dòng)段式液晶模塊;段式液晶模塊是通過(guò)曝光、顯影、蝕刻、固化等高精度工藝將每行特定大小的文字與段位一一對(duì)應(yīng),在單片機(jī)驅(qū)動(dòng)下達(dá)到文字顯示或不顯示的效果;電源采用四節(jié)五號(hào)干電池,通過(guò)穩(wěn)壓電路分別給單片機(jī)、藍(lán)牙模塊和液晶模塊供電。使用本儀器進(jìn)行閱讀視力檢查時(shí),首先打開(kāi)閱讀視力檢查儀電源,使檢查儀的單片機(jī)上電,喚醒藍(lán)牙模塊進(jìn)入廣播狀態(tài)持續(xù)監(jiān)聽(tīng)指令;再由醫(yī)生打開(kāi)手機(jī)App連接檢查儀,并將控制指令通過(guò)藍(lán)牙串口發(fā)送至檢查儀的單片機(jī)模塊;接著定制液晶模塊在單片機(jī)的驅(qū)動(dòng)下顯示屏幕上特定的漢字或符號(hào),患者閱讀屏幕上出現(xiàn)的句子,手機(jī)App通過(guò)語(yǔ)音識(shí)別等方式記錄檢查數(shù)據(jù);最終收集多組患者數(shù)據(jù),形成檢查結(jié)果圖表。該儀器減少了人工成本,簡(jiǎn)化了操作流程,且具有顯示效果清晰、數(shù)據(jù)記錄完整、功耗低等特點(diǎn)。
圖1 閱讀視力檢查儀總體結(jié)構(gòu)圖
主控模塊是整個(gè)閱讀視力檢查儀硬件的控制中心,負(fù)責(zé)與藍(lán)牙模塊進(jìn)行數(shù)據(jù)交換,解析控制參數(shù),驅(qū)動(dòng)段式液晶面板顯示。本文使用STM8S105K6T6C單片機(jī)為閱讀視力檢查系統(tǒng)主控芯片。它是意法低功耗8位單片機(jī),最高內(nèi)置32K閃存,嵌入130nm非易失性存儲(chǔ)器,提供EEPROM數(shù)據(jù)寫(xiě)入操作,可達(dá)30萬(wàn)次擦寫(xiě)極限。片內(nèi)集成10位ADC、UART、SPI、I2C等多個(gè)外設(shè)接口??梢詽M足本設(shè)計(jì)控制系統(tǒng)功能的全部需求。PD6和PD5兩個(gè)引腳與藍(lán)牙模塊的UART_TX、UART_RX相連,實(shí)現(xiàn)與藍(lán)牙的UART通信。PD7連接藍(lán)牙模塊的RST位,是用于控制藍(lán)牙復(fù)位的引腳。PD4連接藍(lán)牙模塊的WU位,用于藍(lán)牙低功耗喚醒。單片機(jī)與段式液晶模塊之間的通過(guò)引腳模擬特定的串行輸入信號(hào)進(jìn)行通信,其中PC7連接液晶模塊的LCD_DATA串行數(shù)據(jù)輸入引腳,PC6連接LCD_CL1時(shí)鐘信號(hào)引腳1,PCPC5連接LCD_CL2時(shí)鐘信號(hào)引腳2,PD0用于控制LCD的背光強(qiáng)度,通過(guò)以不同占空比PWM驅(qū)動(dòng)三極管將液晶模塊的背光負(fù)極間隙接通來(lái)達(dá)到控制亮度的需求。SWIM作為調(diào)試模塊接口,NRST作為復(fù)位接口。主控電路設(shè)計(jì)如圖2所示。
藍(lán)牙模塊是實(shí)現(xiàn)單片機(jī)與上位控制App之間通訊的關(guān)鍵。本設(shè)計(jì)選用目前主流的藍(lán)牙4.2解決方案,使用BLE 103 芯片,發(fā)射功率-19 dBm至+8 dBm,接收靈敏度-78 dBm。工作電壓1.7 V-3.6 V。具有超低功耗、體積小、性能穩(wěn)定可靠等優(yōu)點(diǎn)[8]。通過(guò)藍(lán)牙透?jìng)鞯墓ぷ鞣绞絺鬏敂?shù)據(jù),可以不對(duì)單片機(jī)與手機(jī)App之間傳輸?shù)臄?shù)據(jù)進(jìn)行任何協(xié)議封裝上的處理,可以自己控制數(shù)據(jù)包的大小,只是將串口連接在單片機(jī)上,簡(jiǎn)化了藍(lán)牙通訊的過(guò)程。BLE 103通過(guò)UART_TX、UART_RX引腳與單片機(jī)之間進(jìn)行數(shù)據(jù)傳輸。藍(lán)牙模塊電路原理圖如圖3所示。
圖3 BLE103藍(lán)牙模塊原理圖
液晶是一種介于液體和晶體之間的物質(zhì),液晶本身是不會(huì)發(fā)光,它可以通過(guò)電流來(lái)控制光纖的穿透度,從而顯示出圖像,按顯示方式分類(lèi)有正顯、負(fù)顯,偏光片具有全透、半透模式。液晶顯示模塊是閱讀視力檢查儀設(shè)計(jì)的難點(diǎn),普通筆段式液晶只能以較低的分辨率顯示數(shù)字和部分字母,要高清晰度顯示閱讀視力表的內(nèi)容,則需要定制段式液晶模塊。本設(shè)計(jì)正是采用了一種定制式的液晶模塊,該模塊由段式液晶顯示屏幕、2個(gè)NT7063驅(qū)動(dòng)IC、LED背光源和外部連接端口等組成。液晶顯示屏幕前制程采用高精度烙板,通過(guò)曝光、顯影、蝕刻、固化等工藝將所要顯示的漢字及符號(hào)固定在指定的位置。線寬、線距可以精度可達(dá)10 μm,筆段理論形變量在1 μm以?xún)?nèi),具備清晰顯示中文閱讀視力表最小視標(biāo)的能力。由于閱讀視力表的內(nèi)容需要長(zhǎng)時(shí)間顯示,適用于引線總數(shù)較少的情況[9],故采用靜態(tài)正顯驅(qū)動(dòng),占空比1/1,偏壓1/1。偏光片采用全透模式。NT7063驅(qū)動(dòng)模塊一共有1個(gè)COM端,包括GND、VDD、DATA、CL1、CL2、M、BL+、BL-幾個(gè)引腳接口,其中每行中文句子為一個(gè)段落,與122個(gè)SEG端一一對(duì)應(yīng)相連。工作時(shí),LCD驅(qū)動(dòng)模塊與主控單片機(jī)通過(guò)DATA、CL1、CL2幾個(gè)接口進(jìn)行SPI通信,接收從單片機(jī)輸入的數(shù)據(jù)字符串,驅(qū)動(dòng)模塊再將字符串輸入LCD顯示存儲(chǔ)寄存器,就可以控制相映射段碼的顯示狀態(tài)。通過(guò)手機(jī)App上位控制,每次只改變一個(gè)段落的顯示狀態(tài),就可以達(dá)到句子逐行顯示的效果。BL+,BL-是LED背光源的接口。電路原理如圖4所示。
圖4 液晶顯示模塊電路原理圖
單片機(jī)主程序流程圖如圖5所示。采用外部事件中斷模式,上電后先初始化,然后進(jìn)入低功耗模式,等待外部事件(接收到來(lái)自手機(jī)App的指令)中斷喚醒。處理完該事件后,單片機(jī)繼續(xù)進(jìn)入低功耗模式。
數(shù)據(jù)傳輸是手機(jī)App與單片機(jī)直接能以一種可靠的方式進(jìn)行數(shù)據(jù)交換的重要環(huán)節(jié),因此兩者直接需要以一定的數(shù)據(jù)格式進(jìn)行數(shù)據(jù)的打包和解碼操作。根據(jù)本設(shè)計(jì)的需要,制定了如表2的數(shù)據(jù)收發(fā)格式。
表2 數(shù)據(jù)收發(fā)格式
圖5 單片機(jī)主程序流程圖
單片機(jī)首先根據(jù)從藍(lán)牙模塊轉(zhuǎn)發(fā)來(lái)的數(shù)據(jù)長(zhǎng)度找到校驗(yàn)符,對(duì)整條數(shù)據(jù)進(jìn)行校驗(yàn),再確認(rèn)數(shù)據(jù)正確后對(duì)命令字進(jìn)行判斷,根據(jù)命令字的內(nèi)容對(duì)控制數(shù)據(jù)做不同方式的解析,從而提取最終的控制數(shù)據(jù)來(lái)控制液晶屏段落的點(diǎn)亮和背光強(qiáng)度的控制。
由于微信小程序(以下簡(jiǎn)稱(chēng)小程序)具有跨機(jī)型的適配功能和完整的開(kāi)發(fā)框架,可以調(diào)用藍(lán)牙API接口實(shí)現(xiàn)與藍(lán)牙設(shè)備的數(shù)據(jù)傳輸[10],同時(shí)也可以調(diào)用語(yǔ)音識(shí)別接口實(shí)現(xiàn)語(yǔ)音的聽(tīng)寫(xiě)[11]。本文采用微信小程序v1.02開(kāi)發(fā)上位控制手機(jī)App(以下簡(jiǎn)稱(chēng)小程序)。小程序主要功能包括:通過(guò)藍(lán)牙命令收發(fā)數(shù)據(jù),控制屏幕句子逐行顯示,調(diào)節(jié)背光強(qiáng)度,語(yǔ)音識(shí)別閱讀內(nèi)容,收集分析閱讀數(shù)據(jù)。
小程序通過(guò)調(diào)用手機(jī)藍(lán)牙功能建立與單片機(jī)之間的藍(lán)牙通訊是實(shí)現(xiàn)上述功能、保證檢查儀屏幕正常顯示的關(guān)鍵。小程序啟動(dòng)后,會(huì)直接查詢(xún)已經(jīng)記憶MAC地址的藍(lán)牙設(shè)備,如果沒(méi)有已存在的記憶地址,或無(wú)法跟已記憶的建立連接,則進(jìn)入匹配狀態(tài),查詢(xún)附近處于廣播狀態(tài)的藍(lán)牙設(shè)備,獲取并解析其特征值。鑒權(quán)成功后,訂閱該設(shè)備以建立連接狀態(tài),同時(shí)小程序還會(huì)記憶該藍(lán)牙設(shè)備的MAC地址,以便下一次連接時(shí)直接訪問(wèn)。連接成功的小程序?qū)?huì)一直處于監(jiān)聽(tīng)狀態(tài)。當(dāng)操作小程序開(kāi)始進(jìn)行閱讀視力檢查時(shí),小程序按照表2格式,對(duì)需要顯示的液晶字符段落、背光強(qiáng)度等控制信息進(jìn)行整合之后調(diào)用藍(lán)牙通訊接口API將數(shù)據(jù)發(fā)送給藍(lán)牙模塊,藍(lán)牙模塊在接收到數(shù)據(jù)后將數(shù)據(jù)轉(zhuǎn)發(fā)給單片機(jī),單片機(jī)將段碼映射表中相應(yīng)的字符數(shù)值傳輸并寫(xiě)入檢查儀上的LCD顯示儲(chǔ)存器中,控制檢查儀逐行顯示相應(yīng)的段落的文字顯示。小程序與單片機(jī)之間建立藍(lán)牙通訊的邏輯流程圖如圖6所示。
圖6 小程序藍(lán)牙通訊流程圖
小程序總體流程圖如圖7所示。程序啟動(dòng)后,首先通過(guò)藍(lán)牙配對(duì)連接閱讀視力檢查儀,然后醫(yī)生選擇相應(yīng)的檢查項(xiàng)目,開(kāi)始對(duì)患者閱讀視力檢查。檢查中,要求受測(cè)者要又快又準(zhǔn)地閱讀文字,當(dāng)一行句子出現(xiàn)時(shí)程序便開(kāi)始計(jì)時(shí),受測(cè)者停止閱讀時(shí)結(jié)束計(jì)時(shí),程序通過(guò)調(diào)用語(yǔ)音識(shí)別接口聽(tīng)寫(xiě)閱讀內(nèi)容,以判斷受測(cè)者本行閱讀正確字?jǐn)?shù),醫(yī)生也可以手動(dòng)修改正確字?jǐn)?shù),或者手動(dòng)停止計(jì)時(shí),防止語(yǔ)音識(shí)別誤判。小程序每一次發(fā)送控制句子顯示的指令時(shí),只會(huì)開(kāi)關(guān)一行句子的顯示,以達(dá)到逐行顯示的效果。若受測(cè)者報(bào)告完全無(wú)法看清屏幕上顯示的文字,該次檢查結(jié)束,程序會(huì)分析數(shù)據(jù),生成結(jié)果圖表,并將結(jié)果表單及患者信息等發(fā)送至后臺(tái)服務(wù)器儲(chǔ)存。閱讀視力檢查儀處于閑置待機(jī)狀態(tài)時(shí),小程序還可以通過(guò)背光控制按鈕調(diào)節(jié)背光亮度以節(jié)省電量。
圖7 小程序總體流程圖
本設(shè)計(jì)尺寸結(jié)構(gòu)緊湊,長(zhǎng)寬高分別為25 cm,20 cm,3.5 cm。小數(shù)記錄2.0視力對(duì)應(yīng)的中文漢字視標(biāo)在日本PEAK帶刻度15倍放大鏡下可以清晰顯示,沒(méi)有鋸齒或污點(diǎn),筆段形變量小與1 μm,位置誤差小與5 μm。LED背光源的平均亮度約為300 cd/m2,達(dá)到閱讀視力表100 cd/m2以上的要求。本設(shè)計(jì)外觀如圖8所示,在15倍放大鏡下顯示效果如圖9所示。其中“她們?cè)谏砗罅粝聢?jiān)實(shí)的腳印”、“我們都來(lái)畫(huà)一畫(huà)家鄉(xiāng)的景物”、“隊(duì)員們脫去了厚厚的防寒服”分別對(duì)應(yīng)小數(shù)記錄視力1.25,1.6,2.0下的視標(biāo)。小程序部分界面截圖如圖10所示。其中圖10(a)是小程序主界面截圖,從上到下依次是別光亮度調(diào)節(jié)按鈕,用戶(hù)名輸入框,閱讀視力表類(lèi)型選擇按鈕,開(kāi)始按鈕,藍(lán)牙連接按鈕,近視力表展示按鈕,ABC表展示按鈕。圖10(b)是進(jìn)行閱讀視力檢查過(guò)程中的頁(yè)面截圖,由上到下依次是倒計(jì)時(shí)框,指導(dǎo)語(yǔ),計(jì)時(shí)器,手動(dòng)停止按鈕,錯(cuò)誤個(gè)數(shù)選擇框,以及提交按鈕。圖10(c)是結(jié)束當(dāng)前檢查后,結(jié)果呈現(xiàn)頁(yè)面的截圖。包含檢查結(jié)果折線圖以及完成每個(gè)句子時(shí)記錄的錯(cuò)誤個(gè)數(shù),閱讀時(shí)間等數(shù)據(jù)。
圖8 閱讀視力檢查儀實(shí)物圖
圖10 小程序部分程序界面
圖9 十五倍放大鏡下最小漢字視標(biāo)
20名18~25歲視力正常的在校大學(xué)生在知情同意的前提下自愿參加了閱讀視力檢查測(cè)試。測(cè)試前,先對(duì)每位大學(xué)生進(jìn)行了裸眼或矯正視力檢查,20名學(xué)生裸眼或矯正視力均在4.6~5.0之間,無(wú)眼科病史。閱讀視力表具有ABC 3種平行測(cè)驗(yàn),每位學(xué)生都以隨機(jī)的順序進(jìn)行了測(cè)試,以排除練習(xí)效應(yīng)帶來(lái)的影響。且在前一張視力表測(cè)試完,下一張視力表測(cè)試開(kāi)始前會(huì)給每位學(xué)生2分鐘的放松時(shí)間,緩解眼部疲勞,以排除疲勞效應(yīng)對(duì)實(shí)驗(yàn)結(jié)果的影響。受測(cè)者的數(shù)據(jù)以:“編號(hào)-年齡-性別-視力-句子編號(hào)-對(duì)應(yīng)尺寸-錯(cuò)誤個(gè)數(shù)-閱讀時(shí)間-閱讀個(gè)數(shù)”的格式進(jìn)行收集,使用SPSS軟件分析結(jié)果如下表3所示。
表3 閱讀視力檢查表ABC的相關(guān)性
數(shù)據(jù)分析結(jié)果顯示,表A與表B之間的相關(guān)系數(shù)高0.817,表A與表C之間的系數(shù)為0.794,表B與表C之間的相關(guān)系數(shù)為0.791,三張表格之間的測(cè)試結(jié)果均為高相關(guān)。表明儀器的數(shù)據(jù)記錄穩(wěn)定可靠,符合檢查標(biāo)準(zhǔn)。3個(gè)平行測(cè)驗(yàn)的一致性信度高。
閱讀視力檢查儀硬件結(jié)構(gòu)簡(jiǎn)單,采用極高分辨率的定制段式液晶顯示模塊,顯示效果良好;基于藍(lán)牙通信和手機(jī)APP對(duì)中文閱讀視力表進(jìn)行控制,具有測(cè)試方便、自動(dòng)分析檢查結(jié)果等齊全的功能。且產(chǎn)品的適用性強(qiáng),具有較大的拓展空間,將來(lái)可以用于繁體中文、英文以及其他語(yǔ)言版本的閱讀視力自動(dòng)檢查。測(cè)試結(jié)果表明,符合視力檢查標(biāo)準(zhǔn)、達(dá)到設(shè)計(jì)開(kāi)發(fā)要求。為普通人和低視力患者的閱讀視力檢查提 供了準(zhǔn)確且方便快捷的途徑,具有向醫(yī)院和普通家庭推廣的良好前景。本研究仍有一定的欠缺,將來(lái)進(jìn)一步研究可以聚焦于收集正常視力人群和低視力人群的閱讀視力數(shù)據(jù)常模,在視力疾病早期篩查,視力康復(fù)治療領(lǐng)域的效果比較方面具有良好的推廣前景。