余正發,徐倩倩,吳倩倩
(安徽理工大學 電氣與信息學院,安徽淮南,232001)
隨著經濟發展和社會進步,眼鏡已逐漸成為人們日常生活中的必需品。就目前的情況來說,眼鏡的應用主要體現在三類人身上。第一類是近視人群,有數據統計,我國初高中生及大學生的近視率均超過70%[1]。第二類是老年人群體,隨著年齡的逐漸增長,人體的各項機能正逐步下降,其中最為明顯的特征就是老年人出現的老花眼。第三類是使用智能眼鏡及墨鏡的一部分人群,雖然這類人群比較稀少,但在巨大的人口基數面前仍占據了一定比例[2]。以上三類人提供了目前社會對眼鏡的巨大需求。
目前,基于社會價值的驅動和電子信息技術的發展,對眼鏡的研究逐漸加深,但大多分布在智能眼鏡[3]、鏡片光學領域[4],卻很少有研究者做關于眼鏡對用戶的舒適度以及用眼健康方面的研究。
本文重點瞄準眼鏡用戶關注的兩大問題:冬季眼鏡鏡片起霧問題,用眼疲勞問題。針對這兩大問題,本文以STM32單片機為硬件基礎、C語言為開發語言并利用各種電子與信息技術手段,探索與研究基于智能除霧與用眼疲勞檢測為一體的智能眼鏡架設計。本項設計或許能有效改善眼鏡用戶的使用體驗。
系統結構如圖1所示,本設計由防霧除霧系統、眼球監控系統、佩戴監測系統、實時時鐘系統、物聯網通信系統組成。其中,STM32CPU作為整個系統的核心,協調各個外圍傳感器和執行器執行特定的功能。溫度傳感器、驅動、電發熱絲構成除霧防霧系統,攝像頭、壓力傳感器構成眼球監控系統和佩戴檢測系統用于提供健康輔助,ESP-12wifi模塊構成物聯網通信系統用于連接用戶app進行數據傳輸。

圖 1 系統框架圖

圖 2 防霧除霧系統控制框圖
鏡片上的霧氣是空氣中的水蒸氣在冷凝作用下形成的微小水滴。霧氣的形成包含兩個條件,空氣中有水分,且水汽的溫度比鏡片上的溫度高。當戴眼鏡的人從寒冷的室外走進暖和的室內后,鏡片上會出現一層小水珠擋住視線。因為眼鏡片在室外溫度是很低的,進入暖和的屋子后,屋子溫度高的空氣中含有的水蒸氣遇到溫度低的鏡片后液化(凝結)成小水珠,附著在鏡片上。查閱有關資料發現,一般眼鏡鏡片承受最高溫度為60℃。然而,即使是炎熱的夏天水蒸氣溫度也不會達到40℃,人體呼出的水蒸氣最高也才達到人體正常溫度。故如果使鏡片溫度升高到與水蒸氣溫度相當,打破形成霧氣的條件之一,即可達到防霧除霧的效果。
防霧除霧系統由溫度傳感器組、電機驅動模塊、低壓電發熱絲及STM32組成。溫度傳感器組用于檢測鏡片溫度,溫度傳感器反饋回來的信號,通過STM32ADC采集轉換成數字量,通過單片機計算得出實時溫度值。再將實時溫度與水蒸氣溫度進行對比分析,通過PID算法計算出STM32應當產生的PWM信號的占空比值,然后電機驅動由該PWM信號輸出驅動電壓到低壓電發熱絲,低壓電發熱絲工作產生熱量,低壓電發熱絲內置于鏡框中使眼鏡片溫度升高直至達到水蒸氣的溫度。圖2為防霧除霧系統的過程控制框圖。
該過程中的PID算法屬于動態的閉環控制,使用PID控制算法,使鏡片溫度快速到達水蒸氣溫度,并維持動態平衡,且不超調,不會使溫度不斷升高造成眼鏡鏡片損壞。
PID控制是應用非常廣泛的控制算法,當得到系統的輸出后,將輸出經過比例,積分,微分3種運算方式,疊加到輸入中,再接著控制系統的行為,算法過程如圖3所示。

圖 3 PID算法框圖
眼球監控系統由灰度攝像頭模塊與STM32連接組成,攝像頭采集到的圖像為灰度圖,灰度圖是只含有黑白兩種顏色,和0~255亮度等級的圖片,255代表全白,0表示全黑。這能更好地減小光線干擾的問題,且灰度圖具有儲存小的優點,其亮度值就是256色調色板索引號[5]。從整幅圖像的整體和局部的色彩以及亮度等級分布特征來看,灰度圖所描述的與彩色圖所描述的具有一致的特點,且使CPU處理所占用的資源較少,計算速度更快,提高效率。
眼睛,它的的主體部分為眼球,清澈、黑白分明。黑色部分是瞳孔與虹膜,每個人的瞳孔都是黑色的,眼球表面的其他部分是白色的,而眼睛附近的皮膚及眼皮幾乎是白色的。故當眼睛睜開時攝像頭采集的圖像有黑色的圓形,該區域像素點亮度值很低。當眼睛閉上時只能采集到皮膚的顏色,皮膚的顏色接近于白色,該區域像素點亮度值會很高,所以此黑色圓形為眼睛閉上與睜開的一個明顯區別特征。
攝像頭置于鏡架內部,用于監視眼睛。當眼睛由長時間睜開或閉上切換到長時間閉上或睜開的時刻,攝像頭及STM32檢測到這一變化,立刻記錄時間及事件,保存到EEPROM。在兩次事件之間的時間內,眼睛即為長時間睜開或閉上狀態,可以理解為用眼與休息的時間,STM32計算此時間間隔也保存到EEPOM。
STM32先將采集到的圖像幀數據存儲在一個數組中,然后進行提取,分割眼睛所在大致區域的圖像所對應數組里面的內容并存放到另一個數組,以減小其他區域對眼球部分圖像處理造成的影響。然后對新的圖像數組內容進行分析,先使用大津法計算出一個合適的閾值,然后對圖像進行二值化處理,二值化后的圖像再保存到一個新的數組,此時的圖像是只有黑色與白色的黑白圖,瞳孔部分會呈現黑色,其他的地方都是呈現白色。計算該區域的像素的亮度值總和,可以很清楚的判斷到睜眼與閉眼的數據特征,從而記錄事件。圖4眼球監控系統的程序流程圖。

圖 4 眼球監控系統流程圖
大津法又叫最大類間方差法是由日本學者大津于1979年提出的,是一種自適應的閾值確定法,簡稱OTSU[6]。它被認為是圖像處理求閾值的最佳算法,簡單計算,不受圖像亮度和對比度的影響。它按圖像的灰度特性,假設閾值將圖像分成前景和背景兩部分,求這兩個部分的類間方差,前景像素個數占比x(前景平均灰度 - 全圖平均灰度)^2 + 背景像素個數占比x(背景平均灰度 - 全圖平均灰度)^2,將閾值從0~255遍歷一次,使上述類間方差最大的閾值即為所求。
佩戴檢測系統由電阻式薄膜壓力傳感器與STM32組成,這款壓力傳感器將施加在傳感器薄膜區域的壓力轉換成電阻值的變化從而獲得壓力信息,壓力越大,電阻越低。將此傳感器與一定值電阻串聯,傳感器一端接3.3V,定值電阻一端接GND,STM32adc采集定值電阻的電壓,電路連接原理如圖5所示。當壓力增大,壓力傳感器電阻降低,故adc采集定值電阻分壓增大;當壓力變小,壓力傳感器電阻降低,故adc采集定值電阻分壓減小。
配戴眼鏡時,眼鏡架的鏡腿與頭部處于一種輕微加緊的狀態,當不佩戴眼鏡時便處于放松的狀態。將壓力傳感器置于鏡腿部分,在佩戴眼鏡與摘下眼鏡的兩種不同狀態下,壓力傳感器會產生不同的信號,故很容易根據STM32adc采集的數據判斷是否佩戴眼鏡。然后STM32記錄下佩戴與不佩戴眼鏡兩種狀態變化的時間點,保存到EEPOM中,程序流程如圖6所示。

圖 5 壓力傳感器電路連接原理圖

圖 6 佩戴檢測系統程序流程圖
時鐘系統由STM32內部的RTC實時時鐘構成,外接32.768kHz晶振提供時鐘源與電源使系統時間掉電不丟失。能產生秒、分、時、日等信息。為其他系統記錄數據提供時間。
WIFI無線通信系統由ESP_12wifi模塊或藍牙模塊與STM32串口通信、手機app組成。ESP_12fwifi模塊與手機app無線連接且能進行數據通信,ESP_12wifi又與STM32串口通信,使得通過ESP_12wifi作為媒介使手機app與STM32進行無線數據通信。
當手機app連接系統時,STM32提取當日在EEPROM中保存的數據,經過計算,得出當日佩戴眼鏡時長,與用眼時長等數據,將一些列數據發送到手機app,得出當日用眼報告,提醒用戶,適當休息,緩解眼疲勞,保護視力。
以STM32為主控芯片,C語言為開發語言設計的一款具有溫度檢測與溫度控制,眼球監控,佩戴時間監測,實時時鐘,和物聯網通信功能的智慧眼鏡架,實現了鏡片防霧除霧,眼鏡佩戴時間用眼時間的監測,提醒佩戴者適當休息,保護視力的作用,為佩戴者健康生活出行提供了便利。
在電子信息技術廣泛應用、可穿戴設備技術的迅猛的發展中,我國相比于發達國家來說還是較為落后。盡管目前在某些領域內,各種有關自主研發的可穿戴智能設備層出不窮,但是實用型技術與操作依然存在或多或少的問題。相信在電子信息技術不斷向前發展的時代,在智能電子產品不斷涌現的新形勢下,我國在這一技術行業一定會有較大的進步和發展。