申耀武,梁健恒,郭強,成進(jìn)勇
(廣東碧桂園職業(yè)學(xué)院,廣東清遠(yuǎn),511500)
研究《如何科學(xué)健康睡眠》一直是睡眠機器人研究領(lǐng)域的熱點,傳統(tǒng)的睡眠儀是一種針對幫助人體睡眠的理療儀器,它運用電磁刺激生物波等技術(shù)來幫助人們睡眠,睡眠儀可分為低頻電磁刺激誘導(dǎo)睡眠、傳統(tǒng)生物反饋治療、數(shù)字頻率合成仿生物電波。為了減緩現(xiàn)代人的工作和學(xué)習(xí)壓力,開發(fā)一款助眠機器人,根據(jù)大眾群體的睡眠生活習(xí)慣,逐漸降低失眠患者興奮程度,主動調(diào)節(jié)患者睡眠節(jié)律,改善因大腦興奮性增加而導(dǎo)致的睡眠紊亂等作用,主動調(diào)節(jié)睡眠、覺醒節(jié)律誘導(dǎo)人進(jìn)入睡眠,從而達(dá)到非藥物治療失眠得目的。
助眠機器人由助眠裝置(主機)配合監(jiān)測帶(從機)中的可穿戴心率脈搏傳感器監(jiān)測使用者的脈搏,經(jīng)該傳感器監(jiān)測完使用者的生理信號后,硬件電路多次對信號進(jìn)行濾波處理,Arduino微控制處理器判斷心率是否在正常范圍內(nèi)(正常人的脈搏范圍每分鐘在60~100次,平均在每分鐘80次)作為判斷使用者的睡眠質(zhì)量優(yōu)良的依據(jù)之一。
若脈搏跳動在正常范圍內(nèi),則主機通過藍(lán)牙傳輸“normal”信號與從機進(jìn)行數(shù)據(jù)通信;否則,主機通過藍(lán)牙傳輸“abnormal”信號與從機進(jìn)行數(shù)據(jù)通信,當(dāng)從機收到藍(lán)牙接收到的“abnormal”信號時,將會開啟助眠模式,AT89C51單片機控制多媒體設(shè)備播放助眠音樂。
助眠裝置(主機)如圖1所示,由功能按鍵、麥克風(fēng)、藍(lán)牙模塊、腦波播放器、揚聲器組成,助眠裝置內(nèi)嵌AT89C51最小系統(tǒng)。
圖1 助眠機器人
AT89C51最小系統(tǒng)由電源電路單元、時鐘電路、復(fù)位電路、系統(tǒng)狀態(tài)指示電路等組成。
2.1.1 電源電路單元
由于環(huán)境影響等種種原因,交流電網(wǎng)的供電電壓往往是不穩(wěn)定的,因此整流濾波電路輸出的直流電壓也就會不穩(wěn)定。另一方面,由于整流濾波電路必然存在內(nèi)阻,當(dāng)負(fù)載電流發(fā)生變化時,輸出電壓也會受到影響而發(fā)生變化。為了得到穩(wěn)定的直流電壓,必須在整流濾波電路之后采用穩(wěn)壓電路。在一個完整的單片機系統(tǒng)中,分成多種模塊供電。為了適合AT89C51單片機以及傳感器等外部設(shè)備儀器能正常工作,電源端使用三端穩(wěn)壓集成芯片LM7805和LM1117芯片作為電源電壓的轉(zhuǎn)換單元,使其產(chǎn)生穩(wěn)定的直流5V和3.3V電壓,提高為系統(tǒng)供電的穩(wěn)定性,使主控芯片的工作環(huán)境不受其他模塊干擾。
2.1.2 時鐘電路
時鐘電路產(chǎn)生像時鐘一樣準(zhǔn)確運動的振蕩電路。任何工作都按時間順序。用于產(chǎn)生這個時間的電路就是時鐘電路。時鐘電路一般由晶體振蕩器、晶振控制芯片和電容組成。時鐘電路為單片機提供頻率和幅度穩(wěn)定的脈沖序列,單片機以此脈沖將內(nèi)部電路協(xié)調(diào)一致,使其同步工作。在本系統(tǒng)設(shè)計中,AT89C51單片機外部接上12MHz的晶振振蕩器采用產(chǎn)生較高精度的脈沖,提供高頻脈沖經(jīng)過分頻處理后,成為單片機內(nèi)部時鐘信號,作為片內(nèi)各部件協(xié)調(diào)工作的控制信號。同時配合外部晶體實現(xiàn)振蕩的電路,為單片機提供運行時鐘,確保系統(tǒng)能穩(wěn)定地運行。
2.1.3 復(fù)位電路
微控制器在獲得供電的瞬間,由初始狀態(tài)開始工作。若微控制器內(nèi)的隨機存儲器、計數(shù)器等電路獲得供電后不經(jīng)復(fù)位便開始工作,可能某種干擾會導(dǎo)致微控制器因程序錯亂而不能正常工作,為此,微控制器電路需要設(shè)置復(fù)位電路。復(fù)位電路由專門的集成電路或分立元件組成,有些微控制器采用高電平復(fù)位(即通電瞬間給微控制器的復(fù)位端加入一高電平信號,正常工作時再轉(zhuǎn)為低電平),也有些微控制器采用低電平復(fù)位(即通電瞬間給微控制器的復(fù)位端加入一低電平信號,正常工作時再轉(zhuǎn)為高電平),這是由微控制器的結(jié)構(gòu)決定的。防止AT89C51單片機由于工作環(huán)境等原因造成在數(shù)據(jù)處理時發(fā)生異常,加入了重新啟動的輔助電路。復(fù)位電路的設(shè)計,使用電容和電阻等元器件形成RC充電和放電電路。在系統(tǒng)上電階段或者調(diào)試過程中,在單片機復(fù)位端產(chǎn)生一個持續(xù)的幾十毫秒的復(fù)位電平,重啟系統(tǒng)運行。
2.1.4 系統(tǒng)狀態(tài)指示電路
采用發(fā)光二極管作為系統(tǒng)運行的狀態(tài)指示.發(fā)光二極管簡稱為 LED。由含鎵(Ga)、砷(As)、磷(P)、氮(N)等的化合物制成。當(dāng)電子與空穴復(fù)合時能輻射出可見光,因而可以用來制成發(fā)光二極管。在電路及儀器中作為指示燈,或者組成文字或數(shù)字顯示。砷化鎵二極管發(fā)紅光,磷化鎵二極管發(fā)綠光,碳化硅二極管發(fā)黃光,氮化鎵二極管發(fā)藍(lán)光。因化學(xué)性質(zhì)又分有機發(fā)光二極管OLED和無機發(fā)光二極管LED。
監(jiān)測帶(從機)由Arduino UNO板、可穿戴脈搏傳感器及無線藍(lán)牙模塊組成。
2.2.1 Arduino UNO板
Arduino是一款便捷靈活、方便上手的開源電子原型平臺。包含硬件(各種型號的Arduino板)和軟件(Arduino IDE)。由一個歐洲開發(fā)團隊于2005年冬季開發(fā)它構(gòu)建于開放原始碼simple I/O界面版,并且具有使用類似Java、C語言的Processing/Wiring開發(fā)環(huán)境。主要包含兩個主要的部分:硬件部分用來連接Arduino電路板,Arduino IDE作為計算機中的程序開發(fā)環(huán)境。Arduino微控制處理器能通過可穿戴脈搏傳感器等多種傳感器來感知環(huán)境,通過控制LED信號指示燈、溫度傳感器和其他的裝置來反饋、影響環(huán)境。
2.2.2 可穿戴脈搏傳感器
可穿戴脈搏傳感器如圖2所示,其原理利用人體組織在血管搏動時造成透光率不同來進(jìn)行對脈搏測量。我們只需將其佩戴于手腕處,該傳感器模塊的內(nèi)置電路對采集的光電信號進(jìn)行濾波、放大,最終輸出模擬電壓值。模數(shù)轉(zhuǎn)換電路通過將采集到的模擬信號值轉(zhuǎn)換為數(shù)字信號,經(jīng)Arduino微控制處理器計算處理得到較精確的心率數(shù)值。為了使MCU的計算處理達(dá)到更準(zhǔn)確的精度,同時采用計數(shù)法和計時法。Arduino微控制處理器在一分鐘內(nèi)計數(shù)出脈搏數(shù)。與此同時,Arduino微控制處理器也將計算兩個相鄰脈搏之間的時間間隔。通過兩種方法的運算對比擬合,從而計算出脈搏跳動次數(shù)。
圖2 可穿戴脈搏傳感器
通過設(shè)定閾值的方法檢測信號波峰的幅值來提高識別脈搏次數(shù)的精確度。當(dāng)讀取到的信號值大于此閾值時,認(rèn)為檢測一個脈搏。
2.2.3 無線藍(lán)牙模塊
無線藍(lán)牙模塊如圖3所示,是一種集成藍(lán)牙功能的PCBA板,可以短距離無線通訊,用于無線網(wǎng)絡(luò)通訊。方案中使用HC-05無線藍(lán)牙數(shù)據(jù)模塊作為主從機的有效通信,藍(lán)牙模塊連接到微控制器的串行端口,允許微控制器通過藍(lán)牙連接與其他設(shè)備通信。該模塊可以在主模式和從模式下運行。本系統(tǒng)的設(shè)計可以用于各種應(yīng)用環(huán)境。例如,智能家居應(yīng)用,遠(yuǎn)程控制,數(shù)據(jù)記錄應(yīng)用,機器人,監(jiān)控系統(tǒng)等。當(dāng)系統(tǒng)啟動時,藍(lán)牙模塊進(jìn)入工作模式,任何藍(lán)牙設(shè)備都能搜索并使用標(biāo)準(zhǔn)密碼連接到此設(shè)備。當(dāng)藍(lán)牙的主從模塊建立連接后,主從藍(lán)牙將通過穿透模式自動匹配連接,數(shù)據(jù)通過HC-05傳輸并轉(zhuǎn)換為串行流,然后由藍(lán)牙模塊連接的微控制器讀取該串行流,從機的微控制器進(jìn)行數(shù)據(jù)處理。當(dāng)系統(tǒng)處于休眠時,藍(lán)牙進(jìn)入低功耗模式等待喚醒,用戶可以通過“在嗎”、“您好”、“開機”等喚醒詞對系統(tǒng)進(jìn)行喚醒以及功能性操作。
圖3 無線藍(lán)牙模塊
為了提高用戶的體驗感,加入了語音識別交互功能。喚醒功能采用LD3320語音模塊進(jìn)行設(shè)計,該模塊支持SPI接口和并行接口的非特定語音識別模塊,板載設(shè)計了咪頭和有源晶振,實現(xiàn)語音識別、聲控和人機對話功能。通過可動態(tài)編輯的識別關(guān)鍵詞列表,把識別的關(guān)鍵詞以字符串的形式,諸如“播放”,“上一曲”,“下一曲”,“停止”這樣的識別關(guān)鍵詞的內(nèi)容動態(tài)地傳送進(jìn)芯片,在下次識別中,芯片就可以識別這樣設(shè)定的關(guān)鍵詞語了。在對語音識別模塊配置時,添加其他的任意詞匯進(jìn)識別列表,用來吸收錯誤識別,從而達(dá)到降低語音交互的誤識別率的目的。
助眠裝置(主機)采用C語言程序進(jìn)行程序開發(fā)編寫,編譯成二進(jìn)制文件,燒錄進(jìn)AT89C51微控制器。當(dāng)AT89C51微控制器的串口接收到藍(lán)牙模塊的數(shù)據(jù)后,控制外部設(shè)備進(jìn)行相應(yīng)功能性操作。
監(jiān)測帶(從機)的Arduino微控制器通過Arduino的編程語言來編寫程序,編譯成二進(jìn)制文件,燒錄進(jìn)微控制器。對Arduino的編程是通過 Arduino編程語言 (基于 Wiring)和Arduino開發(fā)環(huán)境(基于Processing)來實現(xiàn)。監(jiān)測帶(從機)采集人體手腕的脈搏或心率的跳動次數(shù),經(jīng)檢測器對異樣信號進(jìn)行濾波處理,Arduino微控制處理器判斷心率是否正常,程序流程圖如圖4所示。
圖4 程序流程圖
若心率正常,則綠色LED指示燈開啟,MCU通過串口與藍(lán)牙主模塊進(jìn)行數(shù)據(jù)通信,待藍(lán)牙從模塊接收到“normal”和“1”校驗數(shù)據(jù)后交給助眠裝置(主機)處理。
若心率異常,則紅色LED指示燈開啟,MCU通過串口與藍(lán)牙主模塊進(jìn)行數(shù)據(jù)通信,待藍(lán)牙從模塊接收到“abnormal”和 “0”校驗數(shù)據(jù)后交給助眠裝置(主機)處理,并控制系統(tǒng)播放助眠音樂等功能性操作。
通過對系統(tǒng)的多方面運行測試,助眠裝置(主機)協(xié)調(diào)監(jiān)測帶(從機)在使用者失眠的情況下,通過檢測脈搏跳動次數(shù)后把數(shù)據(jù)通過無線藍(lán)牙傳輸?shù)紸T89C51微控制處理器進(jìn)行處理并開啟播放助眠音樂等功能,有利于失眠者緩解情緒,提高睡眠質(zhì)量。
本文敘述了助眠機器人的系統(tǒng)設(shè)計,控制電路結(jié)構(gòu)簡單,程序設(shè)計靈活,便于實現(xiàn)。實驗證明,本系統(tǒng)能有效地幫助我們監(jiān)測和改善睡眠狀況,該方案設(shè)計有效。