程 慧,孫納新,鄭晶晶,霍柄良
(武警后勤學(xué)院基礎(chǔ)部信息技術(shù)教研室,天津300309)
隨著社會(huì)的發(fā)展和電子產(chǎn)品的長時(shí)間使用,人們用眼的時(shí)間也越來越長[1]。2016 年《國民視覺健康》白皮書發(fā)布的數(shù)據(jù)顯示,2012 年我國5 歲以上人群中,約有5 億人患有各種視覺障礙,其中近視患者總數(shù)達(dá)到4.5 億左右。如果沒有有效的措施干預(yù),到2020 年,中國5 歲以上人群近視患病率將提高至51%左右,近視人數(shù)也將達(dá)到近7 億。現(xiàn)有市場上的護(hù)眼方式可以分為2 類:一類偏向治療方向,比如口服藥[2]、按摩儀[3]、近視矯正手術(shù)等;另一類偏向緩解方向,比如護(hù)眼燈、護(hù)眼眼貼、眼藥水等。但是這些護(hù)眼方式主要針對視后緩解用眼過程中的疲勞及對近視的治療,不能從根本上解決用眼習(xí)慣不正確導(dǎo)致的近視問題。
目前,隨著科技水平的進(jìn)步,測距手段和方式越來越豐富,主要有微波測距、激光測距、輻射測距、超聲波測距等。而超聲波測距因其安全性、穩(wěn)定性被更多的測距產(chǎn)品所使用,廣泛應(yīng)用于農(nóng)業(yè)、醫(yī)學(xué)、工業(yè)之中,但與藍(lán)牙技術(shù)相結(jié)合實(shí)時(shí)進(jìn)行視力保護(hù)和預(yù)防的產(chǎn)品卻很少。因此,本文從預(yù)防近視的根源出發(fā),設(shè)計(jì)一種基于單片機(jī)的護(hù)眼測距眼鏡,同時(shí)與手機(jī)Android 系統(tǒng)的App 相連接,通過測距及實(shí)時(shí)提醒,從根源上來幫助用戶矯正用眼習(xí)慣,保護(hù)視力。
近視形成的主要原因之一是長時(shí)間、近距離地使用眼睛,導(dǎo)致眼球中睫狀肌失去彈性,從而影響晶狀體正?;謴?fù)[4]。睫狀肌是眼睛中可以改變晶狀體形狀,以調(diào)節(jié)物品對焦距離的肌肉組織。長時(shí)間、近距離用眼容易使睫狀肌缺乏鍛煉,導(dǎo)致持續(xù)緊張或痙攣而失去靈活的自我調(diào)節(jié)能力,引發(fā)近視[5]。因此,減少近距離用眼是預(yù)防近視發(fā)生的重要手段。當(dāng)書本與眼睛的距離長時(shí)間處于10 cm 以下時(shí),就會(huì)使得眼睛的自我調(diào)節(jié)異常緊張,從而形成近視。所以在日常的工作、學(xué)習(xí)中,需要且有必要實(shí)時(shí)了解眼睛與書本之間的距離,及時(shí)調(diào)整用眼姿勢,養(yǎng)成良好的用眼習(xí)慣,從而降低近視的發(fā)生率。
針對人們對自身用眼距離的檢測需求,本文設(shè)計(jì)了一個(gè)智能護(hù)眼測距眼鏡,主要采用STC89C51單片機(jī)作為系統(tǒng)主控單元,通過超聲波測距模塊測量距離數(shù)據(jù),并將數(shù)據(jù)實(shí)時(shí)發(fā)送至手機(jī)端App,從而作出提醒和數(shù)據(jù)分析。該眼鏡可以實(shí)時(shí)記錄采集的數(shù)據(jù),并對距離進(jìn)行實(shí)時(shí)監(jiān)控。當(dāng)用戶獲得自身的數(shù)據(jù)后便可以采取相應(yīng)的措施調(diào)整用眼習(xí)慣。智能護(hù)眼測距眼鏡示意圖如圖1 所示。
圖1 智能護(hù)眼測距眼鏡
智能護(hù)眼測距眼鏡主要使用超聲波測距技術(shù),核心是在單片機(jī)上開發(fā)測距系統(tǒng),使得智能眼鏡具有測距與報(bào)警的功能。基于單片機(jī)的超聲波測距系統(tǒng)的工作原理是利用超聲波發(fā)射器進(jìn)行超聲波發(fā)射,并進(jìn)行計(jì)時(shí),當(dāng)超聲波遇到書本等物品時(shí)發(fā)生反射,記錄反射的回波到達(dá)超聲波發(fā)射器的時(shí)間t,則可得出智能眼鏡與書本之間的距離為H=340t/2。超聲波在穩(wěn)定的溫度狀態(tài)下速度保持為常數(shù),因此,能夠保證距離測量結(jié)果的準(zhǔn)確性。
智能護(hù)眼測距眼鏡主要具有實(shí)時(shí)監(jiān)測、數(shù)據(jù)回顧、智能分析、知識(shí)科普、互動(dòng)分享等功能。
(1)實(shí)時(shí)監(jiān)測。使用超聲波測距模塊測量距離數(shù)值,將實(shí)時(shí)數(shù)據(jù)在App 中顯示,用戶可以隨時(shí)隨地查看。并且當(dāng)連續(xù)10 次測量值的數(shù)據(jù)都在紅線以下時(shí),App 會(huì)彈出推送窗口,同時(shí)觸發(fā)手機(jī)振動(dòng),提示用戶調(diào)整眼鏡與書本等物品之間的距離。
(2)數(shù)據(jù)回顧。超聲波測距模塊將收集到的數(shù)據(jù)通過藍(lán)牙串口模塊傳送至手機(jī)App 端,以折線圖的形式展現(xiàn)在App 中,用戶可以在折線圖上查看一段時(shí)間內(nèi)的測量值,了解這段時(shí)間的用眼習(xí)慣。同時(shí)設(shè)計(jì)了一條紅線,紅線以下的數(shù)據(jù)是非健康的用眼習(xí)慣數(shù)據(jù),紅線以上是健康用眼習(xí)慣數(shù)據(jù)。
(3)智能分析。將測量出的數(shù)據(jù)進(jìn)行自動(dòng)分類,分為健康數(shù)據(jù)和非健康數(shù)據(jù)。健康數(shù)據(jù)所占數(shù)據(jù)總數(shù)量的百分比作為當(dāng)日評分,健康數(shù)據(jù)與非健康數(shù)據(jù)的比例關(guān)系以圓餅圖的形式展現(xiàn)在App 上,并按照分值給予合理化建議。
(4)知識(shí)科普。收集和整理與用眼健康有關(guān)的科普文章加入到“知識(shí)”標(biāo)簽中,并定期進(jìn)行補(bǔ)充和更新。
(5)互動(dòng)分享。為增加用戶體驗(yàn),在分析界面的右上角加入了分享按鈕,允許用戶把當(dāng)日用眼評分分享給微信好友,發(fā)布到朋友圈、微博等社交平臺(tái),增強(qiáng)用戶之間的互動(dòng)性,增加應(yīng)用程序的趣味性。
智能護(hù)眼測距眼鏡硬件主要由STC89C51 單片機(jī)、超聲波測距模塊、藍(lán)牙串口模塊組成。
STC89C51 是一款基于8 位核心處理芯片STC89-C51RC 的單片機(jī)系統(tǒng)[6],供電電壓為3.8~5.5 V,同時(shí)具有4 KB 的FLASH 存儲(chǔ)器與512 B 的內(nèi)部存儲(chǔ)器。其集成了豐富的片內(nèi)外設(shè),比如UART(universal asynchronous receiver/transmitter)通用異步通信口、定時(shí)器、PDIP(plastic dual in-line package)引腳等,具有速度快、低功耗等優(yōu)點(diǎn)。STC89C51 單片機(jī)完整電路圖如圖2 所示。
圖2 單片機(jī)電路圖
超聲波測距模塊電壓為DC 5 V,采用VCC、TRIG(脈沖觸發(fā)引腳)、ECHO(回波引腳)、GND 的接線方式,可探測距離為2~450 cm[7],感應(yīng)角度不大于15°。采用渡越時(shí)間(time of flight,TOF)法發(fā)射換能器啟動(dòng)后,向某一方向發(fā)送超聲波,同時(shí)啟動(dòng)計(jì)時(shí)器開始計(jì)時(shí)。超聲波在傳輸過程中遇到障礙物會(huì)被反射,接收換能器接收反射回的超聲波并停止計(jì)時(shí)。在實(shí)際運(yùn)用中,該模塊采用IO 口觸發(fā)測距,賦予至少10 μs的高電平信號(hào)。該模塊自動(dòng)發(fā)送8 個(gè)40 kHz 的方波,自動(dòng)檢測是否有信號(hào)返回。若有信號(hào)返回,通過IO 口ECHO 輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間[8],從而得出測試距離為高電平的時(shí)間與超聲波傳播速度(340 m/s)乘積的一半。超聲波測距模塊原理圖如圖3 所示。
鑒于目前藍(lán)牙技術(shù)已經(jīng)成為物聯(lián)網(wǎng)體系框架中的核心技術(shù),藍(lán)牙串口模塊采用以藍(lán)牙V2.0 協(xié)議為主體的芯片。其工作電壓為3.6~6 V,默認(rèn)波特率為9 600 bit/s。在數(shù)據(jù)傳輸方面,采用支持Android 系統(tǒng)的開源組件Bluetoothspp。該模塊采用單微控制器模式,即藍(lán)牙底層傳輸協(xié)議和高層傳輸協(xié)議以及用戶應(yīng)用程序都集成到該模塊中,整個(gè)處理過程由該模塊中的微處理器來實(shí)現(xiàn)[9]。
圖3 超聲波測距模塊原理圖
考慮到C 語言在復(fù)雜算法的使用中有很高的優(yōu)勢,因此測距軟件部分采用C 語言編程。之后使用STC-ISP 軟件將單片機(jī)程序燒寫進(jìn)單片機(jī)中。App的開發(fā)采用Android Studio IDE 開發(fā)環(huán)境,將Java 語言作為主要編程語言。該開發(fā)環(huán)境對UI 界面設(shè)計(jì)和編寫代碼更加友好。
4.2.1 App 軟件程序設(shè)計(jì)
超聲波測距模塊測量距離并將數(shù)據(jù)傳輸至單片機(jī),經(jīng)單片機(jī)處理后通過藍(lán)牙串口模塊發(fā)送至App端。App 端接收數(shù)據(jù),并調(diào)用數(shù)據(jù)進(jìn)行分析。如果距離低于10 cm,則調(diào)用Object 函數(shù),觸發(fā)手機(jī)振動(dòng),同時(shí)出現(xiàn)提示對話框,提醒用戶注意調(diào)整用眼距離。App 軟件程序設(shè)計(jì)的流程如圖4 所示。
圖4 App 軟件程序設(shè)計(jì)流程圖
4.2.2 單片機(jī)測距程序設(shè)計(jì)
單片機(jī)測距程序啟動(dòng)超聲波測距模塊測量距離,利用單片機(jī)發(fā)送聲波、監(jiān)測發(fā)射和接收信號(hào),并以cm 為單位,計(jì)算發(fā)射信號(hào)與接收信號(hào)之間的時(shí)間間隔,結(jié)合超聲波傳播速度從而得出距離。為防止距離過遠(yuǎn)和重新開始測距,主要設(shè)計(jì)T0、T1 2 個(gè)中斷參數(shù)來控制中斷系統(tǒng)。若測試距離過遠(yuǎn),則打開T0中斷,提示溢出;T1 中斷參數(shù)用來控制每次測量之間的時(shí)間間隔,設(shè)置800 ms 開始下一次測量。
4.2.3 調(diào)用數(shù)據(jù)程序設(shè)計(jì)
藍(lán)牙串口模塊在啟動(dòng)之后一直處于隨時(shí)偵聽、建立連接狀態(tài),當(dāng)單片機(jī)啟動(dòng)超聲波測距模塊測量數(shù)據(jù)之后,由該模塊進(jìn)行數(shù)據(jù)傳送。該模塊設(shè)計(jì)每3 s讀取一次藍(lán)牙數(shù)據(jù),每5 s 接收一次數(shù)據(jù)。
選擇一名測試者對智能護(hù)眼測距眼鏡進(jìn)行性能測試。在測試者保持與書本不同距離下來測試該眼鏡的準(zhǔn)確性。根據(jù)該眼鏡預(yù)期達(dá)到的效果進(jìn)行以下測試:
(1)測試者與書本的距離小于5 cm 或大于50 cm,程序丟棄該數(shù)據(jù)且不顯示。因?yàn)闇y試距離太短或太長,使用者可以很直觀地感受到距離的遠(yuǎn)近,從而調(diào)整用眼距離。
(2)測試者與書本的距離為5~50 cm,觀察手機(jī)App 數(shù)據(jù)顯示和變化,并多次記錄,對比其誤差值。該環(huán)境為測試的核心部分,因此采用在同一顯示距離下分別測量10 次實(shí)際距離的方式來進(jìn)行測試。
采用SPSS 統(tǒng)計(jì)軟件進(jìn)行數(shù)據(jù)錄入與分析,實(shí)際距離數(shù)據(jù)以xˉ±s 表示,使用單樣本t 檢驗(yàn),P>0.05 表示顯示距離和實(shí)際距離差異不顯著,智能護(hù)眼測距眼鏡具有一定的準(zhǔn)確性。結(jié)果見表1。圖5 為手機(jī)App 顯示距離頁面,圖6 為連續(xù)10 次測試結(jié)果小于10 cm 時(shí)手機(jī)App 提示界面。
表1 顯示距離與實(shí)際距離對比cm
圖5 顯示距離界面
圖6 提醒界面
從測試結(jié)果可以看出,智能護(hù)眼測距眼鏡測試誤差在3 mm 之內(nèi),在功能上可以滿足實(shí)時(shí)測量距離的要求,幫助用戶矯正用眼習(xí)慣,降低近視的發(fā)生率。經(jīng)過一段時(shí)間的模擬試用,該智能護(hù)眼測距眼鏡穩(wěn)定性良好、距離測試準(zhǔn)確、提醒及時(shí),非常適合對護(hù)眼有需求的用戶。
本文主要針對的是眼鏡與書本之間的距離,通過App 實(shí)時(shí)提醒并監(jiān)測距離達(dá)到防止近視的目的。通過試驗(yàn),該智能護(hù)眼測距眼鏡能夠?qū)崿F(xiàn)在用戶坐姿異常、距離過近時(shí)實(shí)時(shí)提醒的目的。在調(diào)試的過程中,該眼鏡能夠正常穩(wěn)定運(yùn)行,通過超聲波測距模塊較為準(zhǔn)確地獲取距離數(shù)據(jù),并發(fā)送至手機(jī)App,對于預(yù)防近視有一定的實(shí)用價(jià)值。
但是在使用過程中,產(chǎn)品互動(dòng)性還需要進(jìn)一步提高,比如可以通過增加用戶系統(tǒng),允許用戶通過賬號(hào)、密碼登錄,設(shè)置個(gè)性化軟件來增加趣味性。另外,在測試準(zhǔn)確性方面,溫度會(huì)對超聲波的傳播速度有一定的影響。該眼鏡使用的環(huán)境一般為標(biāo)準(zhǔn)大氣壓,溫度也比較穩(wěn)定,因此在護(hù)眼眼鏡設(shè)計(jì)時(shí),采用超聲波的傳播速度(340 m/s)計(jì)算距離。為了保證該眼鏡在不同的溫度和環(huán)境下都能夠正常運(yùn)行,在電路設(shè)計(jì)中需要添加溫度感應(yīng)和檢測電路,根據(jù)實(shí)測溫度來計(jì)算超聲波實(shí)時(shí)的傳播速度(其速度計(jì)算公式為C=331.45+0.6T[10],其中,C 為超聲波實(shí)時(shí)的傳播速度,T 為溫度)來確保該眼鏡測試的精度。另外,該眼鏡目前設(shè)計(jì)為工業(yè)原型機(jī),在大規(guī)模生產(chǎn)中可以采用集成電路來完成整體的設(shè)計(jì)與實(shí)現(xiàn),使用小型鋰電池供電,從而減小其尺寸和質(zhì)量,方便市場推廣。