天津理工大學 天津市復雜系統(tǒng)控制理論及應用重點實驗室 周琪鈞 李國洪
針對國內(nèi)工業(yè)機器人控制器市場基本被進口產(chǎn)品壟斷和高校對于工業(yè)機器人教育還是采用傳統(tǒng)實物加示教演示等問題,本文提出并實現(xiàn)了一種基于STM32F407的新型6R工業(yè)機器人示教控制系統(tǒng),該系統(tǒng)具有低成本、運算性能強大、門檻低等優(yōu)點,并采用PC上位機監(jiān)控軟件與控制系統(tǒng)通訊。經(jīng)調(diào)試實驗表明,該系統(tǒng)運行穩(wěn)定、響應速度快、適用性強,為工業(yè)機器人教育提供一種新的思路。
工業(yè)機器人是一種面向工業(yè)制造領域能夠在各種復雜環(huán)境下根據(jù)工藝要求通過程序設計實現(xiàn)各種功能的多自由度多關節(jié)的機械裝置。為了便于人類更好地控制機器人,使機器人能夠穩(wěn)定實現(xiàn)所需的操作順序、速度、位置等,并可將動作組內(nèi)容存儲起來,所以研究工業(yè)機器人控制系統(tǒng)在教學和工業(yè)應用上具有重要意義。
本控制系統(tǒng)硬件包括STM32電源電路、復位電路、晶振電路、JTAG電路、FLASH存儲電路、USB轉(zhuǎn)串口電路、六路關節(jié)接口電路、RS485和CAN通信電路、按鍵、蜂鳴器和LED指示燈電路等??刂葡到y(tǒng)輸入電壓可為6.4~8.5V,低于6.4V或高于8.5V時蜂鳴器會發(fā)出低壓過壓報警提示,供電采用AD/DC電源,即220VAC轉(zhuǎn)7.5VDC輸出??刂瓢迳系腢SB接口與PC上位機通訊,也可下載程序。JTAG接口用來下載、仿真及調(diào)試程序所用,LED指示燈提示系統(tǒng)正常運行等。圖1所示為控制器系統(tǒng)框圖及對應PCB成板。
該模塊采用穩(wěn)壓芯片AMS1117-3.3和AMS1117-5.0,將輸入7.5VDC電壓轉(zhuǎn)換成3.3VDC和5VDC輸出電壓,為控制系統(tǒng)供電;LED1提示3.3V供電正常。原理圖如圖2所示。
圖1 控制器系統(tǒng)框圖及PCB成板
圖2 供電及電平轉(zhuǎn)換模塊
圖3 FLASH存儲模塊
圖4 關節(jié)接口模塊
圖5 三組通信模塊
圖6 機器人示教系統(tǒng)模型
該模塊采用W25Q128芯片,該芯片是大容量SPI接口FLASH產(chǎn)品,其擦寫周期可達10萬次,容量為128Mb(16M字節(jié))。如圖3所示,該芯片的SPI連接到STM32F407的SPI1接口,片選信號CS連接在PA4引腳上,通過PA4進行FLASH讀寫控制。該模塊存儲工業(yè)機器人動作組參數(shù),機器人依據(jù)讀取的參數(shù)完成某項工作。
該模塊具有六路關節(jié)輸出,關節(jié)采用高精度數(shù)字舵機驅(qū)動,六路關節(jié)的控制信號分別連接STM32F407具有PWM的定時器的輸出口,如圖4所示。每個關節(jié)接口加裝保險絲,起短路保護作用。
該模塊具有3組通信,分別為USB轉(zhuǎn)串口通信、RS485通信和CAN通信。原理圖如圖5所示,在USB轉(zhuǎn)串口通信中,STM32F407的串口1與CH340C相連,同PC上位機實現(xiàn)串口通信;在RS485通信中,采用SP3485作為收發(fā)器,通過PB5控制SP3485收發(fā),R22為匹配電阻,阻值120Ω,R80與R81為偏置電阻,阻值360Ω,用來確??偩€空閑時,A、B間電壓差大于2V(邏輯“1”),避免邏輯錯亂導致出現(xiàn)亂碼;在CAN通信中,采用PCA82C250作為收發(fā)器,R23為匹配電阻,阻值120Ω,按圖5所示連接好后,控制系統(tǒng)即可通過PCA82C250與外部CAN總線進行通信。本文采用USB轉(zhuǎn)串口通信,也可以根據(jù)實際需求采用另外兩種通信方式。
采用六組高精度數(shù)字舵機(六自由度),如圖6所示,從上到下,軸六機械爪部分采用普通防燒防堵轉(zhuǎn)數(shù)字舵機,當發(fā)生堵轉(zhuǎn)時,自動計時,當堵轉(zhuǎn)超過4min,舵機會自動停止工作;軸五、軸四采用防堵轉(zhuǎn)低功耗數(shù)字舵機,當發(fā)生堵轉(zhuǎn)時,其內(nèi)部會自動進行切斷保護;軸三、軸二采用高精度雙軸數(shù)字舵機;底座軸一采用大扭力數(shù)字舵機,其具有25.0kg-cm扭矩。六組舵機均能旋轉(zhuǎn)180°。
主體支架采用硬鋁合金,質(zhì)感好,硬度高,通過組裝完成搭建。
如果控制系統(tǒng)硬件作為核心,那么,軟件系統(tǒng)則為靈魂,控制著機器人控制系統(tǒng)的中樞神經(jīng)??刂葡到y(tǒng)軟件程序采用Keil MDK5 C語言編程開發(fā)。為了驗證本控制系統(tǒng)硬件的可行性,機器人采用開環(huán)控制,其控制目標主要包含以下三點:
①穩(wěn)定性:穩(wěn)定性是判定機器人運動控制和檢驗程序的一個重要指標,為了提高機器人穩(wěn)定性,在設計程序的過程中,考慮了運行時可能會發(fā)生的異常情況,并加以調(diào)校。
②實時性:在PC上位機監(jiān)控軟件控制機器人時,確保機器人數(shù)據(jù)的實時性。只有確保系統(tǒng)的整體實時性,才能實現(xiàn)實時控制,也能保證機器人不會出現(xiàn)卡死等故障。
③二次開發(fā)性:良好的軟件程序并非一次性調(diào)試完成的,需經(jīng)過不斷地優(yōu)化及改進,方能達到系統(tǒng)的設計要求。所以,在開發(fā)過程中,采取模塊化設計,將功能函數(shù)進行統(tǒng)一封裝,根據(jù)功能要求調(diào)用相關函數(shù)。系統(tǒng)程序做到規(guī)范化,便于后期調(diào)試優(yōu)化和二次開發(fā)。
圖7 控制系統(tǒng)流程框圖
控制系統(tǒng)軟件主要由主程序和中斷服務子程序構成,如圖7所示。主程序包含系統(tǒng)初始化、關節(jié)初始位置設定及控制參數(shù)初始化,包括LED和蜂鳴器初始化、配置ADC相關模式檢測輸入電壓和必要的TIM的PWM輸出等。中斷服務子程序主要采用3個中斷,包括判斷系統(tǒng)供電是否正常的定時器中斷TIM2服務子函數(shù)、接收判斷PC上位機監(jiān)控軟件指令的串口中斷USART1服務子函數(shù)和輸出電機控制PWM的定時器中斷TIM3服務子函數(shù)。在主循環(huán)中,首先判斷系統(tǒng)供電是否正常,若正常,則等待PC上位機給控制板發(fā)送指令,接收指令后即進入USART1中斷,在中斷子函數(shù)中判斷是否符合控制指令,若符合,則提取機器人相關控制量,進入TIM3中斷后,將相關控制量轉(zhuǎn)換為PWM輸出給對應關節(jié),使關節(jié)完成相應指令。
圖8 上位機監(jiān)控軟件界面
PC上位機監(jiān)控軟件采用Visual Studio軟件C#語言開發(fā)。C#是一種面向?qū)ο蟮母呒壘幊陶Z言,C#綜合了VB簡單的可視化操作和C++的高運行效率。如圖8所示為上位機監(jiān)控軟件界面。采用PC上位機控制機器人時,使用micro-USB線纜連接控制板USB串口和計算機USB接口,選定所用的串口號,設置好波特率后,即可對機器人進行操作。
圖9 實物連接圖
系統(tǒng)實物如圖9所示。六路關節(jié)的接口線連接到控制板六路關節(jié)的接口,JTAG下載接口連接控制板與PC計算機,PC上位機通過micro-USB線纜與控制板相連,在開關斷開的情況下,方可連接7.5VDC電源。經(jīng)過調(diào)試,實現(xiàn)了通過JTAG把軟件程序下載到控制板后,按下電源開關,機器人各關節(jié)自動運行到初始指定位置,在PC上位機設置串口參數(shù)后,即可通過上位機監(jiān)控軟件界面左圖六個關節(jié)小窗口中的滑塊對相應關節(jié)進行操作,左滑即逆時針旋轉(zhuǎn)(機械爪開),反之為順時針(機械爪閉);也可以通過右邊窗口的添加動作來設置動作組,一個動作組可分解為若干個動作,添加好后點擊“在線運行”,機器人即可執(zhí)行動作組(若勾選了“循環(huán)”,機器人會重復運行動作組);動作組還可以通過下載按鍵下載到控制板FLASH中,下載完畢后,選擇相應的動作組號,點擊“動作組執(zhí)行”機器人即可運行相應動作組。
結束語:通過不斷調(diào)試與實驗表明,本文工業(yè)機器人示教系統(tǒng)方案可行,系統(tǒng)具有響應速度快、動作靈活等優(yōu)點。若加入三相PMSM驅(qū)動電路,可以滿足中小型工業(yè)機器人的控制需求。在整個設計實驗過程中,仍然存在一些不足需要改進,主要包括以下兩點:①電路的優(yōu)化。在滿足功能需求與電氣指標的情況下電路板走線布局還可以繼續(xù)優(yōu)化改進,提升電路板的穩(wěn)定性與美觀。②算法的優(yōu)化。為了檢驗設計方案的可行性,對算法的處理方面深究不夠,仍有改進的空間,進一步完善機器人的運作。