祖一康, 徐妙婧
(1.黃岡師范學(xué)院 機(jī)電與智能制造學(xué)院, 湖北 黃岡 438000; 2.黃岡師范學(xué)院 物理與電信學(xué)院, 湖北 黃岡 438000)
根據(jù)相關(guān)報(bào)道,全國(guó)青少年總體近視率為53.6%,其中小學(xué)生為36%,初中生為71.6%,高中生為81%。由此可見(jiàn),近視已成為當(dāng)下青少年比較普遍的眼健康問(wèn)題。青少年長(zhǎng)時(shí)間用眼,過(guò)近看書(shū)、看電視、玩電子產(chǎn)品,光線過(guò)強(qiáng)或過(guò)弱等不當(dāng)用眼習(xí)慣,會(huì)導(dǎo)致視力下降。青少年的視力保護(hù)已成為家長(zhǎng)和社會(huì)普遍關(guān)心的問(wèn)題。
學(xué)者們圍繞著青少年視力防護(hù)展開(kāi)了研究,文獻(xiàn)[1-3]設(shè)計(jì)的視力防護(hù)儀具有距離測(cè)量、光線檢測(cè)、定時(shí)功能,可通過(guò)蜂鳴器發(fā)出報(bào)警聲音。但蜂鳴器發(fā)出的聲音比較尖銳,在一定程度上會(huì)影響青少年的學(xué)習(xí)狀態(tài),而且家長(zhǎng)無(wú)法在不打擾孩子學(xué)習(xí)的情況下通過(guò)遠(yuǎn)程及時(shí)了解相關(guān)信息。
文獻(xiàn)[4]在上述文獻(xiàn)設(shè)計(jì)的功能基礎(chǔ)上,采用語(yǔ)音芯片播放聲音提醒,可根據(jù)光線自動(dòng)調(diào)節(jié)臺(tái)燈亮度,還帶有GSM 短信通信功能,可給監(jiān)護(hù)人發(fā)送短信提醒,在孩子長(zhǎng)時(shí)間沒(méi)有調(diào)整坐姿時(shí)發(fā)短信通知監(jiān)護(hù)人,但是監(jiān)護(hù)人不能看到具體的距離和光線強(qiáng)弱信息。
針對(duì)上述問(wèn)題,文中設(shè)計(jì)了一種視力保護(hù)儀,它除了能實(shí)現(xiàn)距離檢測(cè)、光線檢測(cè)、參數(shù)設(shè)定、數(shù)值顯示、定時(shí)等基本功能外,還能實(shí)現(xiàn)語(yǔ)音播報(bào)提醒、手機(jī)遠(yuǎn)程監(jiān)督等功能,通過(guò)藍(lán)牙將距離、光線、時(shí)間傳輸?shù)绞謾C(jī)APP實(shí)時(shí)顯示。當(dāng)距離小于設(shè)定值、光線小于或大于設(shè)定值時(shí),除了現(xiàn)場(chǎng)發(fā)出語(yǔ)音提醒外,手機(jī)APP 中也會(huì)出現(xiàn)文字提醒,便于家長(zhǎng)在不打擾孩子學(xué)習(xí)的前提下進(jìn)行遠(yuǎn)程監(jiān)督。所設(shè)計(jì)的視力保護(hù)儀具有結(jié)構(gòu)簡(jiǎn)單、功能齊全、操作方便等優(yōu)點(diǎn),能夠很好地實(shí)現(xiàn)對(duì)青少年的視力保護(hù),具有很強(qiáng)的實(shí)用性。
視力保護(hù)儀以STC89C52 單片機(jī)為控制器,主要包括距離測(cè)量模塊、光線檢測(cè)模塊、顯示模塊、按鍵模塊、語(yǔ)音播報(bào)模塊、藍(lán)牙模塊等。系統(tǒng)總體設(shè)計(jì)結(jié)構(gòu)框圖如圖1 所示。
圖1 視力保護(hù)儀系統(tǒng)總體設(shè)計(jì)結(jié)構(gòu)框圖
1) 距離測(cè)量模塊:采用HC-SR04 超聲波模塊測(cè)量距離,通過(guò)顯示模塊實(shí)時(shí)顯示,當(dāng)測(cè)量距離小于設(shè)定值時(shí),語(yǔ)音播報(bào)模塊發(fā)出“距離太近,請(qǐng)坐直”的語(yǔ)音提醒。
2) 光線檢測(cè)模塊:采用光敏電阻檢測(cè)光線,并通過(guò)ADC0832 轉(zhuǎn)換為數(shù)字量,經(jīng)單片機(jī)處理后在顯示模塊上顯示。當(dāng)光線小于設(shè)定值時(shí),語(yǔ)音播報(bào)模塊發(fā)出“光線太暗”的語(yǔ)音提醒;當(dāng)光線大于設(shè)定值時(shí),語(yǔ)音播報(bào)模塊發(fā)出“光線太強(qiáng)”的語(yǔ)音提醒。
3) 按鍵模塊:設(shè)置距離、光線的設(shè)定值,以及定時(shí)時(shí)間值。
4) 語(yǔ)音播報(bào)模塊:根據(jù)測(cè)量值與設(shè)定值比較結(jié)果發(fā)出相應(yīng)的語(yǔ)音提醒。
5) 顯示模塊:實(shí)時(shí)顯示距離、光線以及時(shí)間。
6) 藍(lán)牙模塊:實(shí)現(xiàn)與手機(jī)APP 通信,便于家長(zhǎng)遠(yuǎn)程監(jiān)督。
采用HC-SR04 超聲波模塊測(cè)量距離,該模塊測(cè)量精度高(精度為3 mm)、穩(wěn)定性好、盲區(qū)小,有4 個(gè)引腳,分別為VCC(電源正極)、GND(接地)、Trig(觸發(fā)信號(hào)輸入)、Echo(回響信號(hào)輸出)[5-6]。超聲波測(cè)距電路圖如圖2 所示,Trig、Echo 分別與單片機(jī)的P3.3 和P3.4 引腳相連接。
光線檢測(cè)電路由光敏電阻和模數(shù)轉(zhuǎn)換器ADC0832組成,電路連接圖如圖3 所示。
圖3 光線檢測(cè)電路連接圖
光敏電阻的阻值隨著光線強(qiáng)弱的變化而變化,光線越強(qiáng)阻值越小;光線越弱阻值越大[7]。光敏電阻與電阻R1構(gòu)成了串聯(lián)分壓電路,電阻R1的電壓隨著光線強(qiáng)弱變化而變化,這樣電壓的變化就能夠反映光照強(qiáng)度的變化。
由于電壓值是模擬量,單片機(jī)不能直接處理,因此采用模數(shù)轉(zhuǎn)換器ADC0832 將其轉(zhuǎn)換為數(shù)字量,分壓電路與ADC0832 的通道0 相連接。ADC0832 為8 位分辨率、雙通道的A/D 轉(zhuǎn)換芯片,其最高分辨率可達(dá)256 級(jí)[8]。其片選引腳CS、時(shí)鐘引腳CLK 分別與單片機(jī)P1.4、P1.5引腳相連;由于數(shù)據(jù)輸出DO 和數(shù)據(jù)輸入DI 不同時(shí)有效,因此將它們并聯(lián)一起,與單片機(jī)的P1.6 引腳相連。
語(yǔ)音播報(bào)電路由WT588D 語(yǔ)音芯片和揚(yáng)聲器構(gòu)成。WT588D 語(yǔ)音芯片具有單片機(jī)內(nèi)核而且可重復(fù)擦除燒寫(xiě),它具有MP3 控制模式、按鍵控制模式、按鍵組合控制模式、并口控制模式、一線串口控制模式、三線串口控制模式,以及三線串口控制 I/O 口擴(kuò)展輸出模式等多種控制模式和PWM、DAC 兩種輸出方式。WT588D 語(yǔ)音芯片內(nèi)置了SPI-FLASH 存儲(chǔ)器,可控制的語(yǔ)音地址位達(dá)220 個(gè),每個(gè)地址位里能加載和組合的語(yǔ)音為128 段[9]。文中采用三線串口控制模式,該模式由片選CS(P02)、數(shù)據(jù)DATA(P01)和時(shí)鐘CLK(P03)三條通信線組成,時(shí)序根據(jù)標(biāo)準(zhǔn)SPI 通信方式[10]設(shè)置。通過(guò)該模式可以實(shí)現(xiàn)語(yǔ)音芯片命令控制、語(yǔ)音播放。采用PWM 輸出,可直接驅(qū)動(dòng)0.5 W/8 Ω 揚(yáng)聲器。WT588D 語(yǔ)音芯片電路連接圖如圖4 所示,語(yǔ)音播放忙信號(hào)輸出腳BUSY、片選CS(P02)、數(shù)據(jù)DATA(P01)、時(shí)鐘CLK(P03)、復(fù)位引腳RESET 分別與單片機(jī)的P2.0、P2.2、P2.1、P2.3、P2.4 引腳相連;PWM+、PWM-與揚(yáng)聲器相連。
圖4 WT588D 語(yǔ)音芯片電路連接圖
采用LCD1602 液晶顯示器顯示距離、光線、時(shí)間信息。LCD1602 是一種字符型顯示器,可以顯示字母、數(shù)字、圖形符號(hào)等[11]。LCD1602 具有16 個(gè)引腳,2 行顯示,每行可以顯示16 個(gè)字符,共32 個(gè)字符。顯示電路連接圖如圖5 所示,LCD1602 的對(duì)比度調(diào)整引腳(VO)與電位器相連,數(shù)據(jù)和指令選擇控制引腳(RS)、讀寫(xiě)控制引腳(RW)、數(shù)據(jù)讀寫(xiě)控制引腳(E)分別與單片機(jī)的P1.0、P1.1、P1.2 相連,數(shù)據(jù)引腳DB0~DB7 與單片機(jī)的P0 接口相連接。
圖5 顯示電路連接圖
按鍵電路由3 個(gè)按鍵和3 個(gè)上拉電阻構(gòu)成,用于設(shè)置系統(tǒng)參數(shù),按鍵電路連接圖如圖6 所示。S3 鍵為設(shè)置鍵,按下時(shí)進(jìn)入設(shè)置界面,可依此對(duì)距離報(bào)警值、光線上限或下限報(bào)警值、學(xué)習(xí)時(shí)間進(jìn)行設(shè)置,設(shè)置完成后按下S3 鍵退出設(shè)置。在設(shè)置參數(shù)時(shí),S1 鍵為加,S2 鍵為減;在學(xué)習(xí)時(shí),S1 鍵為開(kāi)始學(xué)習(xí),即按下時(shí)開(kāi)始學(xué)習(xí)計(jì)時(shí),S2 鍵為學(xué)習(xí)暫停,即按下時(shí)停止學(xué)習(xí)計(jì)時(shí)。
圖6 按鍵電路連接圖
采用HC-05 藍(lán)牙模塊實(shí)現(xiàn)無(wú)線通信,實(shí)現(xiàn)單片機(jī)與手機(jī)之間的通信[12]。藍(lán)牙模塊與單片機(jī)進(jìn)行串口連接,如圖7 所示,需要注意的是,藍(lán)牙模塊的TX 與單片機(jī)的RXD(P3.0)、RX 與單片機(jī)的TXD(P3.1)交叉相連[13]。
圖7 藍(lán)牙電路連接圖
軟件設(shè)計(jì)是在前述硬件設(shè)計(jì)基礎(chǔ)上編寫(xiě)程序,實(shí)現(xiàn)所需功能。軟件設(shè)計(jì)包括主程序設(shè)計(jì)、超聲波測(cè)距程序設(shè)計(jì)、光線檢測(cè)程序設(shè)計(jì)、顯示程序設(shè)計(jì)、語(yǔ)音播報(bào)程序設(shè)計(jì)、學(xué)習(xí)時(shí)間定時(shí)程序設(shè)計(jì)、按鍵程序設(shè)計(jì)和藍(lán)牙程序設(shè)計(jì)等。主程序設(shè)計(jì)流程如圖8 所示。
圖8 主程序設(shè)計(jì)流程
單片機(jī)向超聲波模塊的觸發(fā)信號(hào)引腳Trig 輸入大于10 μs 的高電平,模塊可自動(dòng)發(fā)出8 個(gè)40 kHz 的方波信號(hào)[14]。有信號(hào)返回時(shí),引腳Echo 輸出高電平,高電平持續(xù)時(shí)間即為超聲波從發(fā)射到返回的時(shí)間,這個(gè)時(shí)間可以采用單片機(jī)內(nèi)部的定時(shí)器獲得。當(dāng)Echo 為高電平時(shí)啟動(dòng)定時(shí)器,當(dāng)Echo 為低電平時(shí)停止定時(shí)器,即可計(jì)算出超聲波往返時(shí)間。超聲波測(cè)距程序流程如圖9 所示,距離公式為:
圖9 超聲波測(cè)距流程
式中:d為測(cè)量距離,單位為m;v為聲速,單位為m/s;t為超聲波從發(fā)射到返回的時(shí)間,單位為s。
采用ADC0832 將光敏電阻電壓變化轉(zhuǎn)化為數(shù)字量。ADC0832 啟動(dòng)A/D 轉(zhuǎn)換前需將片選引腳CS 置為低電平。第一個(gè)脈沖下降沿之前,數(shù)據(jù)信號(hào)輸入引腳DI保持高電平,啟動(dòng)A/D 轉(zhuǎn)換。第2 和第3 個(gè)脈沖是通道選擇,文中采用單通道、通道0,因此第2、第3 脈沖DI 值為“1”“0”。第4~第11 共8 個(gè)下降沿從高位到低位讀數(shù)據(jù),第11~第18 共8 個(gè)下降沿從低位到高位讀數(shù)據(jù),數(shù)據(jù)讀取完成后將片選引腳CS 置為高電平。將兩次讀取的數(shù)據(jù)進(jìn)行比較,如果相等則返回值。光線檢測(cè)程序流程如圖10 所示。
圖10 光線檢測(cè)程序流程
采用LCD1602 字符型液晶顯示器顯示相關(guān)信息。單片機(jī)控制LCD1602 顯示字符,只需將待顯示字符的ASCII 碼寫(xiě)入顯示數(shù)據(jù)存儲(chǔ)器,就可將字符在顯示器上顯示出來(lái)。LCD1602 程序主要包括初始化、讀狀態(tài)、寫(xiě)命令、讀數(shù)據(jù)、寫(xiě)數(shù)據(jù)、顯示位置確定等。只需通過(guò)對(duì)RS、RW、E 這3 個(gè)引腳置“1”或清“0”,就可實(shí)現(xiàn)對(duì)LCD1602 的讀寫(xiě)操作。LCD1602 顯示程序流程如圖11 所示。
圖11 顯示程序流程
單片機(jī)通過(guò)三線串口與WT588D 語(yǔ)音芯片通信,通過(guò)三線串口發(fā)送語(yǔ)音地址就可以播放存放在該地址中的語(yǔ)音段,語(yǔ)音文件在WT588D 語(yǔ)音芯片中對(duì)應(yīng)的地址如表1 所示,語(yǔ)音播報(bào)程序流程如圖12 所示。
表1 語(yǔ)音文件地址
圖12 語(yǔ)音播報(bào)程序流程
采用單片機(jī)內(nèi)部定時(shí)器T1 實(shí)現(xiàn)學(xué)習(xí)時(shí)間定時(shí),定時(shí)器T1 工作在方式1、定時(shí)模式下,采用中斷方式,設(shè)置基本定時(shí)時(shí)間為50 ms。設(shè)變量num 用于記錄進(jìn)入中斷次數(shù),變量shi、fen、miao 用于記錄時(shí)、分、秒。學(xué)習(xí)時(shí)間定時(shí)流程如圖13 所示。
圖13 學(xué)習(xí)時(shí)間定時(shí)流程
按鍵程序設(shè)計(jì)實(shí)現(xiàn)學(xué)習(xí)開(kāi)始、暫停以及系統(tǒng)參數(shù)設(shè)置,定義變量view 表示參數(shù)設(shè)置。在S3(設(shè)置按鍵)沒(méi)有按下的情況下,當(dāng)view=0 時(shí),按下S1 開(kāi)始學(xué)習(xí),測(cè)量距離、光線強(qiáng)度、學(xué)習(xí)時(shí)間定時(shí),根據(jù)測(cè)量值與設(shè)定值比較發(fā)出不同的語(yǔ)音報(bào)警;按下S2 暫停學(xué)習(xí),系統(tǒng)停止測(cè)量。在S3(設(shè)置按鍵)按下的情況下,進(jìn)入?yún)?shù)設(shè)置,view 值加1,根據(jù)view 值進(jìn)入相應(yīng)的參數(shù)設(shè)置界面。按鍵程序設(shè)計(jì)流程如圖14 所示。
圖14 按鍵程序設(shè)計(jì)流程
HC-05 藍(lán)牙模塊具有命令響應(yīng)和自動(dòng)連接兩種工作模式。藍(lán)牙模塊工作在命令響應(yīng)模式時(shí),可通過(guò)向模塊發(fā)送各種AT 指令為藍(lán)牙模塊設(shè)定控制參數(shù),比如藍(lán)牙名字、密碼、波特率等,藍(lán)牙模塊參數(shù)設(shè)置如表2 所示。藍(lán)牙模塊處于自動(dòng)連接時(shí),模塊又可分為主(Master)、從(Slave)和回環(huán)(Loopback)三種工作角色[15],文中HC-05 藍(lán)牙模塊設(shè)置為從設(shè)備模式。手機(jī)端搜索周?chē){(lán)牙設(shè)備,找到表2 中的藍(lán)牙設(shè)備名字,輸入密碼即可配對(duì)成功,實(shí)現(xiàn)藍(lán)牙通信。
表2 藍(lán)牙模塊參數(shù)設(shè)置
采用C51 語(yǔ)言在Keil μVision 4 軟件平臺(tái)中編寫(xiě)程序,編譯無(wú)誤后生成HEX 文件下載到單片機(jī)芯片中,程序下載完成后,給實(shí)驗(yàn)板通電。
按下S3 鍵進(jìn)入?yún)?shù)設(shè)置界面,設(shè)置距離報(bào)警值為0.3 m,光線下限報(bào)警值為30%,光線上限報(bào)警值為80%,為了便于測(cè)試,將學(xué)習(xí)時(shí)間設(shè)定為5 min,即00:05:00。設(shè)置完成后按下S3 鍵退出參數(shù)設(shè)置。
打開(kāi)手機(jī)藍(lán)牙,找到HC-05 藍(lán)牙設(shè)備,輸入密碼:1234,完成配對(duì),進(jìn)行藍(lán)牙通信。按下S1 按鍵開(kāi)始學(xué)習(xí),當(dāng)測(cè)量值大于各設(shè)定報(bào)警值時(shí),LCD 液晶顯示器和手機(jī)APP 顯示測(cè)量值,語(yǔ)音模塊不發(fā)出語(yǔ)音提醒,無(wú)報(bào)警時(shí)的顯示界面如圖15 所示。
圖15 無(wú)報(bào)警時(shí)顯示圖
當(dāng)測(cè)量距離小于設(shè)定值時(shí),語(yǔ)音模塊發(fā)出“距離太近,請(qǐng)坐直”報(bào)警提醒;當(dāng)光線值小于光線下限值時(shí),語(yǔ)音模塊發(fā)出“光線太暗”報(bào)警提醒;當(dāng)光線值大于光線上限值時(shí),語(yǔ)音模塊發(fā)出“光線太強(qiáng)”報(bào)警提醒;當(dāng)學(xué)習(xí)時(shí)間達(dá)到設(shè)定的學(xué)習(xí)時(shí)間時(shí),語(yǔ)音模塊發(fā)出“時(shí)間到了,休息一會(huì)兒”報(bào)警提醒。與此同時(shí),手機(jī)APP 端也會(huì)出現(xiàn)相應(yīng)的文字提示,界面顯示如圖16 所示。
圖16 有報(bào)警時(shí)手機(jī)APP 端顯示
本文以STC89C52 單片機(jī)為控制器,設(shè)計(jì)一種多功能視力保護(hù)儀。該視力保護(hù)儀具有距離測(cè)量、光線強(qiáng)度檢測(cè)、語(yǔ)音播報(bào)、藍(lán)牙通信等功能。對(duì)視力保護(hù)儀的硬件設(shè)計(jì)進(jìn)行了詳細(xì)的介紹,從超聲波測(cè)距電路、光線檢測(cè)電路、語(yǔ)音播報(bào)電路、顯示電路、按鍵電路、藍(lán)牙電路等多方面展開(kāi)設(shè)計(jì);對(duì)軟件設(shè)計(jì)從多角度進(jìn)行了詳細(xì)的介紹。
對(duì)視力保護(hù)儀進(jìn)行了測(cè)試,測(cè)試結(jié)果表明:該視力保護(hù)儀能夠?qū)崿F(xiàn)上述功能,通過(guò)手機(jī)APP 也可以實(shí)時(shí)查看距離、光線強(qiáng)度等信息,并且當(dāng)測(cè)量值與設(shè)定值不同時(shí)會(huì)發(fā)出語(yǔ)音播報(bào)提醒,手機(jī)APP 出現(xiàn)文字提醒,便于家長(zhǎng)遠(yuǎn)程監(jiān)督。該保護(hù)儀結(jié)構(gòu)簡(jiǎn)單、操作方便、功能全,能夠?qū)崿F(xiàn)視力保護(hù),具有較強(qiáng)的應(yīng)用價(jià)值和廣闊的市場(chǎng)前景。