王亞偉,薛建彬,任漢能
(1.南京航空航天大學機電學院,江蘇 南京 210016;2.中國航天科工集團8511研究所,江蘇 南京 210007)
我國已經進入老齡化社會,調查數據表明,大量老年人患有神經系統、腦卒中和心血管疾病,這些疾病會導致偏癱或運動功能喪失,給患者的生活造成不便。研究表明,及時、科學的康復訓練運動有助于恢復肢體功能。但是康復訓練需要在專業人士的指導下進行,否則由于訓練方法不正確、訓練量過少或過多,容易錯過最佳的康復時機或者造成二次損傷[1]。目前的訓練方式主要是醫生和患者面對面訓練,但是老齡化比例和醫療設施出現城鄉倒置,因此大部分老年人需要異地康復訓練。康復訓練是循序漸進的過程,持續時間久,康復期間需要家人陪同,這些因素增加開銷和時間,使得一部分人放棄康復訓練。基于此現狀,提出遠程康復訓練系統,使患者在家中進行康復訓練,與醫生通過系統進行線上交流。
2005年,芝加哥康復研究中心和斯坦福大學聯合研制了一套低成本便攜式的遠程康復訓練系統,患者通過患者端的康復設備做康復訓練,治療師通過實物模型遠程監測康復運動[2]。2007年東南大學研究基于Internet的遠程控制康復訓練系統[3],病人端康復訓練系統由康復訓練機械臂、外部測控電路、控制計算機和攝像頭組成。攝像頭獲取病人訓練的視頻信息,通過Internet發往醫生端的計算機。醫生根據病人端反饋的視頻圖像和力信號,判斷病人的康復情況。2013年,東南大學宋愛國等人研究遠程康復系統[4],同樣是將視頻通過Wi-Fi/3G通信技術傳到醫療中心的服務器中,醫療師遠程監測康復訓練。
本文搭建遠程康復平臺,通過STM32控制模塊采集傳感器數據,并將姿態、表面肌電信號EMG通過Wi-Fi模塊使用MQTT協議發送至云平臺,經姿態解算、濾波、特征提取等數據處理后,將有用信息顯示在網頁端,為醫生的康復診斷提供參考。
本文的物聯網系統主要功能為數據采集、傳輸、存儲、分析和應用,與物聯網[5]的三層結構相映射。基于對系統終端控制模塊、通信技術、通用協議,以及與服務器的選擇,設計的系統整體架構如圖1所示。

圖1 系統整體架構
在所設計的系統中,各層的功能如下所述。
a.設備層。指患者或患者使用的康復設備。
b.采集層。利用姿態傳感器和表面肌電傳感器,采集患者康復運動時需要的關節數據和表面肌電信號。
c.傳輸層。采用Wi-Fi通信技術,通過ESP8266模組與云服務器通信,采集的數據通過MQTT協議傳輸,采集層和傳輸層的控制模塊為STM32。
d.應用層。采集的數據存儲在云端數據庫中,經數據分析后通過網頁查詢、顯示。
本節主要介紹數據采集、上傳和網頁設計,屬于物聯網系統的采集、傳輸和應用層。在康復系統中,首先根據功能需求選擇合適的傳感器,然后通過程序采集傳感器的AD數據,在STM32上進行姿態傳感器的姿態解算和表面肌電傳感器的電壓模擬量的轉換,將轉換后的數據上傳至云平臺,進行進一步的處理和分析。
上肢康復運動時需要采集姿態信息和運動時的肌電信息,姿態信息用于評價康復的關節活動度,肌電信號用于評價肌力。基于實驗需求,選擇MPU-9250模塊和MyoWare肌肉電傳感器。MPU-9250模塊是一個復合芯片,由2部分組成,其中一部分是三軸加速度計和三軸陀螺儀,另外一部分是三軸磁力計。九軸數據經過融合可得到歐拉角,用歐拉角表示運動過程中的姿態信息,其中加速度計和陀螺儀會補償角度偏移,從而使測量的角度精確。MyoWare肌肉電傳感器是通過電位測量肌肉的活動,傳感器由3部分組成,即肌肉中端電極、肌肉末梢電極和參考電極。在采集肌電信號時,中端電極放在要采集肌肉的中間,盡可能遠離其他肌肉,肌肉末梢電極順勢放在下面,參考電極放在沒有肌肉的位置上。
采集MPU-9250模塊數據時采用IIC協議,將STM32作為IIC通信主機,MPU-9250作為IIC通信從機,并通過I/O口模擬IIC協議,使用PB6和PB7作為通信的時鐘線和數據線,讀取傳感器數據。姿態數據讀取流程如圖2a所示。MPU-9250初始化包括STM32的I/O口設置,MPU-9250傳感器的陀螺儀、加速度計、磁力計量程的設置,以及采樣頻率的設置等。初始化設置成功后可讀取傳感器的數據,原始數據是AD值,AD值會有跳動,因此采用去極值平均滑動窗口濾波,同時將初始狀態的傳感器讀數記錄下來,去零偏。然后根據設置的量程將AD值轉換為具有意義的物理值。姿態解算時,參數是轉換之后的值。姿態解算過程如圖2b所示。姿態求解用互補濾波算法[6],互補濾波算法的原理就是將三軸角速度、三軸加速度、三軸磁力計數據融合成四元素,然后用四元素求歐拉角[7],每一次解算完成后,用新的四元素的值代替上一次四元素的值。經預處理和姿態解算的關節角度信號以曲線的形式顯示在網頁上,如圖3所示,可清楚地看到病人在康復時的關節活動度。

圖2 傳感器數據采集和預處理

圖3 關節角度信號
表面肌電傳感器使用STM32的ADC采集,ADC是12位逐次逼近的模擬數字轉換器。肌電信號讀取流程如圖2c所示。ADC初始化包括設置STM32的I/O口、采樣頻率、ADC通道等;因為AD值會有一定的波動,因此使用去極值平均滑動窗口濾波,同時去零偏;最后將得到的AD值根據基準電壓轉換成肌電電位值。由于肌電信號的頻率主要分布在 10~500 Hz,并且采集的原始肌電信號含有工頻干擾等各種噪聲,所以通過 10~500 Hz 帶通濾波器和50 Hz 陷波濾波器,分別去除原始肌電信號的雜波信號和工頻干擾,并將肌電信號以曲線的形式在網頁上顯示。圖4是做4個曲肘動作時肱二頭肌的原始肌電信號和濾波之后的信號曲線,從圖中看出,帶通濾波和陷波處理很好地濾除干擾噪聲,為進一步求肌電信號的特征值做準備。

圖4 肌電信號
數據采集和預處理之后,需要上傳到云平臺,本文采用Wi-Fi模塊ESP8266將數據通過MQTT協議發送至服務器。ESP8266通過AT指令與服務器建立TCP連接,并實現數據上傳,主要流程如圖5所示。首先是ESP8266模塊、串口3和相關定時器的初始化,這部分主要是初始化相關I/O口、ESP8266模塊復位、設置TCP客戶端模式等操作,定時器的作用是判斷接收信號是否完成,完成則產生中斷進行處理;然后開始發送AT指令,連接路由器并進行相關設置;最后連接服務器。從模塊復位開始,對發送指令后的返回值進行判斷,只有返回值正確才會進行下一步,否則返回到“模塊復位”那一步重新開始。

圖5 ESP8266連接服務器流程
物聯網終端和服務器建立了TCP鏈接之后,通過搭建MQTT協議環境[8],實現向服務器發送數據。首先在云服務器上搭建MQTT的服務器EMQ,EMQ是基于Erlang/OTP平臺開發的開源物聯網MQTT消息服務器。EMQ搭建好之后,在物聯網終端移植開源的Paho-mqtt.c庫,并向EMQ發送請求連接消息,連接消息包括協議名稱、協議版本、心跳包發送時間間隔、保活時間、服務器用戶名、客戶端ID和密碼等信息。當收到服務器返回的字符串“20020000”,表示物聯網終端與EMQ建立穩定的連接,調用其封裝函數即可實現基于MQTT協議的發布和訂閱功能,此時物聯網終端可以訂閱服務器的主題、接收服務器發送的消息和發布數據。發送數據時,將傳感器數據編碼成JSON格式,然后封裝到MQTT的數據報文中,并發送到EMQ對應的topic中,然后再由服務器進行下一步處理。傳感器數據的JSON格式如下:
{
“ClientID”:xxxxxxx, //設備ID
“Pose”:xxxxxxx, //姿態數據
“Myo1”:xxxxxxx, //肌電信號
}
經過預處理的傳感器數據上傳到云端后,通過emqx_auth_mysql 插件將數據保存到數據庫中,實現數據持久化,并通過云服務器對數據進行進一步的處理,包括肌電信號的時域和頻域的特征提取等,處理之后將結果通過網頁顯示,醫生和患者可通過網頁查看康復數據。
網頁是為醫生和患者使用開發的,主要實現數據存儲、查看和分析等功能,該網頁可以遠程制定康復計劃、查看康復訓練,并做出康復評價,還有醫生患者的個人信息管理和登錄注冊等輔助功能。網頁分為醫生端和患者端2個部分,其功能如圖6所示。醫生端的功能包括個人信息注冊、遠程開處方、查看病人信息、觀看病人康復訓練和寫評估報告等功能;患者端的功能包括填寫病例、查看醫生信息及處方、訓練計時和查看評估報告等功能。

圖6 網頁功能
網頁整體框架選用JavaEE的三層框架,包括View展示層、Service業務邏輯層和DAO數據訪問層。展示層主要負責和用戶層交互的頁面顯示;業務邏輯層負責頁面中具體功能的實現;數據訪問層負責與數據庫交互,實現對數據庫中數據的增刪改查操作。各層功能清晰,相互依賴,可以降低功能模塊之間的耦合度,便于閱讀和維護。網頁的三層架構如圖7所示,展示層包括登錄、注冊等頁面;業務邏輯層實現頁面功能,包括登錄、注冊、病例填寫、病例查看、查看康復訓練等功能;數據訪問層包括個人信息實體類、康復信息實體類等。

圖7 網頁架構
物聯網終端實物如圖8所示,包括傳感器、觸摸屏、傳輸模塊和控制模塊STM32。傳感器包括姿態傳感器MPU-9250和MyoWare肌電傳感器,分別采集康復運動時的姿態信號和肌電信號,用于關節活動度和肌力的評價;觸摸屏是TFT觸摸屏,可通過觸摸開始或停止數據采集,記錄訓練時間等功能。

圖8 物聯網終端實物
網頁能夠實現醫生和患者的注冊和登錄。登錄成功后,進入個人頁面,可通過頁面上的功能鏈接查看對應的內容,包括病例填寫、病例查看、查看康復訓練等功能。醫生、患者可通過網頁看到康復訓練時的肌電信號圖和姿態曲線圖,查看康復過程中肌電信號的時域和頻域的特征,以及康復結束時的平均肌力和關節活動度的數值;同時,頁面顯示是否處于肌肉疲勞狀態以及開始肌肉疲勞的時間,并顯示上次康復訓練、第1次康復訓練時,患肢的平均肌肉和關節活動度的值以及肌肉疲勞的情況,可對比數據評價康復訓練效果。
本文提出上肢遠程康復系統,以STM32為控制模塊,通過Wi-Fi通信技術,使用MQTT協議,將康復數據上傳云平臺,并保存到數據庫中對應的表中,同時開發醫生、患者端的網頁,包括開處方、查看康復訓練等主要功能和注冊、登錄等輔助功能,方便醫生和患者的使用。后續會設計實驗,確定有效上肢康復運動,采集上肢康復運動過程中的各關節和相關肌肉的數據,驅動Unity中的模型運動,并將處理數據的程序以插件的形式上傳至云平臺,對康復數據做出初步的評估,為醫生康復評價提供參考。