劉吉永,徐秀林△,朱文超,胡秀枋,安美君
(1. 上海理工大學(xué)醫(yī)療器械與食品學(xué)院,上海 200093;2. 上海健康醫(yī)學(xué)院, 上海 201318)
脊柱具有支撐軀干、保護(hù)內(nèi)臟等作用,同時(shí)對(duì)人體運(yùn)動(dòng)功能有著重要作用。近年來(lái),脊柱疾病發(fā)病率呈顯著上升趨勢(shì)。我國(guó)僅在不足40歲的群體中,患有脊柱疾病就占40%[1],而且呈年輕化發(fā)展趨勢(shì),據(jù)中國(guó)兒童活動(dòng)中心統(tǒng)計(jì),中國(guó)青少年兒童患輕度脊柱疾病高達(dá)20%[1]。
治療脊柱疾病除了藥物、手術(shù)等手段外,運(yùn)動(dòng)療法已被醫(yī)學(xué)界普遍采用,近年來(lái)爬行訓(xùn)練備受推崇,即通過(guò)爬行姿態(tài),促使脊柱生理曲度的恢復(fù),調(diào)整脊椎間隙,緩解椎間盤(pán)壓力[2-3]。據(jù)國(guó)內(nèi)外研究報(bào)道,目前的爬行訓(xùn)練主要采用自然爬行、人工輔助和器械輔助爬行,而自然爬行常因患者不當(dāng)?shù)呐佬凶藙?shì)而受到二次傷害,人工輔助爬行又會(huì)花費(fèi)大量人力物力,一般的器械輔助對(duì)患者身體要求較高,不能長(zhǎng)時(shí)間治療訓(xùn)練[4-6]。
綜上,我們?cè)O(shè)計(jì)開(kāi)發(fā)了一種基于自動(dòng)化康復(fù)理念的俯臥式、多模式爬行訓(xùn)練脊柱康復(fù)訓(xùn)練儀,用于對(duì)脊柱疾病患者進(jìn)行高效精準(zhǔn)的康復(fù)治療。該設(shè)備能實(shí)現(xiàn)主、被動(dòng)訓(xùn)練運(yùn)動(dòng),被動(dòng)訓(xùn)練強(qiáng)度大小可調(diào),其關(guān)鍵技術(shù)為運(yùn)動(dòng)控制系統(tǒng)。
本研究的脊柱康復(fù)訓(xùn)練儀見(jiàn)圖1。訓(xùn)練初始時(shí),床體置于豎直狀態(tài),站立在腳板上,再將床體旋轉(zhuǎn)至水平;患者手握訓(xùn)練扶手,膝蓋放于下肢支撐內(nèi);根據(jù)患者體型調(diào)節(jié)腹部支撐的位置;訓(xùn)練時(shí)控制爬行的距離、速度和時(shí)間和側(cè)彎訓(xùn)練的強(qiáng)度。
圖1 脊柱康復(fù)訓(xùn)練儀實(shí)物圖
該運(yùn)動(dòng)控制系統(tǒng)的功能包括爬行訓(xùn)練和脊柱側(cè)彎矯正訓(xùn)練,其中爬行訓(xùn)練需要實(shí)現(xiàn)在上坡、水平、下坡三種模式下的同步爬行運(yùn)動(dòng)和交替爬行運(yùn)動(dòng)。
(1)爬行訓(xùn)練分別由兩個(gè)無(wú)刷直流電機(jī)帶動(dòng)左右側(cè)手把和下肢支撐,實(shí)現(xiàn)同時(shí)相向或相背聯(lián)動(dòng);
(2)為實(shí)現(xiàn)不同患者的訓(xùn)練強(qiáng)度要求,設(shè)置慢速、中速、快速三檔可調(diào),速度分別為0.1、0.2和0.5 m/s;訓(xùn)練距離無(wú)級(jí)可調(diào);
(3)為實(shí)現(xiàn)不同患者的訓(xùn)練時(shí)間要求,設(shè)置三個(gè)時(shí)間檔,分別為10、20、30 min,并設(shè)置了自定義時(shí)間,以供選擇;
(4)訓(xùn)練時(shí)床體可在-20°~30°無(wú)級(jí)可調(diào);
(5)床體可上仰至70°,便于患者上下床體方便。
上述各參數(shù)的實(shí)現(xiàn)及控制均由上、下位機(jī)聯(lián)合實(shí)現(xiàn)[7-8]。
運(yùn)動(dòng)控制系統(tǒng)由研華PCI-1240運(yùn)動(dòng)控制卡、C51單片機(jī)、電機(jī)及其驅(qū)動(dòng)器和軟件等組成,控制系統(tǒng)原理見(jiàn)圖2。
上位機(jī)發(fā)出控制指令,通過(guò)PCI-1240運(yùn)動(dòng)控制卡將指令轉(zhuǎn)化為脈沖信號(hào)、數(shù)字輸出信號(hào)等,實(shí)現(xiàn)對(duì)無(wú)刷直流電機(jī)的控制。同時(shí)通過(guò)光柵尺,實(shí)時(shí)反饋運(yùn)動(dòng)位置,實(shí)現(xiàn)對(duì)運(yùn)動(dòng)的精確控制。
軟件以Visual Studio 2012為開(kāi)發(fā)平臺(tái)。實(shí)現(xiàn)發(fā)送控制指令、處理光柵尺數(shù)據(jù)、反饋控制運(yùn)動(dòng)以及用于人機(jī)交互的控制界面。
下位機(jī)采用C51單片機(jī)組件,通過(guò)定時(shí)器輸出脈沖信號(hào)控制腹部支撐上下、左右調(diào)節(jié)的步進(jìn)電機(jī)運(yùn)動(dòng)。同時(shí)模擬輸出三組PWM信號(hào)調(diào)速,控制方式由上位機(jī)通過(guò)串口發(fā)送指令選擇速度。
圖2控制系統(tǒng)總體框圖
Fig2Theframeworkofcontrolsystem
考慮帶動(dòng)人體運(yùn)動(dòng)所需推力和采用多種控制方式,爬行訓(xùn)練采用常州諾立電器的無(wú)刷直流減速電機(jī)56GP18B12F-57BL2440D及其控制器;脊柱側(cè)彎矯正和腹部支撐調(diào)節(jié)采用三拓電器的步進(jìn)電機(jī)57BYG HS;床體俯仰調(diào)節(jié)使用電動(dòng)推桿。
各驅(qū)動(dòng)組件見(jiàn)圖3,其中床體由電動(dòng)推桿直接推動(dòng)繞轉(zhuǎn)軸旋轉(zhuǎn);腹部支撐高度和前后位移的調(diào)節(jié)由兩個(gè)步進(jìn)電機(jī)實(shí)現(xiàn);爬行訓(xùn)練的無(wú)刷直流電機(jī)帶動(dòng)連接上肢和下肢支撐的滑塊在床體軌道內(nèi)運(yùn)動(dòng),兩支撐機(jī)構(gòu)由反向鋼索連接實(shí)現(xiàn)同步或交替相對(duì)運(yùn)動(dòng);脊柱側(cè)彎矯正由安裝在床體下肢部分中間的步進(jìn)電機(jī)旋轉(zhuǎn)帶動(dòng)脊柱擺動(dòng);導(dǎo)軌處安有光柵尺,各轉(zhuǎn)軸處安有角度傳感器,可實(shí)現(xiàn)各參數(shù)的檢測(cè)和反饋。
3.1.1爬行訓(xùn)練位置反饋的實(shí)現(xiàn) 爬行運(yùn)動(dòng)采用無(wú)刷直流電機(jī)作為動(dòng)力源,用光柵尺輔助反饋運(yùn)動(dòng)的控制。采用長(zhǎng)春數(shù)顯公司生產(chǎn)的SGC-PCI3.1光柵數(shù)據(jù)采集卡和光柵尺,光柵尺安裝于爬行軌道兩側(cè),將測(cè)距滑塊與手部支撐機(jī)構(gòu)固定連接以此測(cè)量運(yùn)動(dòng)距離。距離讀取和反饋均由上位機(jī)編程實(shí)現(xiàn),其流程見(jiàn)圖4。
圖3 各電機(jī)安裝和驅(qū)動(dòng)方式
圖4 位置反饋編程流程圖
3.1.2爬行速度調(diào)節(jié)的實(shí)現(xiàn) 無(wú)刷直流電機(jī)控制器的速度控制信號(hào)為5 V,1~2 kHz的PWM脈寬信號(hào),可實(shí)現(xiàn)0~1 m/s范圍的速度調(diào)節(jié)。以C51單片機(jī)為核心,驅(qū)動(dòng)芯片為ULN2003A反向器電路,硬件原理見(jiàn)圖5。
圖5 速度調(diào)節(jié)電路圖
下位機(jī)編程使用Keil uVision4軟件開(kāi)發(fā)系統(tǒng),用C語(yǔ)言編寫(xiě)。使用內(nèi)部定時(shí)器1通過(guò)單片機(jī)P1.2引腳按占空比交替輸出+5 V和0 V,使其成為PWM信號(hào),單片機(jī)的晶振頻率為12 MHz,PWM的頻率計(jì)算見(jiàn)式(1),程序設(shè)置硬件計(jì)數(shù)周期計(jì)算見(jiàn)式(2)。
f=1000/(0.02×T/2)
(1)
n=65535-T×1000
(2)
其中f表示頻率,單位Hz;T為定時(shí)器中斷周期,單位ms;n為定時(shí)器裝載初值。主要實(shí)現(xiàn)代碼如下,TH1和TL1的值由上位機(jī)通過(guò)串口設(shè)置:
main()
{
//啟用內(nèi)部定時(shí)器1
TMOD|= 0x11;
//PWM頻率為200Hz
TH1 = 0xfe;
TL1 = 0x33;
TR1 = 1;
IE =0x8A;
//一直輸出PWM
while(1)
{ if(timer1>100) timer1=0;
if(timer1<30) PWM=0;
else PWM=1;}
}
//設(shè)置定時(shí)器1
void T1zd(void) interrupt 3{
TH1 = 0xfe;
TL1 = 0x33;
timer1++; }
3.1.3爬行訓(xùn)練運(yùn)動(dòng)的實(shí)現(xiàn) 研華PCI-1240運(yùn)動(dòng)控制卡基于外設(shè)組件互連標(biāo)準(zhǔn)(peripheral component interconnect, PCI)設(shè)計(jì),利用其封裝的API函數(shù),由上位機(jī)編程指令,可實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)多種模式的精準(zhǔn)控制,同時(shí)可對(duì)外輸出自定義控制信號(hào)。本研究使用PCI-1240運(yùn)動(dòng)控制卡信號(hào),控制爬行運(yùn)動(dòng)所需的使能EN、方向P/R和制動(dòng)/BK等信號(hào)。將PCI-1240運(yùn)動(dòng)控制卡與主機(jī)PCI總線(xiàn)連接,外接引腳擴(kuò)展端子板,端子板與無(wú)刷直流電機(jī)控制器連接電路見(jiàn)圖6。
運(yùn)動(dòng)控制卡的通用輸出OUT4-6引腳分別與使能信號(hào)EN、方向信號(hào)P/R和制動(dòng)信號(hào)/BK連接,通過(guò)控制信號(hào)輸出;限位引腳LMT+和LMT-分別與正負(fù)向限位開(kāi)關(guān)連接,保證運(yùn)動(dòng)過(guò)程中的安全性;所有外接電源均為DC 24 V。
圖6 PCI-1240與電機(jī)控制器線(xiàn)路圖
Fig6ThewiringdiagramofPCI-1240andmotorcontroller
控制爬行訓(xùn)練的上位機(jī)編程流程見(jiàn)圖7。訓(xùn)練模式分為兩側(cè)同步運(yùn)動(dòng)和兩側(cè)交替運(yùn)動(dòng),患者俯臥于床體上,先以身體長(zhǎng)度確定好爬行動(dòng)作的彎曲和伸展的極限位置。通過(guò)位置傳感器讀取當(dāng)前位置,訓(xùn)練時(shí)到達(dá)極限位置后,反向運(yùn)動(dòng)。
實(shí)現(xiàn)同步爬行運(yùn)動(dòng)的關(guān)鍵代碼如下:
//雙側(cè)同步伸展運(yùn)動(dòng)
Acm_AxDoSetBit(p->m_hAxisHandle[0][3], 4, 0);
……
//循環(huán)讀取位置信息
do{ if(XReadOut(p->mIndex)
Acm_AxDoSetBit(p->m_hAxisHandle[0][3], 6, 1);
if(YReadOut(p->mIndex)
Acm_AxDoSetBit(p->m_hAxisHandle[0][2], 6, 1);
圖7控制爬行訓(xùn)練的上位機(jī)編程流程圖
Fig7Theprogramflowchartofcreeptrainingprogram
}while(XReadOut(p->mIndex)>p->m_PositionX || YReadOut(p->mIndex)>p->m_PositionY);
//雙側(cè)同步收縮運(yùn)動(dòng)
Acm_AxDoSetBit(p->m_hAxisHandle[0][3], 4, 0);
……
do{ if(XReadOut(p->mIndex)>p->m_SavePositionX)
Acm_AxDoSetBit(p->m_hAxisHandle[0][3], 6, 1);
if(YReadOut(p->mIndex)>p->m_SavePositionY)
Acm_AxDoSetBit(p->m_hAxisHandle[0][2], 6, 1);
}while(XReadOut(p->mIndex)
側(cè)彎矯正采用PCI-1240運(yùn)動(dòng)控制卡,通過(guò)上位機(jī)輸出控制脈沖信號(hào)至步進(jìn)電機(jī)驅(qū)動(dòng)器,實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的控制。運(yùn)動(dòng)控制卡端子板與步進(jìn)電機(jī)驅(qū)動(dòng)器連接電路見(jiàn)圖8??刂菩盘?hào)有四個(gè)輸出引腳,正脈沖P結(jié)、正脈沖N結(jié)、負(fù)脈沖P結(jié)、負(fù)脈沖N結(jié);步進(jìn)電機(jī)采用脈沖方向信號(hào)作為驅(qū)動(dòng)信號(hào),即P+P、P+N輸出脈沖信號(hào),P-P、P-N輸出方向信號(hào);限位引腳LMT+和LMT-分別與可移動(dòng)限位開(kāi)關(guān)連接;通用輸入1引腳接居中信號(hào);接DC 24 V電源。限位開(kāi)關(guān)可根據(jù)患者情況調(diào)節(jié)位置,運(yùn)動(dòng)時(shí)以?xún)上尬婚_(kāi)關(guān)為換向位置實(shí)現(xiàn)對(duì)脊柱的側(cè)彎矯正。
圖8 脊柱側(cè)彎矯正線(xiàn)路圖
實(shí)現(xiàn)同步爬行運(yùn)動(dòng)的關(guān)鍵代碼如下:
//設(shè)置運(yùn)行速度和起步速度
ulErrorCode=Acm_SetProperty(m_hAxisHandle[DevNum][AxisNum],CFG_AxVel,&m_AxisResetParam.m_lfMaxVel, ulBufferLen);
//擺尾運(yùn)動(dòng)
//向正方向運(yùn)動(dòng)至極限位置
ulErrorCode = Acm_AxHome(p->m_hAxisHandle[0][1],MODE2_Lmt,DIR_POSITIVE);
//檢測(cè)運(yùn)動(dòng)是否完成
do{ ulErrorCode = Acm_AxGetState(p->m_hAxisHandle[0][1],&uState);
}while(STA_AX_READY != uState);
//向負(fù)方向運(yùn)動(dòng)至極限位置
ulErrorCode = Acm_AxHome(p->m_hAxisHandle[0][1],MODE2_Lmt,DIR_NEGATIVE);
//檢測(cè)運(yùn)動(dòng)是否完成
do{ulErrorCode = Acm_AxGetState(p->m_hAxisHandle[0][1],&uState);
}while(STA_AX_READY != uState);
使用步進(jìn)電機(jī)作為腹部支撐調(diào)節(jié)的動(dòng)力源,C51單片機(jī)輸出脈沖信號(hào)實(shí)現(xiàn)控制。單片機(jī)電路見(jiàn)圖9,通過(guò)內(nèi)部定時(shí)器在P0.0引腳輸出脈沖信號(hào),與步進(jìn)電機(jī)驅(qū)動(dòng)器脈沖輸入端連接;P0.1引腳輸出方向控制信號(hào),與步進(jìn)電機(jī)驅(qū)動(dòng)器方向輸入端連接;P0.2引腳輸出使能信號(hào)與步進(jìn)電機(jī)驅(qū)動(dòng)器使能接口連接;當(dāng)按下方向控制按鍵時(shí),觸發(fā)外部中斷,此時(shí)P0.0引腳開(kāi)始輸出脈沖信號(hào),腹部支撐位置調(diào)節(jié)電機(jī)開(kāi)始工作。
圖9 腹部支撐位置調(diào)節(jié)電路
程序關(guān)鍵代碼:
void Time1(void) interrupt 3 //脈沖輸出內(nèi)部定時(shí)器
{
TH1=0xFF; //定時(shí)器響應(yīng)周期
TL1=0xE6;
switch(i)
{ case 0:
break;
case 1:
if (timer1 == 1) PLU = 0;
if (timer1 == 2) { PLU = 1; timer1 = 0;}
timer1++;
break;}}
設(shè)計(jì)的人機(jī)交互界面,其功能包括實(shí)時(shí)位置信息顯示;訓(xùn)練速度低速、中速和高速調(diào)節(jié);自定義訓(xùn)練時(shí)間;定位爬行訓(xùn)練位置和選擇訓(xùn)練模式;脊柱側(cè)彎矯正訓(xùn)練和復(fù)位功能;軟件界面見(jiàn)圖10。
圖10 運(yùn)動(dòng)控制界面
可靠性分析實(shí)驗(yàn)設(shè)計(jì)以3名健康志愿者作為測(cè)試對(duì)象,身高(169±10) cm,體重(60±20) kg,平均年齡23歲。對(duì)所有的測(cè)試志愿者進(jìn)行兩次試驗(yàn),試驗(yàn)間隔一天的時(shí)間,每次試驗(yàn)重復(fù)六次。實(shí)驗(yàn)環(huán)境定位室內(nèi),基本視為無(wú)環(huán)境影響因素。
選擇雙側(cè)同步爬行運(yùn)動(dòng)作為測(cè)試動(dòng)作,進(jìn)行重復(fù)性試驗(yàn),速度設(shè)置為中速,測(cè)量時(shí)間為5 min, 當(dāng)5 min時(shí)間到后讀取傳感器數(shù)據(jù),求此時(shí)運(yùn)動(dòng)的前后極限位置之差,同時(shí)保證每個(gè)人兩次運(yùn)動(dòng)開(kāi)始運(yùn)動(dòng)時(shí)的位置相同。計(jì)算兩次測(cè)量數(shù)據(jù)的組內(nèi)相關(guān)系數(shù)(intraclass correlation coefficient, ICC),測(cè)量結(jié)果見(jiàn)表1。
表1爬行運(yùn)動(dòng)可靠性測(cè)量結(jié)果
Table1Thereliabilitymeasurementresultsofcrawlingmovement
試驗(yàn)次數(shù)受試者1受試者2受試者3第一次/cm第二次/cm第一次/cm第二次/cm第一次/cm第二次/cm130.0630.1145.4245.3339.8940.07229.8230.0645.3745.2640.1740.11330.3330.2344.9845.0740.2940.34430.2530.3145.2545.3140.4540.32530.4330.3744.9545.1140.3640.42630.1630.0645.1945.0739.8840.03x±s30.18±0.1630.19±0.1145.19±0.1545.19±0.1140.17±0.1940.22±0.15ICC0.8460.8430.909
將實(shí)驗(yàn)數(shù)據(jù)使用統(tǒng)計(jì)分析軟件SPSS 19進(jìn)行可靠性分析,三個(gè)受試者的ICC值分別為0.846、0.843和0.909。組內(nèi)相關(guān)系數(shù)均大于0.75,說(shuō)明本研究設(shè)計(jì)開(kāi)發(fā)的脊柱康復(fù)運(yùn)動(dòng)控制系統(tǒng)具有很好的可靠性,能準(zhǔn)確完成設(shè)定的重復(fù)性訓(xùn)練,保證訓(xùn)練精度。
本研究的脊柱康復(fù)訓(xùn)練運(yùn)動(dòng)控制系統(tǒng),由硬件控制電路和上、下位機(jī)軟件組成,該系統(tǒng)各功能的實(shí)現(xiàn)基于可旋轉(zhuǎn)床體、輔助上下肢爬行支撐機(jī)構(gòu)和腹部減重支撐機(jī)構(gòu)等機(jī)械裝置;硬件控制電路包括PCI-1240運(yùn)動(dòng)控制卡及外圍電路、單片機(jī)及驅(qū)動(dòng)電機(jī)外圍電路;軟件部分包括控制命令類(lèi)庫(kù)和人機(jī)交互界面。
目前對(duì)爬行訓(xùn)練康復(fù)產(chǎn)品的研究,國(guó)外大都只有主動(dòng)爬行模式,且無(wú)法實(shí)現(xiàn)訓(xùn)練評(píng)估,并未科學(xué)有效的用于脊柱患者的康復(fù)治療[9],而國(guó)內(nèi)對(duì)脊椎康復(fù)爬行訓(xùn)練設(shè)備的研究起步較晚,相關(guān)產(chǎn)品的臨床應(yīng)用較少,有待進(jìn)一步研究。本研究的脊柱康復(fù)訓(xùn)練運(yùn)動(dòng)控制系統(tǒng)針對(duì)脊柱疾病患者,具有主動(dòng)、被動(dòng)訓(xùn)練兩種模式,可實(shí)現(xiàn)上坡、水平和下坡三種爬行姿態(tài)的訓(xùn)練和評(píng)估,可實(shí)現(xiàn)雙側(cè)同步和雙側(cè)交替兩種爬行方式,并增加反饋機(jī)制,能合理調(diào)節(jié)訓(xùn)練的時(shí)間和強(qiáng)度,同時(shí)還具有脊柱側(cè)彎矯正訓(xùn)練功能,能為脊柱疾病患者提供安全、有效的康復(fù)治療。