基于FPGA绘图滑台设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA绘图滑台设计

基于FPGA绘图滑台设计   摘 要:文中设计了一种集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为:   第一象限直线插补的过程可归纳为:当偏差Fm0时,点P在直线下方,点P向Y轴正方向移动,将Ym+1=Ym+1代入偏差函数可得简化公式为:   当偏差Fm0时,点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)为加工动点。

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档