周 健,徐興潔,周厚明
(貴州醫(yī)科大學(xué) 生物與工程學(xué)院,貴陽(yáng) 550000)
新冠病毒感染疫情下,各地區(qū)學(xué)生在家“上網(wǎng)課”已成主流。大范圍的“云端”教學(xué),對(duì)兒童青少年近視防控工作提出極大的挑戰(zhàn)?!毒C合防控兒童青少年近視實(shí)施方案》中提出了階段性的防控工作對(duì)象,分別針對(duì)家庭、學(xué)校和學(xué)生等不同的主體實(shí)施近視的防控舉措?;诖朔揽爻晒鸵咔橛醚蹘淼娜绿魬?zhàn),《兒童青少年近視防控光明行動(dòng)工作方案(2021—2025 年)》發(fā)布,促進(jìn)兒童和青少年視覺健康預(yù)防和控制,足以說明國(guó)家對(duì)于兒童和青少年的高度重視。2022 年“兩會(huì)”上,視覺健康的話題更是被反復(fù)提及,全民視覺健康已上升為國(guó)家戰(zhàn)略關(guān)注的高度,全方位、全流程、全周期地做好眼病防治工作具有十分重要的意義[1]。
在此情況下,急需設(shè)計(jì)一種可以對(duì)視力進(jìn)行全方位保護(hù)的體系,以科學(xué)有效的方式使兒童和青少年學(xué)習(xí)環(huán)境得到最大限度的提升。本實(shí)用新型保護(hù)系統(tǒng)對(duì)學(xué)習(xí)環(huán)境進(jìn)行實(shí)時(shí)探測(cè),在準(zhǔn)時(shí)提醒使用者戶外運(yùn)動(dòng)及適時(shí)休息的情況下,對(duì)視力狀況進(jìn)行實(shí)時(shí)監(jiān)控。最終在可以幫助兒童青少年在保護(hù)視力、維護(hù)身體健康的前提下,高效地學(xué)習(xí),做到勞逸結(jié)合[2]。
該系統(tǒng)針對(duì)全國(guó)范圍內(nèi)每天都要閱讀和書寫的兒童及青少年,采用嵌入式技術(shù)、通信技術(shù),設(shè)計(jì)了一套集提醒與監(jiān)控功能于一體的視力保護(hù)方式,為兒童及青少年提供視力預(yù)防及保護(hù)。根據(jù)智能視力保護(hù)系統(tǒng)實(shí)現(xiàn)的特定功能及應(yīng)用場(chǎng)景,構(gòu)建該系統(tǒng)硬件平臺(tái)時(shí)需考慮如下幾個(gè)方面:硬件總體占用空間盡量小,功耗較低,運(yùn)行穩(wěn)定,操作方便。與傳統(tǒng)保護(hù)視力產(chǎn)品相比功能更豐富,使用體驗(yàn)感更強(qiáng)。
該系統(tǒng)以STM32 單片機(jī)為核心控制單元,設(shè)計(jì)多功能視力保護(hù)器,利用光敏電阻獲取光線信號(hào),利用超聲波傳感器獲取人眼與書本之間的距離,同時(shí)該系統(tǒng)的內(nèi)部時(shí)鐘能夠自動(dòng)計(jì)時(shí)并最終在TFT LCD 中實(shí)時(shí)地顯示光強(qiáng)、距離、時(shí)間和日期,如圖1 所示。在其中任一參數(shù)未達(dá)到設(shè)定值的情況下,系統(tǒng)會(huì)自動(dòng)進(jìn)行未達(dá)到項(xiàng)目的語(yǔ)音提示或蜂鳴報(bào)警。例如,按標(biāo)準(zhǔn)把用眼距離的設(shè)定值設(shè)定在33 cm 以上,在檢測(cè)到用眼距離小于33 cm的情況下,系統(tǒng)會(huì)發(fā)出“你學(xué)得太近了,請(qǐng)把它調(diào)正,然后接著學(xué)”的語(yǔ)音提示。如果用戶在5 min 之內(nèi)未進(jìn)行相應(yīng)調(diào)整,則蜂鳴器發(fā)出蜂鳴聲,再一次提示用戶。按照標(biāo)準(zhǔn)配置用眼時(shí)長(zhǎng)為180 min,其中45 min 內(nèi)進(jìn)行中間休息效果最好,每45 min 就會(huì)有語(yǔ)音提醒使用者注意休息或進(jìn)行戶外運(yùn)動(dòng)。用眼環(huán)境光強(qiáng)值在200~400 lux范圍內(nèi)最好,大于閾值時(shí)進(jìn)行語(yǔ)音提示[3]。
圖1 系統(tǒng)總體設(shè)計(jì)框圖
根據(jù)用戶和實(shí)際需要,在易用性,I/O 接口個(gè)數(shù),系統(tǒng)功耗和主頻方面綜合考慮后最終選用ST 公司生產(chǎn)的STM32F407ZGT6 為主控芯片。該芯片采用ARM Cortex M4 內(nèi)核,1 024 KB FLASH,主頻高達(dá)168 MHz。擁有3 個(gè)12 位的模數(shù)轉(zhuǎn)換器(ADC),2 個(gè)12 位數(shù)模轉(zhuǎn)換器(DAC),2 個(gè)16 路直接存取(DMA)控制器,17個(gè)定時(shí)器,1 個(gè)內(nèi)存卡接口(SDIO),3 個(gè)集成電路總線(IIC),6 個(gè)串口,1 個(gè)帶日歷功能的時(shí)鐘源(RTC),1 個(gè)靜態(tài)存儲(chǔ)器控制器(FSMC)接口等。通過對(duì)相關(guān)信息的調(diào)閱,本芯片可以高效率地完成本設(shè)計(jì)中所有的功能。
社會(huì)在不斷發(fā)展,人們的需求在不斷變化,超聲波作為非接觸檢測(cè)技術(shù)在設(shè)計(jì)上更加精密,在應(yīng)用上更加廣泛,其不會(huì)受到光線、被測(cè)物體色彩等因素的干擾。并且測(cè)量非常準(zhǔn)確,極其便利,簡(jiǎn)便易行,運(yùn)行穩(wěn)定,傳輸速度高。所述超聲波傳感器包括用于發(fā)射超聲波的發(fā)射器,用于探測(cè)物體物理物體反射波的接收器,控制電路及電源電路。本設(shè)計(jì)中使用的HC-SR04 超聲波測(cè)距模塊能夠提供2~400 cm 非接觸式距離感測(cè),測(cè)距精度能夠達(dá)到3 mm 以上?;竟ぷ髟淼热缦隆?/p>
1)利用I/O 口Trig 觸發(fā)測(cè)距并為測(cè)距提供至少10 us 高電平信號(hào)。
2)該模塊對(duì)8 個(gè)40 kHz 方波進(jìn)行自動(dòng)發(fā)射并自動(dòng)檢測(cè)有無信號(hào)返回。
3)有信號(hào)返回時(shí),本模塊信號(hào)接收引腳(Echo)的I/O 口處于高電平,而STM32 內(nèi)定時(shí)器則開始計(jì)時(shí),高電平的持續(xù)時(shí)間即超聲波由發(fā)射至返回。試驗(yàn)距離=(高電平時(shí)間×聲速(340 m/s))/2;為提高測(cè)量精度,在θ不容忽視的情況下,如圖2 所示。
圖2 超聲波測(cè)距原理
綜合考慮,選擇HC-SR04 為該系統(tǒng)測(cè)距模塊,其既具有較高性價(jià)比又能夠最大限度滿足系統(tǒng)設(shè)計(jì)需要。
該系統(tǒng)采用光敏二極管(光敏電阻)作為光敏傳感器,對(duì)光的變化非常敏感,其功能類似于檢測(cè)開關(guān)。在沒有光照的情況下,會(huì)出現(xiàn)一個(gè)小飽和反向漏電流或暗電流,這時(shí)光敏二極管就會(huì)截止。在光照條件下,飽和反向漏電流顯著增大并形成了光電流,光電流隨著入射光的強(qiáng)度發(fā)生變化。當(dāng)光照射到傳感器上形成空間電荷區(qū)(PN 結(jié)),能在PN 結(jié)內(nèi)形成電子-空穴對(duì),從而提高了少量載流子密度。這些載流子受到反向電壓的作用會(huì)發(fā)生漂移從而導(dǎo)致反向電流的增大。因此,光照強(qiáng)弱可用于改變電路電流。利用這種電流變化,串上電阻便可換算成電壓變化來由ADC 讀出電壓值來判斷外界光線強(qiáng)度,然后將其轉(zhuǎn)換并比對(duì)設(shè)置的標(biāo)準(zhǔn)閾值,大于閾值則觸發(fā)語(yǔ)音提醒[4]。
模塊主要包括智能語(yǔ)音提示和蜂鳴報(bào)警2 個(gè)部分。語(yǔ)音提示模塊使用ES8388 芯片進(jìn)行設(shè)計(jì),主要包括高性能低功耗高性價(jià)比音頻編解碼器、麥克風(fēng)放大器、耳機(jī)放大器、數(shù)字音效及模擬混合與增益功能等。ES8388 控制采用I2S 接口與微控制單元(MCU)傳輸音頻數(shù)據(jù),并采用兩、三線接口方式配置。本實(shí)用新型系統(tǒng)可以對(duì)事先產(chǎn)生的WAV 語(yǔ)音提示文件進(jìn)行有效解析,并在單片機(jī)控制下及時(shí)提示使用者應(yīng)該休息或移動(dòng)。
另外,蜂鳴器為電子訊響器一體化結(jié)構(gòu),由直流電壓提供電源,在計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器和電子玩具等設(shè)備中應(yīng)用十分廣泛;并在汽車電子設(shè)備、電話機(jī)、定時(shí)器及其他電子產(chǎn)品中作為發(fā)聲器件使用。本設(shè)計(jì)使用了有源蜂鳴器,當(dāng)語(yǔ)音提示5 min中未進(jìn)行相應(yīng)調(diào)節(jié)時(shí),用戶會(huì)發(fā)出蜂鳴聲,再次提醒用戶進(jìn)行調(diào)節(jié)。
近年來,TFT LCD 在嵌入式系統(tǒng)上的應(yīng)用日益廣泛。本次設(shè)計(jì)所使用的電容式TFT LCD,其功能完善、觸感良好、不需要校準(zhǔn)、透光性強(qiáng),支持多點(diǎn)觸摸,人機(jī)交互體驗(yàn)感非常強(qiáng)。為了節(jié)省開發(fā)成本,2.8 英寸(1 英寸等于2.54 cm)TFTLCD 模塊完全可以滿足系統(tǒng)設(shè)計(jì)要求,支持65 K 色顯示、320×240 顯示分辨率、16 位8080 并口接口,自帶觸摸功能。用戶在選擇學(xué)習(xí)模式后可在屏幕上實(shí)時(shí)顯示超聲波測(cè)距的真實(shí)數(shù)值、真實(shí)使用時(shí)長(zhǎng)、真實(shí)光照強(qiáng)度及相應(yīng)閾值和當(dāng)前日期等信息。同時(shí),在該系統(tǒng)中設(shè)置了3 個(gè)單獨(dú)的按鍵來調(diào)整,其中1 個(gè)為復(fù)位鍵,1 個(gè)為加運(yùn)算鍵和1 個(gè)為減運(yùn)算鍵。用戶在45 min 內(nèi)可按需自由設(shè)定學(xué)習(xí)時(shí)長(zhǎng)。另外,若用戶所選模式為視力檢測(cè)模式,則在屏幕上顯示視力表標(biāo)準(zhǔn)圖標(biāo)進(jìn)行檢測(cè),并在檢測(cè)結(jié)束時(shí)將檢測(cè)結(jié)果顯示出來。模塊連接如圖3 所示。
圖3 顯示模塊硬件連接
該設(shè)計(jì)外圍電路設(shè)計(jì)主要有接口連接電路、觸發(fā)電路和同步電路。接通電源后系統(tǒng)即在通電狀態(tài)下工作,亦能正常工作,并在低電壓時(shí)工作。另外,出于對(duì)環(huán)保的考慮,沒有選擇電池供電而是選擇了5 V 電源,并且利用常見的安卓系統(tǒng)數(shù)據(jù)線就可以為系統(tǒng)提供電源。
本設(shè)計(jì)調(diào)試所用STM32F407ZGT6 單片機(jī)系統(tǒng),程序設(shè)計(jì)的基本任務(wù)是對(duì)操作系統(tǒng)單片機(jī)內(nèi)部硬件資源進(jìn)行合理利用,對(duì)其有關(guān)應(yīng)用程序進(jìn)行了編程,通過與邏輯運(yùn)算相結(jié)合,對(duì)內(nèi)部單片機(jī)內(nèi)部I/O 及硬件資源進(jìn)行了重新調(diào)配。編程中具體的設(shè)計(jì)思路為:首先將單片機(jī)主要應(yīng)用程序設(shè)計(jì)定下來;其次,針對(duì)各軟、硬件及電路模塊基本功能與要求分別設(shè)計(jì)軟、硬件及子程序;最后,各部分軟、硬件及子程序被直接植入主應(yīng)用程序。系統(tǒng)應(yīng)用程序設(shè)計(jì)與編寫及單片機(jī)軟件設(shè)計(jì)都是用簡(jiǎn)單C 語(yǔ)言來完成的,C 語(yǔ)言應(yīng)用程序設(shè)計(jì)中可以用簡(jiǎn)化編程的方法使之快速、最大限度地為人了解并得到使用者的認(rèn)可,運(yùn)行起來也能快速上手。主程序工作流程如圖4 所示。
圖4 系統(tǒng)軟件工作流程
該系統(tǒng)利用ADC 模數(shù)轉(zhuǎn)換器將光敏電阻傳感器從光線環(huán)境中反饋的電阻值、對(duì)應(yīng)生成的電壓值變換為數(shù)字信號(hào)輸出給單片機(jī)STM32,最后通過預(yù)置光照檢測(cè)標(biāo)準(zhǔn)值針對(duì)工作狀態(tài)光線環(huán)境進(jìn)行判斷,如果未滿足預(yù)設(shè)范圍值,系統(tǒng)發(fā)出報(bào)警提示[5]。
系統(tǒng)初始化超聲波測(cè)距模塊,通過STM32 承擔(dān)與超聲波傳感器端口相連,并將2 個(gè)指定頻率信號(hào)輸出到超聲波傳感器“控制端”界面,程序?qū)纹瑱C(jī)設(shè)置的超聲波定時(shí)器信號(hào)送給單片機(jī)開始工作,使其從此自動(dòng)計(jì)時(shí)單片機(jī)及超聲波傳感器由要求發(fā)出至回來的時(shí)刻及頻率。經(jīng)檢測(cè)獲得單片機(jī)及超聲波傳感器由請(qǐng)求并返回定時(shí)信號(hào),單片機(jī)及超聲波傳感器控制“接收端”界面檢測(cè)到輸出低電平后,由單片機(jī)開始立即外部中斷請(qǐng)求相應(yīng)定時(shí)模式,而負(fù)責(zé)此聲波測(cè)距模塊自動(dòng)計(jì)數(shù)的超聲波定時(shí)器自動(dòng)計(jì)數(shù)系統(tǒng)運(yùn)行至此完成。所需的超聲波距離值,則由負(fù)責(zé)定時(shí)器進(jìn)行自動(dòng)計(jì)算,并顯示于畫面。當(dāng)聲波距離傳感器檢測(cè)值低于自動(dòng)計(jì)數(shù)程序設(shè)定值時(shí),系統(tǒng)發(fā)出報(bào)警信號(hào)進(jìn)行提示[6]。
對(duì)模塊進(jìn)行編程,使定時(shí)器計(jì)時(shí)到達(dá)45 min 時(shí)進(jìn)行報(bào)警提示。先初始化定時(shí)器,當(dāng)定時(shí)器處于閑置狀態(tài)時(shí),使定時(shí)器開啟定時(shí)功能,若這個(gè)定時(shí)器被打斷,在其執(zhí)行對(duì)應(yīng)數(shù)量的打斷后到達(dá)1 s,然后以秒變量增加至60 s,即1 min,這時(shí)分鐘亦逐次向上增加,直至45 min,即至程序設(shè)定值時(shí)電路報(bào)警。
本設(shè)計(jì)使用了國(guó)家標(biāo)準(zhǔn)視力表進(jìn)行檢測(cè),在進(jìn)入視力檢測(cè)模式時(shí)通過對(duì)圖標(biāo)“E”開口方向進(jìn)行判斷以反映視力狀況,TFT LCD 顯示屏隨機(jī)產(chǎn)生視力表中的4 個(gè)不同開口方向的圖標(biāo)“E”,屏幕右下方顯示上下左右4 個(gè)按鈕,當(dāng)使用者判斷出清晰可見的字母開口方向時(shí),單擊對(duì)應(yīng)的屏幕按鈕。然后,單片機(jī)把得到的鍵值和程序內(nèi)視力表數(shù)組比較,如果用戶回答正確,則自動(dòng)產(chǎn)生下一圖標(biāo)進(jìn)行比較,如果用戶誤判,程序自動(dòng)對(duì)標(biāo)志位進(jìn)行記錄1 次,首次出現(xiàn)相同行次答錯(cuò)數(shù)超過3 次時(shí),回到前一行次繼續(xù)進(jìn)行檢測(cè),若下一行次再次出現(xiàn)判斷錯(cuò)誤數(shù)超過3 次,系統(tǒng)將該行次視力值記錄并顯示于屏幕。
單片機(jī)本能的運(yùn)行狀態(tài)是中斷,中斷是在整個(gè)程序運(yùn)行過程中,忽然碰到某一個(gè)程序有棘手問題要解決,正在執(zhí)行任務(wù)的項(xiàng)目將馬上中止任務(wù),首先去處理突發(fā)狀況項(xiàng)目,處理完畢后回到暫停執(zhí)行的項(xiàng)目繼續(xù)執(zhí)行。其中既有內(nèi)部中斷,也有外部中斷。STM32 中斷源產(chǎn)生中斷信號(hào),提交給向量中斷器(NVIC),經(jīng)過判斷處理后將指令傳遞給CPU 執(zhí)行。
系統(tǒng)軟件與硬件全部設(shè)計(jì)完畢之后以Keil uVision5 為編程環(huán)境對(duì)編寫的程序文件進(jìn)行HEX 格式的轉(zhuǎn)換,然后在單片機(jī)上進(jìn)行燒錄,采用STLINK 仿真器對(duì)各模塊進(jìn)行了仿真研究,對(duì)系統(tǒng)的運(yùn)行效率和穩(wěn)定性進(jìn)行了觀測(cè),并對(duì)各模塊做了優(yōu)化和調(diào)整,最終觀測(cè)到了系統(tǒng)的總體運(yùn)行狀態(tài),從而實(shí)現(xiàn)了視力保護(hù),實(shí)現(xiàn)視力檢測(cè)等各項(xiàng)指標(biāo)的監(jiān)測(cè)。
為了驗(yàn)證系統(tǒng)的功能實(shí)現(xiàn),對(duì)系統(tǒng)進(jìn)行實(shí)際測(cè)試并在上電后輸入系統(tǒng)初始界面單擊選擇學(xué)習(xí)方式,學(xué)習(xí)時(shí)間定為10 min,用眼距離定為33 cm,光線范圍定為200~400 lux。試驗(yàn)結(jié)束時(shí),系統(tǒng)發(fā)現(xiàn)對(duì)應(yīng)模塊數(shù)值超出范圍時(shí)均有智能語(yǔ)音提醒,未做調(diào)整時(shí)間超過5 min 時(shí)系統(tǒng)會(huì)自動(dòng)蜂鳴報(bào)警。點(diǎn)選視力檢測(cè)模式,當(dāng)用眼距離、光照不在正常值范圍內(nèi)時(shí),語(yǔ)音提示測(cè)試環(huán)境不佳。經(jīng)調(diào)整后,正常進(jìn)入視力檢測(cè),屏幕上的測(cè)試圖標(biāo)顯示的大小及順序均正常,最終測(cè)得的左右眼視力檢測(cè)值分別為左眼5.1、右眼5.3。
本研究通過分析現(xiàn)有兒童青少年視力狀況以及視力障礙產(chǎn)生的共同原因,從硬件與軟件兩方面進(jìn)行設(shè)計(jì)。本系統(tǒng)不但可以實(shí)現(xiàn)學(xué)習(xí)環(huán)境、用眼距離和學(xué)習(xí)時(shí)間等信息的實(shí)時(shí)監(jiān)控,并且實(shí)時(shí)校正無意識(shí)發(fā)生的不良用眼習(xí)慣,而且還可以實(shí)現(xiàn)沒有專業(yè)人員時(shí)使用者可以獨(dú)立檢測(cè)其視力變化,并做出及時(shí)調(diào)整,功能非常豐富,且STM32 系統(tǒng)工作穩(wěn)定,可以幫助兒童和青少年更好地保護(hù)視力,顯著降低近視率和視力障礙率,有較大的推廣應(yīng)用價(jià)值。缺點(diǎn)是各模塊聯(lián)合檢測(cè)精度有待提高,同時(shí)希望該系統(tǒng)能夠?qū)崿F(xiàn)與用戶監(jiān)護(hù)人的聯(lián)合使用,有望實(shí)現(xiàn)視力檢測(cè)數(shù)據(jù)的實(shí)時(shí)傳輸,同時(shí)做到讓監(jiān)護(hù)人及青少年兒童共同保護(hù)視力。