天津理工大學 天津市復雜系統控制理論及應用重點實驗室 周琪鈞 李國洪
針對國內工業機器人控制器市場基本被進口產品壟斷和高校對于工業機器人教育還是采用傳統實物加示教演示等問題,本文提出并實現了一種基于STM32F407的新型6R工業機器人示教控制系統,該系統具有低成本、運算性能強大、門檻低等優點,并采用PC上位機監控軟件與控制系統通訊。經調試實驗表明,該系統運行穩定、響應速度快、適用性強,為工業機器人教育提供一種新的思路。
工業機器人是一種面向工業制造領域能夠在各種復雜環境下根據工藝要求通過程序設計實現各種功能的多自由度多關節的機械裝置。為了便于人類更好地控制機器人,使機器人能夠穩定實現所需的操作順序、速度、位置等,并可將動作組內容存儲起來,所以研究工業機器人控制系統在教學和工業應用上具有重要意義。
本控制系統硬件包括STM32電源電路、復位電路、晶振電路、JTAG電路、FLASH存儲電路、USB轉串口電路、六路關節接口電路、RS485和CAN通信電路、按鍵、蜂鳴器和LED指示燈電路等。控制系統輸入電壓可為6.4~8.5V,低于6.4V或高于8.5V時蜂鳴器會發出低壓過壓報警提示,供電采用AD/DC電源,即220VAC轉7.5VDC輸出。控制板上的USB接口與PC上位機通訊,也可下載程序。JTAG接口用來下載、仿真及調試程序所用,LED指示燈提示系統正常運行等。圖1所示為控制器系統框圖及對應PCB成板。
該模塊采用穩壓芯片AMS1117-3.3和AMS1117-5.0,將輸入7.5VDC電壓轉換成3.3VDC和5VDC輸出電壓,為控制系統供電;LED1提示3.3V供電正常。原理圖如圖2所示。

圖1 控制器系統框圖及PCB成板

圖2 供電及電平轉換模塊

圖3 FLASH存儲模塊

圖4 關節接口模塊

圖5 三組通信模塊

圖6 機器人示教系統模型
該模塊采用W25Q128芯片,該芯片是大容量SPI接口FLASH產品,其擦寫周期可達10萬次,容量為128Mb(16M字節)。如圖3所示,該芯片的SPI連接到STM32F407的SPI1接口,片選信號CS連接在PA4引腳上,通過PA4進行FLASH讀寫控制。該模塊存儲工業機器人動作組參數,機器人依據讀取的參數完成某項工作。
該模塊具有六路關節輸出,關節采用高精度數字舵機驅動,六路關節的控制信號分別連接STM32F407具有PWM的定時器的輸出口,如圖4所示。每個關節接口加裝保險絲,起短路保護作用。
該模塊具有3組通信,分別為USB轉串口通信、RS485通信和CAN通信。原理圖如圖5所示,在USB轉串口通信中,STM32F407的串口1與CH340C相連,同PC上位機實現串口通信;在RS485通信中,采用SP3485作為收發器,通過PB5控制SP3485收發,R22為匹配電阻,阻值120Ω,R80與R81為偏置電阻,阻值360Ω,用來確保總線空閑時,A、B間電壓差大于2V(邏輯“1”),避免邏輯錯亂導致出現亂碼;在CAN通信中,采用PCA82C250作為收發器,R23為匹配電阻,阻值120Ω,按圖5所示連接好后,控制系統即可通過PCA82C250與外部CAN總線進行通信。本文采用USB轉串口通信,也可以根據實際需求采用另外兩種通信方式。
采用六組高精度數字舵機(六自由度),如圖6所示,從上到下,軸六機械爪部分采用普通防燒防堵轉數字舵機,當發生堵轉時,自動計時,當堵轉超過4min,舵機會自動停止工作;軸五、軸四采用防堵轉低功耗數字舵機,當發生堵轉時,其內部會自動進行切斷保護;軸三、軸二采用高精度雙軸數字舵機;底座軸一采用大扭力數字舵機,其具有25.0kg-cm扭矩。六組舵機均能旋轉180°。
主體支架采用硬鋁合金,質感好,硬度高,通過組裝完成搭建。
如果控制系統硬件作為核心,那么,軟件系統則為靈魂,控制著機器人控制系統的中樞神經。控制系統軟件程序采用Keil MDK5 C語言編程開發。為了驗證本控制系統硬件的可行性,機器人采用開環控制,其控制目標主要包含以下三點:
①穩定性:穩定性是判定機器人運動控制和檢驗程序的一個重要指標,為了提高機器人穩定性,在設計程序的過程中,考慮了運行時可能會發生的異常情況,并加以調校。
②實時性:在PC上位機監控軟件控制機器人時,確保機器人數據的實時性。只有確保系統的整體實時性,才能實現實時控制,也能保證機器人不會出現卡死等故障。
③二次開發性:良好的軟件程序并非一次性調試完成的,需經過不斷地優化及改進,方能達到系統的設計要求。所以,在開發過程中,采取模塊化設計,將功能函數進行統一封裝,根據功能要求調用相關函數。系統程序做到規范化,便于后期調試優化和二次開發。

圖7 控制系統流程框圖
控制系統軟件主要由主程序和中斷服務子程序構成,如圖7所示。主程序包含系統初始化、關節初始位置設定及控制參數初始化,包括LED和蜂鳴器初始化、配置ADC相關模式檢測輸入電壓和必要的TIM的PWM輸出等。中斷服務子程序主要采用3個中斷,包括判斷系統供電是否正常的定時器中斷TIM2服務子函數、接收判斷PC上位機監控軟件指令的串口中斷USART1服務子函數和輸出電機控制PWM的定時器中斷TIM3服務子函數。在主循環中,首先判斷系統供電是否正常,若正常,則等待PC上位機給控制板發送指令,接收指令后即進入USART1中斷,在中斷子函數中判斷是否符合控制指令,若符合,則提取機器人相關控制量,進入TIM3中斷后,將相關控制量轉換為PWM輸出給對應關節,使關節完成相應指令。

圖8 上位機監控軟件界面
PC上位機監控軟件采用Visual Studio軟件C#語言開發。C#是一種面向對象的高級編程語言,C#綜合了VB簡單的可視化操作和C++的高運行效率。如圖8所示為上位機監控軟件界面。采用PC上位機控制機器人時,使用micro-USB線纜連接控制板USB串口和計算機USB接口,選定所用的串口號,設置好波特率后,即可對機器人進行操作。

圖9 實物連接圖
系統實物如圖9所示。六路關節的接口線連接到控制板六路關節的接口,JTAG下載接口連接控制板與PC計算機,PC上位機通過micro-USB線纜與控制板相連,在開關斷開的情況下,方可連接7.5VDC電源。經過調試,實現了通過JTAG把軟件程序下載到控制板后,按下電源開關,機器人各關節自動運行到初始指定位置,在PC上位機設置串口參數后,即可通過上位機監控軟件界面左圖六個關節小窗口中的滑塊對相應關節進行操作,左滑即逆時針旋轉(機械爪開),反之為順時針(機械爪閉);也可以通過右邊窗口的添加動作來設置動作組,一個動作組可分解為若干個動作,添加好后點擊“在線運行”,機器人即可執行動作組(若勾選了“循環”,機器人會重復運行動作組);動作組還可以通過下載按鍵下載到控制板FLASH中,下載完畢后,選擇相應的動作組號,點擊“動作組執行”機器人即可運行相應動作組。
結束語:通過不斷調試與實驗表明,本文工業機器人示教系統方案可行,系統具有響應速度快、動作靈活等優點。若加入三相PMSM驅動電路,可以滿足中小型工業機器人的控制需求。在整個設計實驗過程中,仍然存在一些不足需要改進,主要包括以下兩點:①電路的優化。在滿足功能需求與電氣指標的情況下電路板走線布局還可以繼續優化改進,提升電路板的穩定性與美觀。②算法的優化。為了檢驗設計方案的可行性,對算法的處理方面深究不夠,仍有改進的空間,進一步完善機器人的運作。