張好杰,郭 語,吳鐘鳴
(金陵科技學院 機電工程學院,江蘇 南京 211169)
據(jù)世界衛(wèi)生組織數(shù)據(jù)中心的統(tǒng)計,我國中風患者中接近80%的中風患者因未能及時進行康復治療,導致肌肉萎縮、偏癱等,嚴重影響患者的生活質量[1]。傳統(tǒng)的康復治療不僅消耗大量的人力、物力,且訓練效果不佳[2],而康復訓練儀器可以給患者提供合理的訓練任務,滿足患者在不同康復階段的需求。
近年來,國內外的大學均開展了對于上肢康復訓練儀的研究,例如,美國麻省理工學院研制的MIT-Manus機器人,能夠用于肘關節(jié)的康復訓練;卡內基梅隆大學基于WAM機器人進行了相關康復醫(yī)療的研究[3]。華中科技大學設計了針對腕關節(jié)的康復訓練機構[4];哈爾濱工業(yè)大學、東北大學等也在上肢康復訓練儀理論和控制方面進行了研究[5-6]。
然而,市場上存在的上肢康復訓練儀,大多存在一些不足,例如自由度較少、集成度不高、不夠智能化等。針對這些問題,本文設計了一種基于單片機的上肢康復訓練儀交互力采集系統(tǒng),并對結構工作原理、系統(tǒng)軟硬件設計、數(shù)據(jù)處理等方面進行闡述。
文章的研究對象為一種球鉸式上肢康復訓練儀,其結構如圖1所示。其工作原理為:訓練手柄與球轉子相連,3個定子支架上安裝有牛眼輪,用于定位球轉子,底座中含有盤絲-小傘齒輪結構,該結構與摩擦定子底部的螺紋連接,用于調節(jié)摩擦定子的徑向移動,以調節(jié)球轉子的受力大小。文章針對該上肢康復訓練儀設計力采集裝置,將薄膜力傳感器布置在力采集倉中,其內部結構如圖2所示,由于該裝置工作時涉及3個自由度的訓練,訓練手柄中布置活動軸,活動軸上有4個突起,在活動軸與力采集倉外殼之間布置有4個薄膜力傳感器,用以檢測力值。
圖1 上肢康復訓練儀結構示意
圖2 力傳感器布置示意
力傳感器的布置方式確定之后,需確定力傳感器測量值與手柄受力之間的關系。通過模擬訓練者在訓練過程中的狀況,繪制出力傳遞關系如圖3所示。
圖3 力傳遞關系
假設訓練者對手柄施加的力為主動力F,第i個力傳感器所測量的力FNi,選取O點為簡化中心,則主動力F對O點的作用可簡化為主動力F′和主動力矩MO(F)。根據(jù)靜力學原理可知:4個力傳感器所測得的力FNi的矢量和與簡化后的主動力F′相平衡,其靜力平衡方程可表示為:
(1)
(2)
文章設計的上肢康復訓練儀力采集系統(tǒng)由力采集模塊、信號采集處理模塊、數(shù)據(jù)顯示模塊3個部分組成,如圖4所示。其中力采集模塊由薄膜力敏力傳感器與電壓轉換模塊組成。當康復者進行康復訓練時,施加在力傳感器薄膜區(qū)域的力會發(fā)生改變,導致力傳感器中電阻值的變化,進而獲取力信息,并將其發(fā)送給電壓轉換模塊進行轉換。信號采集處理模塊的核心是Arduino單片機,單片機與電壓轉換模塊與液晶顯示模塊相連,用于接收經電壓轉換模塊轉換后的力信息,并將力信息進行計算、校核,最后,將處理后的信息發(fā)送給數(shù)據(jù)顯示模塊,以顯示由單片機發(fā)送過來的實時交互力信息。
圖4 力采集系統(tǒng)組成框架
在系統(tǒng)結構搭建完成后,需確定系統(tǒng)硬件的具體型號,其中,Arduino單片機作為整個系統(tǒng)的核心,需配合系統(tǒng)的硬件進行選取。由于系統(tǒng)中力傳感器的數(shù)量為4個,即需要3個對應的IO接口,據(jù)此確定單片機型號為具有54路數(shù)字輸入輸出的Arduino Mega2560,用于接收、計算、校核數(shù)據(jù)。由于力傳感器布置于活動軸與力采集倉外殼之間,要求其尺寸小、質量輕、同時得滿足測量要求,據(jù)此確定力傳感器型號為薄膜力敏力傳感器FSR402,用于檢測力值。顯示模塊硬件的選取需兼顧到與系統(tǒng)的適配性,據(jù)此選取與 Arduino單片機適配性較好的FYLCD1602A字符型液晶顯示屏,用于力值的輸出。
系統(tǒng)硬件設計完成后,需要根據(jù)系統(tǒng)工作流程進行軟件設計,系統(tǒng)的工作流程如圖5所示。當訓練者進行康復訓練時,首先,力采集模塊采集力信息;其次,經電壓轉換模塊將信息進行轉換并發(fā)送給Arduino單片機進行接收、計算、處理;最后,單片機將處理后的信息發(fā)送給數(shù)據(jù)顯示模塊,實現(xiàn)數(shù)據(jù)的輸出。
圖5 系統(tǒng)工作流程
根據(jù)上述系統(tǒng)工作流程,文章使用Arduino IDE作為開發(fā)環(huán)境編譯程序,對數(shù)據(jù)接收、計算、校核最終輸出到顯示模塊上。
為直觀地得到康復訓練者在康復訓練時強度的大小,必須對現(xiàn)有數(shù)據(jù)進行處理。對數(shù)據(jù)處理的過程主要分為兩個方面:(1)采取固定力測試實驗,以找到力傳感器采集到的信息與具體力值的關系。(2)根據(jù)上述關系編寫數(shù)據(jù)處理代碼。力傳感器測量電路原理如圖6所示,力傳感器與固定電阻R0串聯(lián),當壓力作用于力傳感器時,其電阻Rs的阻值發(fā)生變化,則固定電阻R0輸出電壓由式(3)確定。
Vout=Vcc×R0/(R0+Rs)
(3)
圖6 力傳感器電路原理
在交互力采集之前,需對力傳感器進行標定,以確定不同力值對應的電壓數(shù)值。首先,在實驗電路中接入10 kΩ的保護電阻,將連接好的電路通過USB與電腦相接,并且使用0.2~6.0 kg的重物分別放到傳感器待測面上,經多次實驗獲得去程和回程數(shù)據(jù);其次,借助Matlab進行數(shù)據(jù)處理[7],數(shù)據(jù)與擬合結果如圖7所示。
圖7 力值-電壓值曲線
為在康復者訓練時直觀地將訓練數(shù)據(jù)信息輸出到液晶顯示模塊上,需在Arduino IDE中進行數(shù)據(jù)處理代碼的編譯。編譯時將固定力實驗中得到的數(shù)據(jù)分割成區(qū)間,在每個區(qū)間上使用Arduino IDE中的map映射函數(shù),將兩個端點的數(shù)值映射到區(qū)間內,以獲得任意電壓值下對應的力值。類似的,能夠得到力傳感器整個量程內某一電壓值下對應的力值,其代碼框架如下所示。
代碼框架:
void loop(void) {
fsrReading = analogRead(fsrPin);//讀取電壓值數(shù)據(jù)
......
if(fsrReading>X.&&fsrReading<=Y)
{
force=map(fsrReading, X,Y, M,N);//將電壓值分別為X、Y對應的壓力值映射到[M,N]區(qū)間上;
}
......
同時,將液晶顯示模塊與Arduino單片機對應引腳相連,在Arduino IDE中調用LiquidCrystal I2C庫即可對液晶顯示模塊進行編譯,通過編譯輸出程序即可將具體的訓練數(shù)據(jù)信息輸出。
設計的球鉸式上肢康復訓練儀交互力采集系統(tǒng)具有集成度高、成本低、智能化等優(yōu)點,利用Arduino單片機實現(xiàn)了對分布式薄膜力傳感器的檢測、處理和顯示。經實驗證實,本系統(tǒng)能夠良好穩(wěn)定地工作,具有很好的應用前景。