趙鑫,于豐僑,袁小平
(中國礦業大學信息與控制工程學院,江蘇徐州 221116)
隨著人口老齡化的加重,老年人群體所占比重逐年增加;同時,老年人群體由于身體機能的衰退,更容易發生跌倒等突發狀況。如何有效地監測老年人群體的健康狀況,提高其生活質量,是當前亟需解決的一大難題。
據調查統計,意外跌倒是老年人突發狀況的主要來源。基于該問題,文中提出了一種健康監測手環系統設計,該系統可以實時監測老年人是否發生跌倒,當監測到意外跌倒后,系統會自動發送求救信息,及時讓老年人得到救助。此外,該系統還可以監測睡眠質量、運動情況等,全面保障老年人群體的健康生活,具有良好的實用價值。
健康監測手環系統分為手環端和APP 端兩部分,如圖1 所示。手環端通過跌倒監測模塊實時獲取老年人運動狀態,當發生跌倒時,主控模塊將跌倒信息以藍牙通信方式傳輸到APP 端,再通過APP 將求救信息發送給預設的緊急聯系人,求救信息包括老年人所處地理位置等信息。睡眠監測模塊、運動監測模塊、氣候監測模塊分別用于其他信息的采集,并在手環上實時顯示,或通過APP 來查看相關信息。

圖1 系統框架圖
硬件設計包括主控電路、串口通信電路、檢測電路、顯示電路、電源電路等,采用雙層PCB 設計,手環尺寸僅為4.2 cm×4.5 cm,實物如圖2 所示,十分小巧,便于佩戴。

圖2 手環實物圖
硬件設計中,顯示電路以ST7789作為顯示驅動,并搭配1.54寸IPS顯示屏;串口通信電路采用CP2104芯片,其所需外圍器件少,數據傳輸穩定;電源電路包括1 個電源開關和3 個功能按鍵,用于控制不同界面的切換和參數的顯示;其他硬件電路將在下文詳細介紹。
主控電路采用意法半導體(ST)的STM32F411CE U6 作為控制核心,該芯片基于ARM Cortex-M4 32 位RISC 內核,具有浮點單元(FPU),可以加速運動狀態的解算;此外,該芯片外設種類豐富,滿足系統實際需求。
手環與APP 通信基于藍牙通信方式,通過Dialog半導體的DA14585 藍牙SoC 實現通信[1],該SoC 支持藍牙5.0、Mesh 等技術標準[2],具有極低的功耗。在省電模式下,將廣播周期設置為600 ms,經實際測試,平均功耗僅為20 μA/s,適合手環等電池供電設備。
檢測電路部分可實現包括加速度、陀螺儀、氣壓、溫度等原始數據的獲取,對原始數據處理后,可得到各項健康參數。其中三軸加速度和三軸陀螺儀數據通過InvenSense 的MPU6050 六軸傳感器獲取,具體電路如圖3 所示,該電路采用IIC 通信方式,實際通信速率可達400 kHz,并自帶數據運動處理器(DMP),滿足系統數據采集和處理的實時性需求。

圖3 MPU6050檢測電路圖
氣壓和溫度數據通過Bosch 的BMP280 傳感器得到,該傳感器具有寬測壓范圍和高分辨率,最高精度可達0.16 Pa;溫度測量可實現0.000 3 ℃的高分辨率;和MPU6050 相同,采用IIC 通信方式[3],可以最大化節省主控核心的IO 資源,具體電路如圖4 所示。

圖4 BMP280檢測電路圖
為獲取3.3 V 系統工作電壓,電源電路通過對鋰電池輸出電壓先升壓再穩壓得到所需電壓,如圖5 所示。PS7516 升壓芯片將鋰電池輸出的3.7 V 電壓升至5 V,再通過RT9013線性穩壓器得到3.3 V電壓。

圖5 電源電路圖
電池充電管理芯片TC4056A 用于給鋰電池充電,調節PROG 管腳編程電阻可以得到不同大小的充電電流IBAT,具體比例關系如式(1)所示;當處于充電或充滿狀態時,CHRG 和STDBY 管腳會分別輸出一個低電平標志。

手環端軟件部分基于LVGL 嵌入式GUI 實現任務調度和圖形用戶界面(GUI)的顯示,基本控制流程如圖6 所示。系統上電復位后,初始化各類外設和LVGL,LVGL 初始化完畢后,創建任務并開始調度。

圖6 軟件控制流框圖
GUI 顯示任務用于時間等數據的顯示;跌倒監測任務在判斷是否跌倒的同時,會實時獲取使用者的姿態數據;睡眠監測任務可獲取使用者睡眠時間和睡眠質量數據;運動監測包括步數、運動路程、卡路里消耗等數據;此外,還可以在氣候監測任務中實時得到外界溫度、氣壓和海拔數據。
意外跌倒是老年人突發狀況的主要來源,因此對老人年的運動狀態進行監測至關重要。監測從技術分類上出發,可分為閾值監測[4-6]和基于深度學習的監測[7-9]。閾值監測是指將傳感器采集到的加速度等數據處理后,與預設閾值進行比對,從而作出跌倒與否的判斷。該方法實現較為簡單,對硬件要求較低,適合手環等低功耗設備。而基于深度學習的監測對采集到的樣本數據進行模型訓練,再部署到硬件設備中進行推理判斷。該方法具有較高的精度,但計算量過大,一般的低功耗設備難以滿足算力和功耗的要求。綜合考量,文中采用閾值監測。
人在跌倒瞬間,人體重心高度會發生變化,基于此,較于傳統的基于加速度的閾值監測方法[10-11],文中提出的監測方案還引入了高度差這一參數,以進一步提高監測的準確性,具體監測流程如圖7 所示。

圖7 跌倒監測算法流程
首先,從MPU6050 獲取原始數據進行處理,得到x軸、y軸和z軸的加速度值;從BMP280 獲取氣壓數據,將其轉換后得到海拔高度數據。對人體跌倒時間進行測試,將跌倒監測周期設置為1 ms。每次監測任務中,將獲取的x、y、z軸加速度值與前一次數據分別作差后取絕對值再求和,得到合加速度差,若該值未超過閾值th_v,則未發生跌倒;反之,進行高度差的判斷。只有當高度差也超過預設的閾值th_h時,才會觸發跌倒標志,并將跌倒信息發送至APP端,進行后續求救信息發送等操作。
對老年人睡眠監測的方式有多導睡眠監測(PSG)、基于脈搏血氧的監測、基于腕動信號的監測等方式[12-15],其中,前兩種睡眠監測方式技術復雜,且價格昂貴,難以應用到手環上;而基于腕動信號的監測方式利用三軸加速度值實現睡眠監測,實現成本低,易于部署到手環上。
文中基于腕動信號實現睡眠監測,具體流程如圖8 所示。對六軸傳感器采集到的數據作預處理,將得到x軸、y軸和z軸的合加速度值作為腕動數值量,將其和預設閾值th_s 比較,若大于閾值,則計數器加1。采樣頻率為1 kHz,以1 min 作為最小睡眠單元,當采集時間達到1 min 時,統計計數器的有效值,并和前后相鄰4 min 的數據一起代入式(2)中計算,若計算值小于1,則睡眠時間加1。

圖8 睡眠監測算法流程圖

式(2)是在John B.Webster于1982 年在《An Activity-Based Sleep Monitor Systemor Ambulatory Use》中所提的睡眠監測方法上修改而來,其中D是睡-醒狀態值,當D小于1 時,處于覺醒狀態;反之,處于睡眠狀態。A-2、A-1、A0、A1、A2是當前這1 min 和前后相鄰4 min 的腕活動量,即計數器的有效值。P-2、P-1、P0、P1、P2是用于調節算法靈敏度的縮放因子。
為增強手環界面的顯示效果,采用LVGL 進行GUI 設計[16],LVGL 是一個開源輕量級圖形庫,兼容性強,可以很好地嵌入到手環系統中。GUI 分為主頁、菜單頁、應用頁三級界面,如圖9 所示。其中,主頁顯示時間、運動步數、藍牙連接狀態、電池狀態等信息;菜單頁用于切換應用頁的顯示;應用頁則分別顯示各項健康參數、系統信息等。

圖9 GUI部分界面圖
文中以跌倒監測、睡眠時間和運動步數3 項數據為例進行實際測試,以驗證系統功能的可行性。針對跌倒監測,選取3 位測試者進行實驗,為確保實驗的準確率,測試者佩戴手環,身體直立,手臂自然下垂;測試內容分為前摔、后摔、側摔、坐下和躺下5種行為,每種行為測試50 次,實驗數據如表1 所示。從實驗數據可知,跌倒監測準確率在90%以上,而對正常行為的誤判不超過2%。

表1 跌倒監測實驗結果
睡眠測試以23:00~9:00 為測試區間,測試者手腕上同時佩戴文中所設計手環和專業健康監測手表,實驗數據如表2 所示,由表2 可知,所設計手環的監測誤差在15%以內。

表2 睡眠監測實驗結果
為測試計步器功能,測試者以勻速行走100 步,并保持手臂較大的擺幅,測試結果如表3 所示,由表3 可知,步數監測準確率在95%以上。

表3 步數監測實驗結果
基于上述測試結果,系統各項指標基本滿足功能需求,可行性較高。
文中設計了一種老年人健康監測的手環系統,給出了跌倒監測、睡眠監測等健康參數監測的方案,實際測試各項指標均滿足了實驗要求,具有一定的實用價值。然而,各項測試結果都在較為理想的實驗條件下所得,如何將其有效地應用于復雜多變的日常生活環境中,在未來的研究中將進一步完善。