基于FPGA的绘图滑台设计

2017-11-27 10:50冯坤蒋婷邱玉泉刘世伟
物联网技术 2017年11期
关键词:步进电机滑台

冯坤+蒋婷+邱玉泉+刘世伟

摘 要:文中设计了一种集FPGA、步进电机和滑台导轨为一体的图像绘制方案。设计将两相四线步进电机和由亚克力材质制定的小型电机支架作为硬件支撑。为完成二维平面上的作业,滑台设计包括两个平面内移动的步进电机,一个电机带动绘图使用的铅笔,另一个电机带动载有放置纸张的平台,两个电机同时工作,使铅笔在纸张上完成绘制。由FPGA通过驱动板给两个电机输入设定脉冲以控制步进电机,同时运用逐点比较插补法对路径进行规划。

关键词:FPGA;步进电机;滑台;逐点比较插补法

中图分类号:TP273;TN402 文献标识码:A 文章编号:2095-1302(2017)11-00-03

0 引 言

近年来,3D打印机风潮席卷全球,小到机械零件,大到房屋建筑,都可以通过3D打印机完成。3D打印机以数字模型文件为基础[1],通过逐层打印的方式来构造物体。受3D打印机工作方式的启发,本文以FPGA为控制芯片,以步进电机为驱动电机,完成一个通过算法绘制图像的设计。

步进电机在我们的生产生活中随处可见,而FPGA可以很好地完成一系列对步进电机的控制[2]。本设计使用Verilog HDL语言编程,本着用最简单的资源完成最有效的设计的思想,在硬件方面使用FPGA学习板与Xilinx公司生产的XC6SLX16开发板芯片,而步进电机则选用常见的电脑光驱步进电机[3]。

1 系统总体设计

本系统包括电机控制和路径规划两部分,根据驱动板与电机参数产生的相应脉冲控制电机。电机运行的轨迹分为直线和曲线两种,在给定坐标点的情况下,通过逐点比较插补法进行路径规划,完成指定图像绘制。

2 FPGA对步进电机的控制

本设计采用常用计算机的光驱步进电机,即两相四线步进电机,易于控制且工作性能稳定。电机驱动板采用带有A4988芯片的带转换器和过流保护的DMOS微步驱动器[4],该产品可在全、半、1/4、1/8及1/16步进模式时操作双级步进电机。转换器是A4988易于实施的关键,只要在“步进”输入中输入下一个脉冲,即可驱动步进电机产生微步[5],故FPGA只需向驱动板输入连续脉冲即可。设定步进电机转动一圈的时间为0.8 s,由于提供的FPGA晶振为50 MHz,故只需做一个6×105分频的分频电路即可,在此不再赘述。图1所示为FPGA控制电机部分的RTL视图。

3 逐点比较插补法

逐点插补法是目前数控机床在进行轮廓设计时较常用的一种插补方法。而在CNC数控机床中逐点比较法是常用的控制方法[6],其各种曲线轮廓加工都可以通过插补算法实现,插补计算的任务就是在轮廓线起点到终点之间密集地计算出有限个坐标点,动点沿着这些坐标点移动,用折线逼近所要加工的曲线。

3.1 逐点比较直线插补法

所谓逐点比较直线插补法,就是每走一步都要与给定运动轨迹上相应的坐标值比较,观察该点位于直线上方还是下方,比较结果称为偏差函数F[7],根据偏差的正、负决定下一步的进给方向。实质上这是一种用阶梯折线来逼近直线的算法,它与规定运动轨迹之间的最大误差为一个脉冲当量,因此,只要把脉冲当量设计得足够小,就可以达到提升精度的要求[5]。

第一象限直线插补在一个单位时间(及脉冲当量)内运行的轨迹如图2所示。设点P是运动点,点E是终点,若点P在直线OE上方,则线段OP的斜率大于OE的斜率,即(Ym/Xm)>(Ye/Xe);若点P在线段OE下方,则线段OP的斜率小于OE的斜率,即(Ym/Xm)<(Ye/Xe),设偏差函数Fm为:

第一象限直线插补的过程可归纳为:当偏差Fm<0时,点P在直线下方,点P向Y轴正方向移动,将Ym+1=Ym+1代入偏差函数可得简化公式为:

当偏差Fm>0时,点P在直线上方,点P向X轴正方向移动,将Xm+1=Xm+1代入偏差函数可得简化公式为:

同理可得其他象限的偏差函数,推导过程与上述过程完全相同。

根据直线插补法的原理编写程序,对算法的仿真如图3所示。

由于FPGA通过驱动板给电机的输入脉冲为连续脉冲,因此,根据对电机转速的要求,对输入时钟进行分频即可达到转速要求。在实际运用中,只需在程序中给定坐标点,则X、Y轴电机即可合作完成直线段组成图形[8]。

3.2 逐点比较圆弧插补法

圆弧插补法同直线插补法的工作原理相似,但圆弧插补法的工作过程分为四步,即偏差判别、坐标进给、偏差计算、终点判别[9]。通常要考虑制作路程为顺时针还是逆时针,以及图像的象限。为方便读者了解,以一个第一象限1/4圆弧顺时针为例进行讲解。

如图4所示,加工半径为R的第一象限,坐标原点定在圆心,A(X0,Y0)为圆弧起点,B(Xe,Ye)为圆弧终点,Pi(Xi,Yi)为加工动点。

圆弧方程满足:X2+Y2=Xo2+Yo2,设偏差函数Fi为:

若点P在圆弧上方或圆弧上,即Fi≥0,则向-X方向进给一步;若点P在圆弧下方,即Fi<0,则向+Y方向进给一步。由偏差函数可得第一象限内圆弧偏差的递推公式。

图4 圆弧插补法运行轨迹

若Fi≥0,向-X方向进给一步,点P的坐标由Pi(Xi,Yi)移动到Pi+1(Xi+1,Yi),则新动点的坐标变为Xi+1=Xi-1,代入偏差函数得Pi+1点的偏差为:

若Fi<0,向+Y方向进给一步,点P的坐标由Pi(Xi,Yi)移动到Pi+1(Xi,Yi+1),则新动点的坐标变为Yi+1=Yi+1,代入偏差函数得Pi+1点的偏差为:

同理,可推出逆时针的递推公式、不同象限的递推公式,在此不一一赘述。最后,根据X、Y坐标方向要走的步数(因为步进电机输入连续脉冲,所以在程序中则为判定运动时间)来判断是否到达终点[10]。

根据上述原理,运用Verilog HDL语言完成逐点比较圆弧插补法的仿真,如图5所示。

4 实验结果及实物展示

本文做了逐点比较直线插补法和圆弧插补法两个实验,即通过直线插补法画出一个六边形,实验结果如图6所示;通过圆弧插补法画出一个1/4圆弧,实验结果如图7所示。完整的设计实物图如图8所示。

5 结 语

本文设计的基于PFGA的绘图滑台可在给定坐标点的情况下,通过逐点比较插补法进行路径规划,完成指定图像绘制,经试验,可较好地满足使用需求。

参考文献

[1]李青,王青.3D打印:一种新兴的学习技术[J].远程教育杂志,2013 (4):29-35.

[2]夏宇闻.Verilog数字系统设计教程[J].单片机与嵌入式系统应用,2003(6):51.

[3]杜浩明,周圣.一种以废旧光驱制备教学演示用的激光打印机装置:中国,CN104766532A[P]. 2015-07-08.

[4]孙建仁.CNC系统运动平滑处理与轮廓误差研究[D].兰州:兰州理工大学,2012.

[5]李江昊,陈卫东,朱奇光,等.直流无刷电机微步进控制方法及其FPGA实现[J].燕山大学学报,2013,37(2):170-174.

[6]陈宏臣.基于FPGA技术的数控插补器算法改进研究[D] .成都:西南交通大学,2010.

[7]帅旗.基于最小函数偏差的圆弧及椭圆插补算法[J].科技视界,2014(36):237.

[8]李乐,薛春良,尹海军.一种导轮开槽成型磨床的双滑台进给结构:中国,CN205085828U [P].2016-03-16.

[9]沈旭照,吳一亮.基于FPGA的圆弧插补算法的设计[J].电子世界,2016(24):24,50.

[10]刘强,刘焕,周胜凯,等.一种高精度快速空间圆弧插补方法:中国,CN104155916A[P].2014-11-19.endprint

猜你喜欢
步进电机滑台
某款汽车复合材料尾门的滑台分析及优化
基于改进PID控制的机床滑台运动位移跟踪误差研究①
基于PLC的液压动力滑台控制系统改进设计
基于Access数据库的机床滑台选型系统开发与实践