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