赞
踩
小本本记下来
最近3D打印机用的有点爽,想用LabVIEW做一个自己的3D打印机玩一玩,所以今天介绍的是利用LabVIEW与MyRIO实现逐点比较法的直线与圆弧插(涉及FPGA)。首先我们来介绍一下逐点比较法的直线插补原理
最近3D打印机用的有点爽,想用LabVIEW做一个自己的3D打印机玩一玩,所以今天介绍的是利用LabVIEW与MyRIO实现逐点比较法的直线与圆弧插(涉及FPGA)。首先我们来介绍一下逐点比较法的直线插补原理。
直线插补原理
直线插补程序
这个程序就是根据直线插补的思想,根据当前位置的判断让MyRIO在对应端口发出一个高地电平让x/y轴的电机动一步,添加0ms等待是因为不给等待电机会因为频率太快丢步,增加1ms以上的等待电机又走的太慢,因此给了0ms的等待,虽然电机依旧转的很慢不过还是可以接受的,通过路径模拟可以看出效果还是够直的。
直线插补程序模拟图
接下来就是圆弧插补了,原理与直线插补相似不断判当前点在圆内或是圆外,改变x或y的运动,由于书上给的是一个象限内的圆弧,所以不用过多的考虑x与y的运动方向;原理与程序图如下所示:
圆弧插补原理
圆弧插补程序
在这个程序里我添加了一个圆心的计算,让我的圆弧可以通过两点与半径确定圆心:
利用这个程序,可以画出任意象限内不超过90度的圆弧,利用程序仿真可以直观的看到效果
在程序做完之后,我用MyRIO对我的程序进行测试,这个程序显得非常鸡肋,虽然效果可以,但是在执行过程中我等的时间远远超出了我的期待,怎么可以这么慢,后来我也试过增加for的次数调节等待时间等,但是依旧慢的难受,于是我放下了手中的鼠标,深情的吸了一口美味的奶茶,一阵灵感突来,为什么不是一下FPGA呢,于是,我变动起手来,把我现在的程序放进FPGA中运行,首先是改造我的直线插补,伴随着漫长的编译时间,电机动了起来,爽到不要不要的,霎然间神清气爽,终于不再是毫秒级的控制了,小快乐。
直线插补程序
接下来就是对圆弧插补进行改造了(此处程序忘记保留了…),一顿操作猛如虎结果发现FPGA各种编译失败留下了眼泪,检查后应该是我的程序占用太多的逻辑片LUT了,所以我把程序分成了顺圆弧与逆圆弧,再把可有可无的搬到程序外面运算,一个完美的擦边球暗暗自喜,运行后这次画出来的圆比原来快多了,快的不止一点点,后来再良久思考后也把程序从一个象限做到跨象限圆弧了,程序如下:
估计设备使用(综合)
圆弧插补(FPGA)
圆弧插补
圆弧由于考试临近,这次就先做到这里,实现完基本的快速插补,就差把程序整合再加个z轴和喷头,我的打印机小梦想就不远了。
有需要相关资料或程序的可以联系我QQ:804935369
编辑:林春盛
排版:徐成烨
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。