基于STM32的三维运动控制系统设计

2020-07-22 09:57熊方刘旭罗茂元
数字技术与应用 2020年6期
关键词:控制系统

熊方 刘旭 罗茂元

摘要:本文设计了一种通过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.

猜你喜欢
控制系统
基于PLC的自动切蛋糕机的控制方案