申耀武,梁健恒,郭強,成進勇
(廣東碧桂園職業學院,廣東清遠,511500)
研究《如何科學健康睡眠》一直是睡眠機器人研究領域的熱點,傳統的睡眠儀是一種針對幫助人體睡眠的理療儀器,它運用電磁刺激生物波等技術來幫助人們睡眠,睡眠儀可分為低頻電磁刺激誘導睡眠、傳統生物反饋治療、數字頻率合成仿生物電波。為了減緩現代人的工作和學習壓力,開發一款助眠機器人,根據大眾群體的睡眠生活習慣,逐漸降低失眠患者興奮程度,主動調節患者睡眠節律,改善因大腦興奮性增加而導致的睡眠紊亂等作用,主動調節睡眠、覺醒節律誘導人進入睡眠,從而達到非藥物治療失眠得目的。
助眠機器人由助眠裝置(主機)配合監測帶(從機)中的可穿戴心率脈搏傳感器監測使用者的脈搏,經該傳感器監測完使用者的生理信號后,硬件電路多次對信號進行濾波處理,Arduino微控制處理器判斷心率是否在正常范圍內(正常人的脈搏范圍每分鐘在60~100次,平均在每分鐘80次)作為判斷使用者的睡眠質量優良的依據之一。
若脈搏跳動在正常范圍內,則主機通過藍牙傳輸“normal”信號與從機進行數據通信;否則,主機通過藍牙傳輸“abnormal”信號與從機進行數據通信,當從機收到藍牙接收到的“abnormal”信號時,將會開啟助眠模式,AT89C51單片機控制多媒體設備播放助眠音樂。
助眠裝置(主機)如圖1所示,由功能按鍵、麥克風、藍牙模塊、腦波播放器、揚聲器組成,助眠裝置內嵌AT89C51最小系統。

圖1 助眠機器人
AT89C51最小系統由電源電路單元、時鐘電路、復位電路、系統狀態指示電路等組成。
2.1.1 電源電路單元
由于環境影響等種種原因,交流電網的供電電壓往往是不穩定的,因此整流濾波電路輸出的直流電壓也就會不穩定。另一方面,由于整流濾波電路必然存在內阻,當負載電流發生變化時,輸出電壓也會受到影響而發生變化。為了得到穩定的直流電壓,必須在整流濾波電路之后采用穩壓電路。在一個完整的單片機系統中,分成多種模塊供電。為了適合AT89C51單片機以及傳感器等外部設備儀器能正常工作,電源端使用三端穩壓集成芯片LM7805和LM1117芯片作為電源電壓的轉換單元,使其產生穩定的直流5V和3.3V電壓,提高為系統供電的穩定性,使主控芯片的工作環境不受其他模塊干擾。
2.1.2 時鐘電路
時鐘電路產生像時鐘一樣準確運動的振蕩電路。任何工作都按時間順序。用于產生這個時間的電路就是時鐘電路。時鐘電路一般由晶體振蕩器、晶振控制芯片和電容組成。時鐘電路為單片機提供頻率和幅度穩定的脈沖序列,單片機以此脈沖將內部電路協調一致,使其同步工作。在本系統設計中,AT89C51單片機外部接上12MHz的晶振振蕩器采用產生較高精度的脈沖,提供高頻脈沖經過分頻處理后,成為單片機內部時鐘信號,作為片內各部件協調工作的控制信號。同時配合外部晶體實現振蕩的電路,為單片機提供運行時鐘,確保系統能穩定地運行。
2.1.3 復位電路
微控制器在獲得供電的瞬間,由初始狀態開始工作。若微控制器內的隨機存儲器、計數器等電路獲得供電后不經復位便開始工作,可能某種干擾會導致微控制器因程序錯亂而不能正常工作,為此,微控制器電路需要設置復位電路。復位電路由專門的集成電路或分立元件組成,有些微控制器采用高電平復位(即通電瞬間給微控制器的復位端加入一高電平信號,正常工作時再轉為低電平),也有些微控制器采用低電平復位(即通電瞬間給微控制器的復位端加入一低電平信號,正常工作時再轉為高電平),這是由微控制器的結構決定的。防止AT89C51單片機由于工作環境等原因造成在數據處理時發生異常,加入了重新啟動的輔助電路。復位電路的設計,使用電容和電阻等元器件形成RC充電和放電電路。在系統上電階段或者調試過程中,在單片機復位端產生一個持續的幾十毫秒的復位電平,重啟系統運行。
2.1.4 系統狀態指示電路
采用發光二極管作為系統運行的狀態指示.發光二極管簡稱為 LED。由含鎵(Ga)、砷(As)、磷(P)、氮(N)等的化合物制成。當電子與空穴復合時能輻射出可見光,因而可以用來制成發光二極管。在電路及儀器中作為指示燈,或者組成文字或數字顯示。砷化鎵二極管發紅光,磷化鎵二極管發綠光,碳化硅二極管發黃光,氮化鎵二極管發藍光。因化學性質又分有機發光二極管OLED和無機發光二極管LED。
監測帶(從機)由Arduino UNO板、可穿戴脈搏傳感器及無線藍牙模塊組成。
2.2.1 Arduino UNO板
Arduino是一款便捷靈活、方便上手的開源電子原型平臺。包含硬件(各種型號的Arduino板)和軟件(Arduino IDE)。由一個歐洲開發團隊于2005年冬季開發它構建于開放原始碼simple I/O界面版,并且具有使用類似Java、C語言的Processing/Wiring開發環境。主要包含兩個主要的部分:硬件部分用來連接Arduino電路板,Arduino IDE作為計算機中的程序開發環境。Arduino微控制處理器能通過可穿戴脈搏傳感器等多種傳感器來感知環境,通過控制LED信號指示燈、溫度傳感器和其他的裝置來反饋、影響環境。
2.2.2 可穿戴脈搏傳感器
可穿戴脈搏傳感器如圖2所示,其原理利用人體組織在血管搏動時造成透光率不同來進行對脈搏測量。我們只需將其佩戴于手腕處,該傳感器模塊的內置電路對采集的光電信號進行濾波、放大,最終輸出模擬電壓值。模數轉換電路通過將采集到的模擬信號值轉換為數字信號,經Arduino微控制處理器計算處理得到較精確的心率數值。為了使MCU的計算處理達到更準確的精度,同時采用計數法和計時法。Arduino微控制處理器在一分鐘內計數出脈搏數。與此同時,Arduino微控制處理器也將計算兩個相鄰脈搏之間的時間間隔。通過兩種方法的運算對比擬合,從而計算出脈搏跳動次數。

圖2 可穿戴脈搏傳感器
通過設定閾值的方法檢測信號波峰的幅值來提高識別脈搏次數的精確度。當讀取到的信號值大于此閾值時,認為檢測一個脈搏。
2.2.3 無線藍牙模塊
無線藍牙模塊如圖3所示,是一種集成藍牙功能的PCBA板,可以短距離無線通訊,用于無線網絡通訊。方案中使用HC-05無線藍牙數據模塊作為主從機的有效通信,藍牙模塊連接到微控制器的串行端口,允許微控制器通過藍牙連接與其他設備通信。該模塊可以在主模式和從模式下運行。本系統的設計可以用于各種應用環境。例如,智能家居應用,遠程控制,數據記錄應用,機器人,監控系統等。當系統啟動時,藍牙模塊進入工作模式,任何藍牙設備都能搜索并使用標準密碼連接到此設備。當藍牙的主從模塊建立連接后,主從藍牙將通過穿透模式自動匹配連接,數據通過HC-05傳輸并轉換為串行流,然后由藍牙模塊連接的微控制器讀取該串行流,從機的微控制器進行數據處理。當系統處于休眠時,藍牙進入低功耗模式等待喚醒,用戶可以通過“在嗎”、“您好”、“開機”等喚醒詞對系統進行喚醒以及功能性操作。

圖3 無線藍牙模塊
為了提高用戶的體驗感,加入了語音識別交互功能。喚醒功能采用LD3320語音模塊進行設計,該模塊支持SPI接口和并行接口的非特定語音識別模塊,板載設計了咪頭和有源晶振,實現語音識別、聲控和人機對話功能。通過可動態編輯的識別關鍵詞列表,把識別的關鍵詞以字符串的形式,諸如“播放”,“上一曲”,“下一曲”,“停止”這樣的識別關鍵詞的內容動態地傳送進芯片,在下次識別中,芯片就可以識別這樣設定的關鍵詞語了。在對語音識別模塊配置時,添加其他的任意詞匯進識別列表,用來吸收錯誤識別,從而達到降低語音交互的誤識別率的目的。
助眠裝置(主機)采用C語言程序進行程序開發編寫,編譯成二進制文件,燒錄進AT89C51微控制器。當AT89C51微控制器的串口接收到藍牙模塊的數據后,控制外部設備進行相應功能性操作。
監測帶(從機)的Arduino微控制器通過Arduino的編程語言來編寫程序,編譯成二進制文件,燒錄進微控制器。對Arduino的編程是通過 Arduino編程語言 (基于 Wiring)和Arduino開發環境(基于Processing)來實現。監測帶(從機)采集人體手腕的脈搏或心率的跳動次數,經檢測器對異樣信號進行濾波處理,Arduino微控制處理器判斷心率是否正常,程序流程圖如圖4所示。

圖4 程序流程圖
若心率正常,則綠色LED指示燈開啟,MCU通過串口與藍牙主模塊進行數據通信,待藍牙從模塊接收到“normal”和“1”校驗數據后交給助眠裝置(主機)處理。
若心率異常,則紅色LED指示燈開啟,MCU通過串口與藍牙主模塊進行數據通信,待藍牙從模塊接收到“abnormal”和 “0”校驗數據后交給助眠裝置(主機)處理,并控制系統播放助眠音樂等功能性操作。
通過對系統的多方面運行測試,助眠裝置(主機)協調監測帶(從機)在使用者失眠的情況下,通過檢測脈搏跳動次數后把數據通過無線藍牙傳輸到AT89C51微控制處理器進行處理并開啟播放助眠音樂等功能,有利于失眠者緩解情緒,提高睡眠質量。
本文敘述了助眠機器人的系統設計,控制電路結構簡單,程序設計靈活,便于實現。實驗證明,本系統能有效地幫助我們監測和改善睡眠狀況,該方案設計有效。