熊方 劉旭 羅茂元



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