熊方 劉旭 羅茂元
摘要:本文設(shè)計了一種通過X、Y、Z三軸位移來實現(xiàn)三維運動的控制系統(tǒng)。該系統(tǒng)以STM32F407ZGT6為控制核心、以TB6600為步進電機驅(qū)動模塊來控制三軸上螺桿的旋轉(zhuǎn)。文中詳細地介紹了該系統(tǒng)的機械結(jié)構(gòu)設(shè)計、硬件電路設(shè)計和程序設(shè)計,通過實驗驗證,系統(tǒng)實現(xiàn)了啟停、加減速、運動方向、復位、定位等三維運動狀態(tài)的控制。
關(guān)鍵詞:STM32;三維運動;控制系統(tǒng)
中圖分類號:TP273 文獻標識碼:A 文章編號:1007-9416(2020)06-0003-03
0 引言
運動控制器廣泛應用于智能機器人、全自動焊接機、點膠機、電纜生產(chǎn)牽引系統(tǒng)等自動化設(shè)備中。運動控制正朝著高速度、高精度、開放式的方向發(fā)展,國內(nèi)外各大公司生產(chǎn)的運動控制器大多為通用型產(chǎn)品,普遍存在以下不足:功能強大、價格昂貴,在實際使用中往往只用到少數(shù)功能;封閉式的結(jié)構(gòu)很難進行二次開發(fā),靈活性較差[1]。本文將介紹一種基于STM32的三維運動系統(tǒng)設(shè)計并進行實驗驗證,該設(shè)計簡潔、運行穩(wěn)定、易操作、便于二次開發(fā)。
1 三維運動系統(tǒng)機械結(jié)構(gòu)設(shè)計
三維運動系統(tǒng)的機械結(jié)構(gòu),包括三維平臺、X/Y/Z三軸上的坐標尺、旋轉(zhuǎn)滑臺螺桿、驅(qū)動螺桿旋轉(zhuǎn)的步進電機MX/MY/MZ、安裝在Z軸上的控制對象,如圖1所示。X軸滑臺可以左右移動,Y軸滑臺可以前后移動,Z軸滑臺可以上下移動。
2 三維運動系統(tǒng)控制總方案
三維運動控制系統(tǒng)中,上位機發(fā)出命令,通過串口發(fā)送給控制器STM32,STM32根據(jù)命令控制步進電機動作,如圖2所示。MY電機控制水平面平臺板沿Y軸運動,將MZ電機固定在X軸電機的位移片上,從而實現(xiàn)X、Y、Z三個方向的位移。Z軸的位移可以實現(xiàn)控制對象的起落。
3 硬件電路設(shè)計
3.1 步進電機驅(qū)動模塊電路設(shè)計
系統(tǒng)采用TB6600驅(qū)動模塊,它是一款專業(yè)的兩相步進電機驅(qū)動,可實現(xiàn)正反轉(zhuǎn)控制[2]。通過S1、S2、S3三位撥碼開關(guān)選擇8檔細分控制,S4、S5、S6選擇8檔電流控制。比如:設(shè)定細分系數(shù)為4,電流控制2.0A。查看細分/電流選擇表,將S1、S2、S3分別設(shè)置為ON、OFF、OFF,S4、S5、S6分別設(shè)置為ON、OFF、OFF。驅(qū)動模塊推薦使用24V/3A開關(guān)電源供電。驅(qū)動模塊與控制器STM32之間共陰連接方法如圖3所示。
3.2 傳感器信號電路
在X、Y、Z三軸滑臺兩側(cè)安裝限位傳感器,防止滑塊跑出運動范圍。在三軸中間安裝原點傳感器,用于定位。當滑塊移動到傳感器旁邊,傳感器輸出有效低電平信號;當滑塊離開傳感器,輸出高電平無效信號。將傳感器輸出信號與STM32的GPIO口連接,如圖4所示。
3.3 串口硬件連接
串行通信廣泛應用于STM32與PC機之間通信,USART串口通過RX(接收數(shù)據(jù))、TX(發(fā)送數(shù)據(jù))和地3個引腳與其它設(shè)備連接在一起的[3]。如果使用USART1串口,PA9是STM32的發(fā)送端,PA10是接收端。PC機通過USB口與STM32串口之間需要一個USB轉(zhuǎn)串口的芯片CH340。
4 軟件設(shè)計
4.1 步進電機運動控制
如果驅(qū)動器與控制器采用共陰極連接方法,如圖3所示??刂破鞑捎肧TM32F407ZGT6,假設(shè)采用通用兩相四線步進電機,步距角為1.8°,驅(qū)動器細分倍數(shù)為x,一個PWM脈沖的步進角為1.8/x。如果細分數(shù)為4,步進角就是0.45°。軟件設(shè)計如下:
4.1.1 轉(zhuǎn)速控制
設(shè)脈沖信號頻率為fHz,步進電機轉(zhuǎn)速為nr/min(轉(zhuǎn)/分),則它們之間的關(guān)系為:n=360f/(360x/1.8),即:f=10xn/3。若步進電機以300r/min運轉(zhuǎn),細分數(shù)為4,需要脈沖頻率為4kHz。
4.1.2 定長控制
4.1.3 啟??刂?/p>
4.1.4 方向控制
4.1.5 限位控制
4.2 串行通信程序設(shè)計
利用STM32的USART1串口,計算機通過串口發(fā)送數(shù)據(jù)給STM32,對串口的設(shè)置如下:(1)串口、GPIO口時鐘使能;(2)引腳復用映射;(3)GPIO端口模式設(shè)置,模式設(shè)置為GPIO_Mode_AF;(4)串口參數(shù)初始化;(5)開啟中斷并且初始化NVIC;(6)使能串口;(7)編寫中斷處理函數(shù);(8)串口數(shù)據(jù)接收;(9)串口傳輸狀態(tài)獲取與清除。
4.3 主函數(shù)程序設(shè)計
對上位機發(fā)送的命令進行編號,形成指令表,如0x01電機1啟動/停止,0x02電機1反向,0x03電機1復位……在主函數(shù)中,首先對各模塊進行初始化并開放中斷,然后再根據(jù)上位機發(fā)送的命令(指令編號)進行工作,如圖5所示。
5 結(jié)語
根據(jù)以上軟硬件設(shè)計方法,通過串口調(diào)試助手進行調(diào)試,功能全部實現(xiàn):可以對X、Y、Z軸上的滑臺進行啟停、加減速、反向、復位、定長、限位的控制。還可以在上位機使用C#或VB6.0等軟件開發(fā)操作界面,代替串口調(diào)試助手,對系統(tǒng)的控制更方便、直觀。該開發(fā)系統(tǒng)簡潔易懂、可靠性高,尤其適合實訓教學。
參考文獻
[1] 陳亞,史釗亮,高錦宏,等.基于STM32+FPGA的六自由度機器人運動控制器設(shè)計[J].機械設(shè)計與制造,2020,4(4):240-243.
[2] 劉忠強,張立,張春曉,等.雙軸步進電機驅(qū)動控制系統(tǒng)設(shè)計[J].自動化與儀表,2019,34(8):29-33.
[3] 郭志勇.嵌入式技術(shù)與應用開發(fā)項目教程(STM32版)[M].北京:人民郵電出版社,2019.