玄兆燕,洪健俊,趙 欣
(1.華北理工大學(xué) 機械工程學(xué)院,河北 唐山 063210;2.唐山市拓又達科技有限公司,河北 唐山 063020)
下肢康復(fù)機器人是典型的機電一體化系統(tǒng),旨在促進患者受損感覺、運動和認知技能的恢復(fù),具有人機交互功能[1]。而控制系統(tǒng)作為下肢康復(fù)機器人的核心部分,主要任務(wù)是控制下肢康復(fù)機器人運動機構(gòu)和運動速度以及檢測訓(xùn)練時的運動狀態(tài),其性能的好壞將直接影響患者進行康復(fù)訓(xùn)練時的質(zhì)量[2]。近年來隨著嵌入式技術(shù)的飛速發(fā)展,嵌入式系統(tǒng)從單單用微控制器作為主控,應(yīng)用于儀器儀表、監(jiān)控等領(lǐng)域轉(zhuǎn)向?qū)⑽⒖刂破?、傳感技術(shù)、算法等先進技術(shù)相結(jié)合,應(yīng)用于機器人和飛行器等領(lǐng)域。將嵌入式技術(shù)應(yīng)用到康復(fù)機器人控制系統(tǒng)中不但可以降低控制系統(tǒng)的成本,也提高了控制系統(tǒng)的實時性與穩(wěn)定性[3]。
本文以STM32F4微控制器以及電阻式觸摸屏為硬件基礎(chǔ),把嵌入式實時操作系統(tǒng)UCOS-III和emWin圖形庫依次移植到微控制器中,然后設(shè)計開發(fā)康復(fù)機器人的人機交互界面,顯示終端為3.5寸的電阻式觸摸屏,用于下肢康復(fù)機器人在訓(xùn)練過程中的數(shù)據(jù)實時顯示[4]。
控制系統(tǒng)以STM32F407微控制器為核心,其控制系統(tǒng)的硬件結(jié)構(gòu)主要由電源模塊、數(shù)據(jù)存儲模塊、執(zhí)行模塊、驅(qū)動模塊、傳感器及數(shù)據(jù)采集模塊、通信模塊、人機交互模塊組成[5]??刂葡到y(tǒng)的硬件結(jié)構(gòu)框圖如圖1所示。
圖1 控制系統(tǒng)硬件結(jié)構(gòu)框圖
選用STM32F407微控制器系列中的STM32F407ZGT6作為核心控制器,主要基于該控制器的可變靜態(tài)存儲器控制器(FSMC)的處理速度,其刷屏速度可以達到3 300像素/秒,最高工作主頻可達168 MHz,而且具有1 MB FLASH、192 kB的片內(nèi)SRAM、1個可變靜態(tài)存儲器控制器,并具有多個通信接口、中斷源、定時器以及豐富的外設(shè),帶有DSP和FPU指令集,便于項目的開發(fā)[6]。
TFTLCD接口電路由觸摸屏控制芯片XPT2046以及WK53052液晶屏構(gòu)成,液晶屏大小為3.5寸,分辨率為320×480,LCD接口直接連在STM32F4微控制器的FSMC總線上,目的是提高LCD的刷屏速率。
TFTLCD接口電路如圖2所示。
圖2 TFTLCD接口電路
CAN(控制器局域網(wǎng))是ISO國際標準化的串行通信協(xié)議,本系統(tǒng)使用的STM32F4微控制器集成了兩個CAN控制器,但CAN總線電平不可以直接與STM32相連,需要使用TJA1050芯片作CAN電平轉(zhuǎn)換。CAN總線接口電路如圖3所示,R51為終端匹配120 Ω電阻,來做阻抗匹配,同時將濾波電容并聯(lián)在CAN總線終端與GND之間進行濾波,目的是提高CAN控制器在進行通訊時的穩(wěn)定性[7]。
圖3 CAN總線接口電路
控制系統(tǒng)的軟件編程環(huán)境為MDK5.18,程序設(shè)計流程為:①將UCOS-III嵌入式實時操作系統(tǒng)移植到STM32F4微控制器中;②移植emWin到微控制器中;③模塊化外設(shè)底層驅(qū)動以及其余各個任務(wù)。
系統(tǒng)軟件框架如圖4所示。軟件系統(tǒng)分為系統(tǒng)任務(wù)、數(shù)據(jù)采集與存儲任務(wù)、CAN通訊任務(wù)、人機交互任務(wù)和電機控制任務(wù)。軟件通過時間片輪詢調(diào)度算法以及任務(wù)優(yōu)先級來完成任務(wù)的調(diào)度。各個任務(wù)間相互獨立,但可以由信號量和消息隊列來將各個任務(wù)聯(lián)系起來[8]。
圖4 系統(tǒng)軟件框架
在下肢康復(fù)機器人訓(xùn)練過程時,需要在各個模塊之間進行數(shù)據(jù)通信與協(xié)調(diào)控制,因此通過CAN總線進行各個任務(wù)的通訊。CAN總線驅(qū)動程序主要包括CAN總線初始化、發(fā)送任務(wù)、接收任務(wù)以及中斷服務(wù)程序[9]。初始化主要是設(shè)置裝載標識符、波特率以及屏蔽碼。CAN總線數(shù)據(jù)發(fā)送與接收流程如圖5所示。
圖5 CAN總線數(shù)據(jù)收、發(fā)流程
人機交互任務(wù)流程如圖6所示。通過emWin自帶的窗口管理軟件GUIBuilder設(shè)計人機交互界面的框架,然后導(dǎo)出C文件添加到MDK的目標工程中,進一步編程整個界面要實現(xiàn)的操作和控件之間的通信,通過點陣字庫軟件制作中文字體并復(fù)制到SD卡中,在工程中添加FATFS文件系統(tǒng)管理文件夾,將SD卡的字庫通過微控制器的SPI接口更新到外部FLASH中,將界面設(shè)計時的部分英文改成中文,最后編譯工程,并下載到微控制器中。
圖6 人機交互任務(wù)流程
電機控制任務(wù)以位置環(huán)為外環(huán)、速度環(huán)為內(nèi)環(huán)的雙閉環(huán)控制策略來控制電機。主要通過傳感器采集運動狀態(tài),反饋給控制器,控制器分析反饋的數(shù)據(jù)并計算出輸出量,然后將輸出量傳送到電機驅(qū)動器中,可以控制電機帶動下肢外骨骼進行相應(yīng)的下肢訓(xùn)練?;魻杺鞲衅髋c增量式編碼器已集成在直流無刷伺服電機中,用于實時檢測電機速度和位置信息。采用雙閉環(huán)控制策略可以提高控制系統(tǒng)的抗干擾能力和動態(tài)響應(yīng)能力。電機控制任務(wù)流程如圖7所示。
圖7 電機控制任務(wù)流程
圖8為系統(tǒng)程序流程,首先初始化系統(tǒng)硬件和UCOS-III操作系統(tǒng)內(nèi)核,然后調(diào)用系統(tǒng)配置文件,設(shè)置系統(tǒng)任務(wù),接著進行emWin圖形界面初始化,執(zhí)行相應(yīng)的任務(wù)。在UCOS-III操作系統(tǒng)中采用根據(jù)設(shè)置優(yōu)先級的大小來進行搶占式任務(wù)管理,在設(shè)計程序時給每一個任務(wù)賦予一定的優(yōu)先級和分配一定的堆棧,本系統(tǒng)設(shè)置的優(yōu)先級從高到低為:CAN總線通信,電機控制任務(wù),人機交互任務(wù),數(shù)據(jù)采集存儲任務(wù)。
圖8 系統(tǒng)程序流程 圖9 人機交互界面 圖10 速度模式測試界面
根據(jù)如圖6所示的流程完成了人機交互程序的設(shè)計,人機交互界面如圖9所示。其中“開始”、“結(jié)束”、“數(shù)據(jù)存儲”、“通訊”按鈕依次實現(xiàn)控制系統(tǒng)的運行、結(jié)束、數(shù)據(jù)采集以及通訊功能,位置模式與速度模式為單選按鈕。以速度模式進行相關(guān)的測試,界面如圖10所示,在速度模式中通過移動滑條來改變訓(xùn)練時的速度大小,測試界面實時地顯示速度和壓力信息。根據(jù)測試,設(shè)計的下肢康復(fù)人機交互界面可以實現(xiàn)目標功能。
本文設(shè)計了一種基于STM3F4微控制器的下肢康復(fù)機器人嵌入式控制系統(tǒng),并對相應(yīng)的硬件和軟件進行了詳細的設(shè)計說明,最后進行了測試,通過UCOS-III實時操作系統(tǒng)對任務(wù)進行調(diào)度與管理,采用emWin圖形庫進行界面設(shè)計來提高軟件開發(fā)效率,在訓(xùn)練過程中,設(shè)計的人機交互界面友好、穩(wěn)定,實時性好。