如何使用FPGA控制步进电机(借助PmodSTEP)项目的DIY动手指南

基础教程

0 832 0

当前 1/9 Step

Step1: 材料准备

在这一项目中,你需要用到:

-  Basys3 FPGA开发板

-  PmodSTEP步进电机驱动模块

-  步进电机

-  Xilinx Vivado软件

-  USB A to B micro电线

-  胶布

-  4个母对公排针或4根带母排针的电线(可选)

Step2: 在电机上粘一小条胶布

在实际操作过程中,我发现如果在步进电机上带一个容易视觉识别的小玩意儿的话,更容易让自己察觉到步进电机的旋转,并且在实现项目后获得更大的满足感。所以在这里我会强烈建议在步进电机的轴上粘上一小条彩色的胶布,方便你知晓自己的进展情况。

Step3: 为步进电机接线增加母连接头(可选步骤)

一开始,我想直接把一组杜邦线的母连接头切下来直接装到一组不同颜色的步进电机接线上,实际操作中发现这样非常难搞。比较简单的做法其实是分别截取带母连接头的不同颜色杜邦线的末梢,把它们与步进电机电线焊接相连,然后按照电线的颜色用相同颜色的胶布把焊接的部分给包起来。包的时候需要牢牢的将杜邦线与电线包紧,以使其不会脱落。如上图所示,这样,我们就能确保每一根不同颜色的步进电机电线都会带有一个母连接头了。

Step4: 学习了解步进电机是如何运作的(可选步骤)

这同样是一个可选步骤。如果你只是想了解如何控制步进电机,完全可以跳过这一步。但就个人而言不建议这么做,特别是如果后续你想要对步进电机的运转进行调整的话,你最好还是需要了解步进电机的工作原理,这会给你带来很大的帮助。


在这里,向大家极力推荐一段由Kevin Darrah录制的教学短视频。这一视频将深入浅出地带领你了解步进电机是如何运作的。视频中,Kevin用一些按钮对步进电机进行控制,以此展示信号如何被传输到电机中,实现电机不同方向的运作。


本质上,步进电机由两组线圈所控制,用户通过向线圈的任意一边发送高低信号来驱动步进电机,并通过对不同线圈不同方向发送信号的调整,来使电机实现转动。这也就意味着,若想要伺服电机实现全速模式,我们就需要在某一时间段内激活一个线圈(即,某一时间段内向一个线圈发送高频信号)。

Step5: 理解代码背后的基础构思理念

我发现在FPGA设计中对我来说最简单有效将自己的设计想法组织在一起,并从中理出头绪以对其实现控制的最好的一个办法就是先画一张状态图。


如Step 4中所提到,若要想以全速模式驱动步进电机,我们需要在某一时间激活一个线圈,这也就意味着在某一时间内某一根电线需要被高速驱动。所以,在每一个激活状态(Sig4,Sig3,Sig2,和Sig1),所输出的就是信号,其中包含了到每根电线的信号。在每一个状态中,一次只有一个信号被驱动。这意味着,一个线圈中将被激活。


不同激活状态的转换取决于信号的方向。如果我们想要保持朝着同一个方向(即 dir=1并且恒为1),我们就能以同一个方向经过每一个状态;如果我们想要改变方向(即dir从1变为0),我们则以反方向经过每一个状态。


如果我们现在随机处于图中任意一个状态下,并且把en(即enable)改为0,则我们将进入没有任何高频信号的Sig0状态,此时没有线圈被激活,电机就会停止。如果enable重新变为1,则我们就会回到激活状态中。


电机的步进速度指的就是移动通过这些状态的速度,其实也就是时钟信号被发送到状态机的速度。

Step6: 下载并打开Vivado项目代码

点击左侧“下载代码”按钮。解压缩文件并打开Vivado项目代码,双击打开。


注意:我使用的是Vivado2015.4版本来创建此项目代码。如果你安装了其它版本的Vivado,保险起见我建议你用Vivado创建一个新的项目,然后添加每个源文件。您将需要添加,pmod_step_interface.v,clk_div.v,pmod_step_driver.v和claw_constraints.xdc。

Step7: 生成bit文件并对开发板进行编程

打开代码文件后,你就可以生成bit文件并对板卡进行编程了。


要生成bit文件双击生成bitstream即可。若要对板卡进行编程,则打开hardware manager,然后打开target,即可进行编程操作

Step8: 将PmodSTEP插到Basys3上

接下来,你需要将PmodSTEP插到Basys3开发板上。在此处所分享的代码中,我所使用的是Pmod JC连接插头,因此这里需要将PmodSTEP插至Basys3相应的接口上。

Step9: 将步进电机与PmodSTEP相连

实际项目中我所使用的电机是一个双极步进电动机,所以它有四根引线(参见图2左)。因此,我将使用4针连接器。将引线按照黑、红、绿、蓝的顺序先后插入4针连接器。这一步完成后,整个项目的样子应该如图1所示。


翻转SW1使电机运转,此时你应该就能看到电机开始转动了。翻转SW0改变方向。


恭喜你!到这里你就已经掌握了如何使用FPGA开发板借助PmodSTEP来控制步进电机了!给自己一点掌声吧。

评论