劉欣宇,楊延寧,2,卜文嘉,劉 珂,呂 楊
(1.延安大學(xué) 物理與電子信息學(xué)院,陜西 延安 716000;2.陜西省能源大數(shù)據(jù)智能處理省市共建重點(diǎn)實(shí)驗(yàn)室,陜西 延安 716000)
隨著人們的生活水平不斷提高,在如今的各種壓力下,睡眠質(zhì)量不高成為日常生活中較為普遍的問(wèn)題?,F(xiàn)在很多人晚上都有開(kāi)臺(tái)燈的習(xí)慣,燈光會(huì)在黑夜中給人帶來(lái)安全感,同時(shí)也可以解決諸多不便。為此,很多人在臥室安裝了夜燈。傳統(tǒng)夜燈在使用時(shí)對(duì)身體有一定的危害,夜晚光線的照射容易造成睡眠失調(diào),夜間燈光的照射同時(shí)會(huì)使睡眠時(shí)褪色素的分泌紊亂,尤其是兒童和青年。動(dòng)物實(shí)驗(yàn)表明,全天都被燈光照射時(shí),某些種類癌癥的發(fā)病率會(huì)急劇增加。實(shí)驗(yàn)中發(fā)現(xiàn)夜間長(zhǎng)時(shí)間被燈光照射或經(jīng)常在夜晚蘇醒的女性,乳腺癌的發(fā)生率提高[1]?;谝陨蠁?wèn)題,本文研究基于模型識(shí)別的助眠夜燈控制系統(tǒng),設(shè)計(jì)出適合大眾使用的助眠夜燈控制設(shè)備,來(lái)代替?zhèn)鹘y(tǒng)的夜燈。對(duì)用戶的心率和運(yùn)動(dòng)數(shù)據(jù)進(jìn)行判斷獲取用戶的睡眠狀態(tài)[2],在夜間休息時(shí)可播放角調(diào)音樂(lè)幫助用戶有效緩解疲勞[3,4],快速進(jìn)入睡眠狀態(tài),提高用戶的睡眠質(zhì)量。
系統(tǒng)采用MSP430G2553作為主控芯片,硬件主要分為手環(huán)模塊、夜燈模塊、藍(lán)牙模塊。其中手環(huán)模塊包括心率模塊和運(yùn)動(dòng)運(yùn)動(dòng)狀況傳感器的設(shè)計(jì)。夜燈模塊又細(xì)分為主控制器(micro programmed control unit,MCU)、燈光控制、時(shí)鐘和顯示模塊以及音樂(lè)模塊的設(shè)計(jì)。系統(tǒng)利用MSP430G2553控制器通過(guò)心率傳感器和三軸加速度傳感器ADXL362進(jìn)行數(shù)據(jù)采集,并在MSP430G2553上通過(guò)順序最小優(yōu)化算法(sequential minimum optimization,SMO)實(shí)現(xiàn)[5],采用支持向量機(jī)(support vector machine,SVM)算法模型識(shí)別出用戶是否穿戴手環(huán)、是否處于睡眠,并通過(guò)藍(lán)牙將識(shí)別的用戶狀態(tài)發(fā)送給夜燈部分,夜燈處理器MSP430G2553接受來(lái)自手環(huán)的用戶狀態(tài)數(shù)據(jù)并結(jié)合時(shí)鐘芯片DS1302的時(shí)間數(shù)據(jù)控制不同顏色燈光亮滅和音樂(lè)播放。硬件部分包括充放電模塊、手環(huán)模塊和夜燈模塊部分,手環(huán)模塊和夜燈模塊的控制芯片和電源管理都采用相同的方式,兩部分之間通過(guò)藍(lán)牙CC2541進(jìn)行數(shù)據(jù)通信,硬件設(shè)計(jì)原理如圖1所示。
圖1 硬件設(shè)計(jì)原理
供電部分采用鋰電池供電,在夜燈部分采用18650型號(hào)的鋰電池,而在手環(huán)部分采用體積較小的602030鋰電池。充電模塊采用鋰電池專用充電芯片TP4056。充放電電路如圖2所示,放電時(shí)通過(guò)線性穩(wěn)壓器1117—3.3使得輸出電壓維持在3.3 V。
圖2 電池充放電模塊
手環(huán)模塊的硬件連線如圖3所示,除了電源、藍(lán)牙和控制器外還包括了心率傳感器和三軸傳感器的設(shè)計(jì)。
圖3 手環(huán)部分原理圖設(shè)計(jì)
1)心率模塊的設(shè)計(jì)。采用了光線的反射原理,當(dāng)一束光照在皮膚時(shí),將會(huì)在皮膚表層發(fā)生反射與透射[6]。當(dāng)心臟收縮時(shí),血管中的血液變多,被血液吸收的光變多,反射光變少;心臟舒張時(shí),血管中的血液變少,將會(huì)有更多的光線被反射。而紅色的血液對(duì)綠光的吸收率最大,使用綠光將會(huì)使得測(cè)得的數(shù)據(jù)更加準(zhǔn)確,因此選擇光電容積波描述法采集心率數(shù)據(jù)[7]。心律采集模塊電路如圖4所示,由三極管Q3控制心率采集模塊的工作,D2為發(fā)綠光的二極管,Q2接收發(fā)射回來(lái)的光線并轉(zhuǎn)換為電信號(hào)。通過(guò)運(yùn)放OPA2320兩級(jí)放大后,將放大的電信號(hào)輸入單片機(jī)進(jìn)行數(shù)據(jù)采集與處理。
圖4 心率采集模塊設(shè)計(jì)
2)運(yùn)動(dòng)狀況采集電路設(shè)計(jì)。為了得到用戶使用時(shí)的加速度情況,采用三軸加速度傳感器識(shí)別出用戶的狀態(tài),采用低功耗、高分辨率的ADXL362三軸傳感器ADXL362,對(duì)運(yùn)動(dòng)狀況進(jìn)行采集,運(yùn)動(dòng)時(shí)功耗可低至270 nA。
夜燈模塊電路圖如圖5所示,主要包括主控MCU、藍(lán)牙部分、燈光控制部分、時(shí)鐘、顯示和音樂(lè)控制等部分。
圖5 夜燈模塊電路
由于CKE8002功放芯片中不含自舉、耦合電容或緩沖網(wǎng)絡(luò),該功放芯片適合用在音量較小,重量較輕的低功耗系統(tǒng)設(shè)計(jì)之中。因此,采用CKE8002功放芯片將以上解碼后的MP3進(jìn)行功率放大。屏幕顯示選取了OLED液晶顯示屏,其為I2C接口,便于用戶編程使用。該顯示屏沒(méi)有字庫(kù),在程序的編寫時(shí),需要自己建立相應(yīng)的字庫(kù)文件。
在數(shù)據(jù)處理中采用SVM算法判斷睡眠狀態(tài)[8,9]。在睡眠狀態(tài)的判斷中設(shè)置了三種睡眠狀態(tài),采用一對(duì)多的方式首先識(shí)別出清醒狀態(tài)與睡眠狀態(tài),其次再對(duì)睡眠狀態(tài)進(jìn)行分類,識(shí)別出深度睡眠與淺度睡眠。手環(huán)的程序流程圖如圖6所示,程序中主要有兩處判斷語(yǔ)句,首先判斷用戶是否佩戴手環(huán),其次判斷夜燈是否能和手環(huán)正常連接[10,11]。當(dāng)用戶未能正確佩戴手環(huán)時(shí)或者手環(huán)未能收到來(lái)自夜燈的指令時(shí),將開(kāi)啟節(jié)能模式,節(jié)能模式只有當(dāng)串口接收到來(lái)自夜燈的指令時(shí)才能退出。
圖6 手環(huán)程序邏輯
夜燈程序邏輯設(shè)計(jì)如圖7所示,夜燈在處于非夜間的情況下,先給手環(huán)發(fā)送指令,然后再接收手環(huán)的數(shù)據(jù)。如果時(shí)間為白天或者未能接收到手環(huán)的數(shù)據(jù),則開(kāi)啟節(jié)能模式[10]。系統(tǒng)的夜間時(shí)間,用戶可通過(guò)按鍵自行設(shè)定,接收到不同的數(shù)據(jù)時(shí),夜燈會(huì)根據(jù)相應(yīng)的時(shí)間做出不同的處理。
圖7 夜燈程序邏輯
1)音樂(lè)與燈驅(qū)動(dòng)電路調(diào)試。采用光耦PC817進(jìn)行了數(shù)字電路和模擬電路的隔離,當(dāng)MCU輸出高電平時(shí)光耦導(dǎo)通,MOS管處于導(dǎo)通狀態(tài),由于IRF3205的導(dǎo)通電壓為4.5 V,因此可不用電阻進(jìn)行分壓。在輸出端為了防止光耦不導(dǎo)通時(shí)的懸空狀態(tài),因此加入一下拉電阻,使得不導(dǎo)通時(shí)為低電平。并且導(dǎo)通后音樂(lè)模塊得到的電壓為Q4的導(dǎo)通電壓。
2)OLED顯示的調(diào)試。在使用OLED進(jìn)行顯示時(shí),需要用到不同大小、不同分辨率的字。在寫入不同大小的字時(shí)需要建立不同的字庫(kù),采用不同的寫入函數(shù)來(lái)實(shí)現(xiàn)每行的寫入。例如顯示分辨率為8×16的符號(hào)時(shí),采用一次點(diǎn)亮一行中16個(gè)相應(yīng)的發(fā)光OLED,并重復(fù)8次點(diǎn)亮,得到相應(yīng)的字符顯示。
3)三軸加速度傳感器調(diào)試[12]。調(diào)試三軸加速度時(shí),測(cè)了傳感器上10組典型數(shù)據(jù),將三軸數(shù)據(jù)相比較可得出,每個(gè)相應(yīng)的軸豎直時(shí),得到的數(shù)據(jù)為1 024;水平放置時(shí),得到的數(shù)據(jù)為0(負(fù)數(shù)部分采用了反碼格式存儲(chǔ)),表明傳感器正常工作。在采集睡眠數(shù)據(jù)時(shí),利用數(shù)據(jù)之間的變化情況,進(jìn)行模型識(shí)別,得到相應(yīng)的睡眠狀態(tài)數(shù)據(jù)。
4)心率檢測(cè)模塊調(diào)試[13]。心率檢測(cè)模塊得到得波形圖如圖8所示,圖中左上波形來(lái)自左手食指,右上波形來(lái)自右手食指,左下波形來(lái)自左手手腕,右下波形來(lái)自右手手腕。
圖8 人體不同部位心率模塊測(cè)得波形
由波形圖可看出每次心跳時(shí),輸出信號(hào)將會(huì)有所變換,得到波形變換的頻率就能得到每分鐘的脈搏數(shù)。并且左手和右手之間測(cè)得的波形存在不同。在調(diào)試心率模塊中,采用了AD采樣的方式,避免了外接比較器使得手環(huán)體積變大。首先測(cè)的未佩戴手環(huán)時(shí)心率模塊得到的AD數(shù)值如表1所示。
表1 未佩戴手環(huán)時(shí)心率模塊得到的AD值
而佩戴手環(huán)時(shí)得數(shù)據(jù)如表2所示,佩戴手環(huán)時(shí),最大測(cè)得AD值為533,最小值為490。
表2 佩戴手環(huán)時(shí)心率模塊得到的AD值
由表1與表2的數(shù)據(jù)可知測(cè)脈搏時(shí)波形最大AD值在533左右,因此可以通過(guò)定時(shí)器測(cè)得兩個(gè)波峰之間的時(shí)間差。為了避免不同人的脈搏得到的AD值不一樣,采用了取中間值525作為波形的開(kāi)始,調(diào)試中采用了20 ms的定時(shí)器,采用t計(jì)量?jī)蓚€(gè)波形之間的時(shí)間(及第一個(gè)AD值為525到第三個(gè)AD值為525一共經(jīng)歷的20 ms的個(gè)數(shù)),最后的心率可通過(guò)以下等式計(jì)算得到,n取計(jì)算結(jié)果的整數(shù)部分
(1)
5)軟件調(diào)試。除開(kāi)硬件的控制外,對(duì)于夜燈與手環(huán)之間藍(lán)牙的聯(lián)合調(diào)試。定義藍(lán)牙收發(fā)命令后,進(jìn)行手環(huán)與夜燈的聯(lián)合調(diào)試,檢查夜燈各部分工作狀況。
設(shè)計(jì)了一種基于SVM的智能睡眠夜燈。主要從硬件和軟件兩個(gè)部分進(jìn)行設(shè)計(jì),系統(tǒng)可以實(shí)現(xiàn)高準(zhǔn)確性控制。相比傳統(tǒng)的夜燈,增加了幫助睡眠的功能。本文還有一些工作有待研究和改進(jìn),主要有幾個(gè)方面:1)在睡眠狀態(tài)的檢測(cè)中,還需加入更多參數(shù),比如聲音、呼吸、體溫等可以進(jìn)一步增加睡眠狀態(tài)檢測(cè)的準(zhǔn)確性,提高系統(tǒng)的可信度,也使系統(tǒng)更加全面。2)使用該手環(huán)檢測(cè)白天的運(yùn)動(dòng)數(shù)據(jù),根據(jù)睡眠狀況和白天的運(yùn)動(dòng)情況給出健康指標(biāo)。3)設(shè)計(jì)上位機(jī),形成一個(gè)健康管理,這樣能實(shí)時(shí)檢測(cè)用戶的健康水平,建立一個(gè)用戶完整的健康系統(tǒng)。