梁計鋒
(西安翻譯學院,工程技術學院,陜西,西安 710105)
研究表明,我國中小學生里小學生的視力下降率大約占整體的25%左右,中學生視力下降比例較高,已經達到了50%以上。錯誤的書寫姿勢、長時間的用眼疲勞、環境光照度不夠,都是導致近視的主要原因,并且這些行為很大一部分發生在學生時期。學生在學校自控能力較差,沒有老師與家長的提醒,就會形成不好的書寫習慣,很多學生為了在書寫過程中讓書寫舒適,使眼睛與書本過近,以至開始出現近視,從那時起眼鏡便成為了生活中不可缺少的東西。為了盡量避免這種情況發生,本文設計了一款光電控制書寫提醒器。通過調查發現,眾多國內外電子企業自行設計制作了書寫提醒裝置,就中國而言,“學生1.5視力保護器”也被稱為“手表寶”,可以用簡單的聲音報警提醒學生,糾正學生的書寫姿勢。然而該產品只有這一種功能。一般來說,具有視力保護功能的產品,目前國內的書寫提醒裝置相對簡單,無法滿足部分用戶的需求。國外最常見的是電子防止困倦提醒器,將防止困倦作為解決問題的關鍵,使用微電腦進行書寫姿態校正,或基于紅外距離完成書寫姿勢校正。這類產品有其獨特性,但也有局限性。
研究表明,目前市場上還沒有多功能書寫提醒裝置。現在很多產品主要集中在視力保健上,這些產品的功能相對簡單,然而用戶的需求是功能的多樣性,不喜歡只有單一的功能。因此,本文的目標要設計一種具有多樣性功能、成本低、使用壽命長,且具有較高的靈敏度,小巧便于攜帶,外形美觀的書寫提醒裝置。
本裝置主要作用是監測書寫者頭部的位置與桌面的距離,當頭部離桌子距離過近,導致光線減弱時,系統會發出報警提示。為了將使用者的連續學習時間控制在一個合理的范圍內,本裝置通過外部時鐘模塊完成定時功能,在一段長時間的工作學習后,裝置會提醒使用者閉目休息片刻(定時模塊未實現),系統功能設計如圖1所示。

圖1 功能示意圖
系統主要功能分為2大部分:坐姿提醒和定時提醒。整個系統主要由單片機核心控制器(MCU)[1]、測距電路、定時電路、提醒電路、光敏檢測電路等組成,主要框架如圖2所示。

圖2 主要功能結構圖
書寫提醒主要功能是提醒功能。通過單片機程序處理數據得出頭部與提醒裝置的距離進而判斷是否過于接近和坐立時間過長,如果距離過近和學習時間過長,則會提醒用戶及時調整書寫姿勢和休息。
系統主要功能分為坐姿提醒和定時提醒。坐姿提醒是通過感應模塊[2]對使用者與提醒器之間距離進行測量,當使用者頭部過低遮住光線的時候,便會發出提醒。定時提醒起到了控制書寫時間的作用,通過定時器完成這部分的功能。
硬件電路框如圖3所示。

圖3 硬件電路框圖
2.2.1 單片機核心電路
設計主要基于8051單片機來進行設計,它設計簡單,體積小巧,接口方便,便于用戶的擴展,按照它可以方便完成用戶所需要的各種功能。主要組成部分如下。
(1)CPU。CPU即中央處理器,是80c51單片機的重要組成部分,它由兩部分組成,分別是控制器和運算器,這兩部分分別幫助完成控制和運算的任務。運算器能夠幫助實現數據的多種運算,控制器可以幫助平衡單片機整體運作,發出控制信號,并且能夠產生脈沖。
(2)數據存儲器[3]。它是內部RAM,用來存放和讀寫數據,這款單片機包含的存儲單元一共有128個。
(3)程序存儲器。它是內部RAM,可以幫助放置原始數據,并且能夠存放程序。
(4)定時器/計數器。為了達到這種效果,它有16個。
(5)并行I/O口。可以幫忙完成系統的輸入輸出,內部有4個8位的I/O口。
(6)串行I/O口。可以很方便簡潔的完成單片機和數據的串行之間傳送。
(7)中斷控制器[4]。可以分為5個控制中斷源,這些中斷源有不相同的優先級。
2.2.2 定時模塊
這一部分主要是通過時鐘電路(PCF8563)[5]來實現的。PCF8563是一款多功能時鐘/日歷芯片,它具有很多種功能,包括定時器、時鐘輸出和中斷輸出功能。這款芯片可完成很多種復雜的定時任務,它具有雙線IIC總線通信模式,這不僅使得芯片外圍電路簡單,而且讓芯片的穩定性變得更好,可靠性變得更高。總體上來說這款時鐘芯片擁有較高的性價比,正因為這個優點,這款芯片已經被廣泛應用于多個產品領域,比如電話機、生活用表等。
在本設計中,通過外部定時電路實現定時,通過雙向I2C總線將數據輸送至單片機核心,總線由2條線組成,分別是時鐘線與數據線。這兩條線必須用上拉電阻才可以同電源相連,在本系統中,將P1.6作為SCL,P1.7作為SDA。
2.2.3 測距模塊
這部分主要功能是測量用戶與書面提醒之間的距離,傳輸系統通過超聲波發射裝置測量目標與裝置的距離,由于信號微弱,需要通過運算放大器[6]的放大,隨后通過計算得出結果,具體工作流程如圖4所示。

圖4 超聲波模塊工作過程
發射部分由2部分組成,分別是共射放大電路和三極管電路。電路圖如圖5所示。

圖5 發射部分電路
該發射部分電阻的參數為:R1=330 Ω,R2=20 Ω,R3=470 Ω,R4=10 kΩ。
接收部分電路由2部分組成,分別是超聲波接收管TPS708和電壓串聯負反饋的模擬運算放大電路。電路圖如圖6所示。

圖6 接收端電路
在電路中各電阻參數為R5=10 kΩ,R6=10 kΩ,U2B=100 kΩ,R11=10 kΩ,R9=100 kΩ,R10=330 kΩ,R8=10 kΩ。
2.2.4 測光電路
設計采用光敏電阻實現光強度采集[7]。光敏電阻也稱為光導,通常用CdS、Se、Al2S3、PbS和Bi2S3制成。這些材料表現出一個共同特性,即在特定λ的光下光敏電阻的阻值會迅速降低。產生這一現象的原因是由光產生的載流子參與導電,并在施加的電場作用下做漂移運動,電子向電源的陽極運動,并且另一部分運動到電源的陰極,從而使得電阻的電阻值迅速下降。
2.2.5 報警電路
報警部分采取的方式是聲光報警,輸出采用3個LED,進行顯示報警,結構如圖7所示。

圖7 LED報警電路電路圖
報警電路[8]實現的是書寫提醒器與使用者距離不處于系統設置的閾值中的時候、光強低于所設閾值的時候或學習時間超過所設閾值的時候,都將通過輸入輸出口驅動蜂鳴器工作,從而完成報警。由于單片機輸入輸出口輸出的電流較弱,無法直接驅動蜂鳴器工作,故設計了該部分驅動電路,在本系統中,單片機端口P2.4、P2.5、P2.6與LED相連,P3.7與蜂鳴器相連,如圖8所示。

圖8 蜂鳴器報警電路圖
Keil C51[9]是由Keil Software研發的針對51系列兼容單芯片的C語言軟件開發系統。Keil提供的開發解決方案相對于其他開發系統較為完整,具有庫管理、集成開發環境、仿真調試器以及編譯器等等。并且這款開發系統的運行兼容程度高,在Windows多種版本的操作系統下都可以完美運行。如果選擇了C語言進行程序的編寫,由于操作簡單的集成環境以及功能強大的調試工具,因而Keil是最好的選擇。
3.2.1 超聲模塊軟件設計
在整個系統運行過程中。啟動超聲模塊后,微控制器開始進行初始化。如果MCU接收到接收電路發送的模擬電壓信號,進入A/D轉換程序進行模數轉換[10],接收到的模擬信號被轉換成可被MCU識別的數字信號,并通過電壓距離計算的子程序,將改變后的電壓轉換為距離,為后面判斷提供條件,該部分流程圖見圖9。

圖9 紅外部分程序流程圖
在得到使用者與書寫提醒器的距離后,將測得距離與所設置閾值進行比較并作出決策。
3.2.2 測光模塊軟件設計
通過測光模塊測得環境光的強度,此時輸出量為模擬電壓值,輸出會進入單片機控制核心,由內部ADC轉化為數字量,并通過計算轉化為光照強度,得到當前光照強度后與所設置閾值進行比較,以便單片機做出下一步的決策。
3.2.3 聲光報警軟件設計
聲光報警部分的觸發條件包括距離過近、光強過低。距離過近的指令由單片機發出,即當超聲波模塊部分測得距離不在所設閾值的范圍內時,單片機發出指令使LED發生頻閃,蜂鳴器發出滴滴聲,光強過低反映的就是頭部對光源產生些許遮擋,即頭部過低與書本距離過近,產生效果與距離過近一致。
在整個設計過程中,所有的部分都需要協調配合才可以完成預期的效果,實現預期的功能。而這就需要對每一個部分都進行相應的測試才可以得到保證,不僅僅是硬件的正常,同時需要軟件對于硬件的協調配合。
在接收部分制作過程中,應對該部分實行相應的屏蔽措施,以防止電磁干擾,并在前面加入一個紅色的塑料片以防止可見光的干擾,在發射部分與接收部分組裝過程中要注意兩者之間的距離,保持7—8 cm最佳。
監測部分包括紅外和測光兩部分,在使用所設計超聲波模塊進行測距測試時,由于需要將距離顯示出來,所以借助了LCD1602作為輔助,經過調試后超聲波部分測距的誤差在允許范圍內,該部分設計在軟件的配合下正常工作;測光部分的調試相對于超聲波部分比較簡單,通過改變光源與測光部分的距離來觀察即可。由于測光部分的輸出為模擬電壓,不可直接觀測到,故借助LED來進行調試,當光源離測光部分較遠或光源有些許遮擋的時候,LED的亮度變暗,反之變亮,故該部分可以正常工作。
將實物平放于桌子上,以正常坐姿進行書寫,將頭緩緩低下,聲音報警器率先響起,繼續將頭低下,測光報警器接著亮起閃爍提醒。當使用者頭部過低導致身體遮住光線時,提醒器開始報警。滿足該設計的基本要求。
本設計通過MCU作為主控制單元,多種芯片組合成處理電路,并采用MCU定時功能,基于MCU匯編語言進行軟件設計,通過測試,設計的基本目標,完成設計要求。
當然,這種設計不夠準確。它只是控制青少年的頭部不低下,通過發出聲音加以提醒,但沒有設計特定的范圍和頭部的角度,需要進一步研究和改進。