3
收稿日期:2020-05-10
*科研项目:四川现代职业学院科研项目(基于STM32单片机的三维运动控制系统研制与开发)(编号:K18-ZD1-007)作者简介:熊方(1981—),女,四川资阳人,硕士,副教授,研究方向:电子电路、自动控制。
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的三维运动控制系统设计*
熊方1  刘旭1  罗茂元2
(1.四川现代职业学院,四川成都  610207;2.四川城市职业学院,四川成都  610101)
摘要:本文设计了一种通过X、Y、Z三轴位移来实现三维运动的控制系统。该系统以STM32F407ZGT6为控制核心、以TB6600为步进电机驱动模块来控制三轴上螺杆的旋转。文中详细地介绍了该系统的机械结构设计、硬件电路设计和程序设计,通过实验验证,系统实现了启停、加减速、运动方向、复位、定位等三维运动状态的控制。
关键词:ST M32;三维运动;控制系统
中图分类号:TP273文献标识码:A文章编号:1007-9416(2020)06-0003-03
DOI:10.19695/jki12-1369.2020.06.02数控技术
图1  三维运动系统的机械结构图2  三维运动系统控制总方案
Copyright©博看网 www.bookan. All Rights Reserved.
第  38  卷                      数字技术与应用    www.szjsyyy
4
块离开传感器,输出高电平无效信号。将传感器输出信号与STM32的GPIO口连接,如图4所示。
3.3 串口硬件连接
串行通信广泛应用于S T M 32与P C 机之间通信,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。
采用TIM3的CH1(PC6)来产生步进电机1的PWM信号,首先对TIM3进行初始化:
void TIM3_PWM_Init(u32 arr,u32 psc)    //arr 设置自动重装载值,psc设置预分频值
主函数相关代码如下:
#define  Motor1_SUB  4//步进电机
1细分数4
u16  speed1=100;          //设置初始转速为100r/min
u16  fre;
fre=10*Motor1_SUB*speed1/3;  //根据关系式,计算脉冲频率
TIM3_PWM_Init(1000000/fre-1,84-1); //STM32F4的APB2为84MHz,
//计数频率84M/84=1MHz,自动重装载值1000000/fre-1,可得PWM脉冲频率为fre
4.1.2 定长控制
假设三维运动系统X、Y、Z轴上的丝杆螺距为4mm,细分数为x,一个脉冲对应移动距离为:0.4/(360x/1.8)=1/(500x)。
float length;  // 定义移动距离变量,单位cm u16  num;  //定义脉冲数
num=500*length*x;  //计数脉冲数
开启TIM3更新中断,每产生一个脉冲发生一次中断,当中断次数为num时,到达指定位置。
4.1.3 启停控制
PUL+端输入PWM脉冲信号,步进电机转动,否则不动。
TIM_CCxCmd ( TIM3, TIM_Channel_1,TIM_CCx_enable );
//使能T I M 3->C H 1通道
PWM输出,步进电机1启动
TIM_CCxCmd ( TIM3, TIM_Channel_1,TIM_CCx_Disable );
//关闭T I M 3->C H 1通道
PWM输出,步进电机1停止
4.1.4 方向控制
DIR+端输入高电平信号,步进电机正转;输入低电平信号,步进电机反转。
#define  Motor1_DIR  PAout( 4 )//步进电机1方向控制引脚:PA4
#define  Motor1_UP  Motor1_DIR = 1
//步进电机1正转
#define  Motor1_DOWN  Motor1_DIR = 0//步进电机1反转
Motor1_UP;//正转
Motor1_DOWN; //反转
图3  驱动器与控制器的共阴极连接方法
图4  限位传感器与控制器的连接方式
Copyright©博看网 www.bookan. All Rights Reserved.
2020年第 6 期
5
4.1.5 限位控制
#define  LS1  GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_14)  //在PB14引脚上接了一个限位开关
if(LS1==0)  //传感器信号有效,表示运动到限制位置
GPIOA->ODR^= (1<<4);  //将PA4取反,步进电机1运动反向
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.
图5  主程序设计
Design of  3D Motion Control System Based on STM32
XIONG Fang 1, LIU Xu 1,LUO Mao-yuan 2
(1.Sichuan Modern Vocational College, Chengdu  Sichuan  610207;2.Urban Vocational College of  Sichuan, Chengdu  Sichuan  610101)
Abstract:In this paper, a three-dimensional motion control system is designed by X, Y and Z axes displacement. This system uses STM32F407ZGT6 as the control core and TB6600 as the stepping motor drive module to control the rotation of the screw on the three-axis. In this paper, the mechanical structure design, hardware circuit design and program design of the system are introduced in detail. Th
rough the experimental verification, the system realizes the control of three-dimensional motion state, such as start stop,acceleration and deceleration, motion direction, reset and positioning.
Key words:STM32; 3D motion;control system
熊方 刘旭 罗茂元:基于S T M 32的三维运动控制系统设计
Copyright©博看网 www.bookan. All Rights Reserved.