劉曉宇,陳越超
(長春師范大學,長春130032)
隨著時代的進步與發展,我國臺燈的普及率很高,市場上的臺燈種類也很多[1],不論是上班族還是學生都會經歷加班工作和學習,這使得人們對臺燈功能的需求不單單局限于照明,而是對產品的質量和要求越來越高。現如今,全球視力水平急劇下降,眼部疾病越來越多,這與人們日常生活的不正確用眼有著極大的關聯,比如工作學習坐姿不正確,用眼過度以及光照強度不合適等對眼睛都會造成極大地損害。與傳統臺燈相比,本設計主要可以實現臺燈的自動調光,以及實時監測學習距離等功能。在手動控制模式下,可以滿足一部分用戶的喜好,該模式共分為八級亮度調節,可以通過手動按鍵調整自己適應的亮度。在自動控制模式下,該設計能夠在保護視力的前提下,使臺燈功能更加多元化,既幫助人們糾正不良坐姿問題,同時實現亮度的自適應功能,與外界環境相協調,確保人走燈滅,保證亮度的同時也達到了節能省電的功效,盡可能更好的利用資源。
本系統以STM32F103單片機為基礎,配合光照度傳感器模塊、測距模塊、調壓調光模塊、蜂鳴器報警模塊等。本系統可以實現手動控制和自動控制兩種工作方式:手動控制工作時,可以通過控制增減按鍵實現臺燈亮度的切換;自動控制工作時,系統可以根據環境中光照強度的變化實現臺燈亮度自動調節。此外系統利用超聲波傳感器感知人與臺燈的距離,當人姿勢不正確、與臺燈距離太近或者久坐時,系統會發出報警提示音。當人離開座位一段時間后,臺燈會自動熄滅,當人回到座位后,臺燈自動點亮。同時,系統通過TFTLCD模塊實時顯示當前時間、環境光照強度、臺燈亮度等級、人與臺燈距離、人工作時間等信息。通過這些功能不斷豐富臺燈具體應用框架,實現臺燈的多樣化。臺燈的系統結構框架如圖1所示。
圖1 系統結構
方案一:Arduino系列。Arduino能通過不同的傳感器來感知環境,可以控制燈光、電機和其他設備[2]。其中MEGA系列應用的主控制芯片性能高,針腳多,可以同時連接較多的外接硬件設備,但是在嵌入式開發等方面存在許多局限性。
方案二:STM32F103系列。對于STM32F103開發板[3],具有接口豐富,可以方便的進行各種外設的實驗和開發的優點,其次資源充足,主芯片采用自帶的512K字節FLASH的STM32F103ZET6,滿足大內存需求和大數據存儲[4],還包括休眠、停止和待機3種低功耗模式,提高了產品的應用靈活性,同時操作過程簡單,能夠處理模擬及數字信號。
通過對比論證分析,本模塊選擇方案二。該設計選擇STM32F103單片機為主控模塊,在自動調光模式下,STM32F103單片機讀取光照度傳感器,經過計算得到實際光照度,然后通過485芯片傳輸數據,實現亮度的自動調節;在調壓調光模式下,通過單片機IO口輸出PWM脈沖調節占空比去改變220 V交流電壓從而達到調壓調光的目的。同時STM32F103單片機能夠極大限度的發揮臺燈各個模塊間的功能,并將其有機的結合起來,確保各個功能精確地運行和實現。
方案一:GY-30。GY-30是一款通用的光照度傳感器檢測模塊,不區分環境光源,具有接近于視覺靈敏度的分光特性,但是價格相對較高。
方案二:GY-485-44009。GY-485-44009是一款寬量程、高精度、應用較為簡單的485總線光照度傳感器模塊,同時功率消耗低,體積小,安裝較為方便。
通過對比論證分析,本模塊選擇方案二。GY-485-44009是一點對多點的通信接口,一般采用平衡發送和差分接收方式實現通信,光照度傳感器模塊通過485總線建立GY-485與單片機間的雙向通信,實現亮度的自動調節。由于外界環境的變化對燈光強度的需求也會發生變化,臺燈在保護視力及適應環境的前提下改變光的強度。
方案一:激光。激光測距相對來說精度較高,但是激光需要考慮人體的安全問題,且激光制作的要求高,同時光學系統元件需要時刻保持整潔,否則會影響整體測量結果。
方案二:HC-SR04超聲波。超聲波測距離的原理是已知聲速V=331.4+0.6t(t單位為攝氏度)m∕s,當超聲波遇到障礙物時反射回來而進行測量[5]。超聲波的振動頻率相對較高,且具備束射特性,方向性強,能夠定向傳播。此外超聲波耐臟污,即使傳感器上有塵土也可以進行測量,即可以在較差的環境中使用。
通過對比論證分析,本模塊采用方案二。測量時單片機系統先給發射電路提供脈沖信號,單片機計數器處于等待狀態,當信號發射一段時間后,由單片機發出信號,使系統關閉發射信號,計數器開始計時,實現起始的同步。當接收信號的最后一個脈沖到來之后,計數器則停止計時。該模塊主要目的是檢測使用者的坐姿是否正確,當檢測到人體距離桌面過遠、過近時給予一定的聲音提示。
方案一:可控硅,又稱晶閘管。可控硅在電路中可以完成交流電的無觸點控制,大電流由小電流控制,開斷無涌流,且速度快,可以控制過零開斷。
方案二:繼電器。繼電器相較于可控硅技術相對成熟,但工作效率較低,觸點容量大且壽命短,可維護性較差,無法用于精度高的開斷控制電路中。
通過對比論證分析,本模塊選擇方案一。可控硅作為該部分的主要“承擔者”,以STM32單片機為處理核心,經過對從電位器輸入的AD數據進行處理得到脈沖寬度調制(PWM)調光的占空比[6],通過單片機輸出不同占空比的PWM信號繼而控制可控硅改變燈的亮度,在一定程度上占空比與燈的亮度呈線性關系,改變PWM值使得通過臺燈的平均電流發生改變。調壓調光模塊原理如圖2所示。
圖2 調壓調光模塊原理
該模塊選擇PNP型三極管來控制蜂鳴器的報警,三極管的集電極接電源,基極串接1 kΩ電阻后接單片機I∕O端口,發射極接蜂鳴器正極,蜂鳴器負極接地,蜂鳴器兩端電壓隨基極輸入電壓的變化而發生改變。當基極輸入高電平時,三極管截止,三極管的發射極為低電平,此時蜂鳴器里電流幾乎為0,蜂鳴器不響;當基極輸入低電平時,三極管導通,三極管的發射極為高電平,蜂鳴器有電流通過,發出聲音。
該模塊主要功能是在設定一定時間后,超過設定時間則發出久坐的報警提示,還可以在坐姿不正確或是距離過遠、過近時發出報警提示音,提醒用戶矯正坐姿、及時休息或是關閉臺燈電源。電流通過電磁線圈,使電磁線圈產生磁場以驅動振動膜發聲,由于單片機IO引腳輸出電流較小,因此增加一個三極管放大驅動電路,從而使蜂鳴器發出聲音[7]。蜂鳴器報警模塊原理如圖3所示。
圖3 蜂鳴器報警模塊原理
在設計的過程中,由點及面,逐一實現臺燈的各個功能。將各個模塊的電路及程序設計完成,最終將所有模塊連接在一起進行模塊間的整合與總體功能的調試。
程序設計將系統分為4個部分,通過按鍵控制操作臺燈。操作者通過按鍵1,逐級增加系統層次,通過按鍵2確認所選的層級,第二層系統為手動控制功能,使用查表法,控制PWM波的占空比實現臺燈的開、關以及八級亮度調節。第三層系統為自動控制功能,通過485總線測量的環境光照度,以及測距模塊測定的距離值,運用算法實現亮度自適應功能以及距離的提醒。第四層系統為參數設定功能,實現距離、時間、電流、電壓主要參數的設定以及顯示。系統運行流程如圖4所示。
圖4 系統運行流程
(1)軟件仿真測試:通過軟件測試系統的執行情況。
(2)軟件和硬件聯調[8]:通過編寫各模塊相關程序下載至單片機,并進行在線調試,待程序執行時觀測系統中變量的執行情況以及臺燈各項指標變化,比如達到設定時間時是否會發出蜂鳴提示音,當人體與臺燈距離小于設定值時是否會發出報警提示音等。
測試條件:經過多次測試,硬件電路與仿真電路等基本一致,幾乎沒有錯誤發生,此外燈光調節與外部環境相協調,確保每次檢測結果的準確性。
測試儀器:GDS-3504數字示波器,UNI-T UT136B數字萬用表,光亮測試儀。
經過對臺燈的反復測試總結出以下幾部分數據。
(1)調壓調光模塊測試:通過按鍵控制不同光亮度擋位,由STM32F103單片機輸出不同PWM波形控制可控硅模塊輸出不同電壓值[9-12],使用GDS-3504示波器觀察并檢測波形變化,UNI-TUT136B數字萬用表檢測可控硅輸出的電壓值,具體波形如圖5所示。
圖5 PWM輸出占空比為50%的波形
(2)超聲波測距模塊測試:通過在超聲波模塊正前方放置障礙物,對比測量值與實際值,在10~60 cm的距離內,最大誤差為0.2%。具體實驗數據如表1所示。
表1 超聲波測距模塊測量數據
(3)光照度傳感器模塊控制過程測試:將臺燈放置在不同亮度的環境下,測量光強度和臺燈電壓。發現當光強度大于200 Lux時,臺燈全部熄滅,當光強度小于200 Lux,并不斷變小時,臺燈亮度逐漸增加,當光照度小于50 Lux時,臺燈全亮。
研究結果發現,臺燈在測試的整個過程中產生的誤差相對較小,經過測試,臺燈也符合設定的要求。臺燈的設計以STM32F103為核心芯片,運用坐姿矯正和自適應調光的算法提供了一種有利于保護視力的單片機系統,能夠實時監測學習的安全距離,并隨外界光線的變化調整臺燈的亮度以保護視力。臺燈共有八級亮度調節,可以滿足不同環境下的亮度需要,同時在臺燈的使用過程中伴隨有語音提示,對用戶來說更加直觀和便捷。此外臺燈的成本相對較低,且具有較高的實用價值,相信未來一定會出現功能更加豐富、操作更加簡便的多元化臺燈,可以不斷推廣到千家萬戶中。