基于STM32的三轴并联式绘图平台的研究
2019-04-12陈锦儒刘梓涵林楚玲叶伟森
陈锦儒 刘梓涵 林楚玲 叶伟森
(韶关学院,广东 韶关 512000)
1 主要研究内容
该课题主要的研究内容为通过改装三轴运动控制平台,加装绘图器,如图1所示,使其成为三轴并联式绘图控制平台。如图2所示。通过建立基于Delta的运动控制模型,使用逆推、建模的方法,建立绘图笔空间变换函数,根据设定的运动路径函数,利用直线插值法以及曲线插值法进行运算,最后使用ARM系列嵌入式芯片STM32对其进行控制,使其可以绘制各种图形。
图1 绘图器
2 硬件系统的设计
2.1 步进电机驱动设计
DM556步进电机驱动器是一种将电脉冲转化为角位移的执行机构,只需要STM32输出PWM波,通过控制脉冲数即可控制步进电机的转动步数,精确度高、不容易失步。使用驱动器共阳极接线法,3个驱动器的脉冲端PLU+、转向控制端CIR+、使能端EN+接口全部接3.3 V,脉冲输入端PLU-接STM32的定时器脉冲输出口,转向控制端CLR-和使能端EN-接STM32的普通I/O口,用于控制转向和使能驱动器。
图2 三轴运动控制平台
2.2 主控芯片选择
STM32F103ZET6系列单片机是ST公司生产的高性能单片机,具有速度快、低功耗且抗干扰强的特点。该芯片内部集成了复位电路、多路普通定时器以及2个高级定时器,可用于产生PWM脉冲以及定时计时器、编码器输入等。工作频率:72 MHz,512 K用户应用程序存储空间,芯片上集成2 k字节RAM。7个32位定时器可以很方便地实现我们所需的功能,利用其强大的功能不仅可以简化硬件电路,而且还可以大幅度提高系统的运行速度,节约硬件成本。使用最小系统板作为主控板,结构紧凑,工作稳定。
2.3 电源的选择
该设计使用开关电源作为主电源,输出电压为12 V。由于STM32最小系统板具有稳压芯片,可将12 V电压稳定到3.3 V供芯片使用,因此将12 V的电压直接输入最小系统板。步进电机驱动器的工作电压为12 V。
2.4 总体电路框图
该项目需要同时驱动3路步进电机,因此必须要有3路脉冲控制信号输出,同时也要有3路的方向控制I/O口输出。该系统采用芯片STM32F103ZET6作为主控制器,利用其定时器作为脉冲控制信号源,并利用其72 MHz的内核进行高速运算。该系统的总体框架图如图3所示。从总体上看,整个系统由按键输入电路、STM32主控芯片最小系统电路、DM556电机驱动电路以及步进电机组成。
图3 三轴绘图系统电路设计总体框架
3 软件系统的整体方案设计
3.1 总体软件框图
整个软件系统的运动控制主要分成3个部分,分别是1)模式选择代码:利用单片机的独立按钮控制信号的输入,可以设置其运动的初始位置以及终点位置,并且可以设置其画图的轨迹;2)限位检测开关的检测代码:利用单片机的中断作为限位检测,可用于系统初始化的校准以及系统运动过程中的限位保护,防止机器越过工作区导致硬件损坏;3)脉冲信号数的输出以及方向控制代码。整个系统代码主要包括了串口通信代码、脉冲输出代码、限位检测代码,笛卡尔坐标系变换代码,步距计算代码。
3.2 各模块程序设计
3.2.1 定时器初始化程序
定时器初始化模块通过配置STM32内置的定时器,把定时器配置成占空比为50 %、频率可调的脉冲输出模式,并且设置其产生中断,使其在使用脉冲控制步进电机运动的同时,进入中断函数,处理额外的任务。
3.2.2 定时器中断处理
定时器中断主要有3个功能。
(1)限位保护,防止到达顶端后继续向上运动,损坏机器。
(2)检测运动模式下,绘图器是否到达目标点。
(3)步进电机运动控制。
3.2.3 空间坐标变换
笛卡尔坐标系与Delta空间坐标变换算法是利用笛卡尔坐标系与世界坐标系的数学关系进行空间变换,使我们眼中的X、Y、Z坐标系变成三轴并联式绘图机的世界坐标系。通过Delta空间变换算法,可以算出笛卡尔坐标系下的目标坐标与Delta空间坐标系下对应的3个轴的滑块高度。并且通过步距计算函数,计算出滑块应该运动的距离以及STM32应该输出的脉冲数。
4 系统调试与测试
4.1 硬件电路的测试
4.1.1 电源部分
按要求接电源线,并且把输入档位设置为220 V。检查接线无误后上电,测量输入电压以及开关通电后输出端是否有12 V电压输出。
4.1.2 最小系统板以及各个外设
上电后,测量STM32最小系统板的输入电压是否为12 V,测量STM32的VCC引脚是否为3.3 V,并且检查能否成功下载代码以及运行检测程序,最后用示波器检测定时器脉冲输出端口的波形是否正确,检测显示屏等器件是否正常工作。
4.2 软件代码的调试
系统软件设计采用模块化设计方法,整个系统由初始化模块程序、PWM输出程序,定时器程序,按键检测模块程序、显示屏输入模块程序等部分组成。系统上电后,对相关外设进行初始化,系统开始运行。在执行过程中,根据运行流程分别调用各个功能模块,完成脉冲输出控制步进电机。
软件调试时,使用串口通信程序通过STM32与PC端的串口通信,使用上位机获取、观察STM32上传的绘图器的笛卡尔空间坐标,以及经过Delta坐标变换运算之后得到的滑块位置数据。完成这一步之后,用尺子测量、检查、校验坐标变换Delta算法的输出与步进电机的实际位置的偏差,并通过调整参数来提高步进电机的控制精度。
5 结语
该设计综合运用数学、控制理论方面的知识,通过理论与实际相结合提出并论证设计方案,然后进行软、硬件调试,最后使整个机器系统稳定运行。在整个设计过程中,本着稳定性和精确性并重的原则,采取了诸多有效措施,极大地提高了控制的精确度。
笔者通过不断地对硬件试验和程序进行调试,使系统可以较好地满足要求,无论是画圆还是画直线均能获得较好的效果。