当前位置:   article > 正文

myrio与fpga编程_【虚拟课堂】LabVIEW与MyRIO的逐点比较法插补实现(含FPGA)

myrio fpga

小本本记下来

最近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

编辑:林春盛

排版:徐成烨

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/527220
推荐阅读
相关标签
  

闽ICP备14008679号