亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

构建具有位置反馈的精密线性伺服执行器 - 分步指南

在本教程中,我们将学习如何制作线性伺服执行器。与施加电压时沿特定方向移动的常规线性执行器不同,这种定制的线性伺服执行器提供了易于控制的精确且可重复的运动。

之所以称为伺服执行器,是因为它具有反馈回路系统,通过该系统我们可以准确地控制执行器的输出运动。

您可以观看以下视频或阅读下面的书面教程。

概述

用于控制该线性伺服执行器的输入可以是模拟的或数字的。对于模拟输入,它可以是任何类型的电位计,如此处所示。线性电位器、普通旋转电位器或者例如又是旋转电位器的操纵杆等等。

在数字输入的情况下,我们可以使用RC发射器来控制执行器。当然,对于此设置,我们还需要一个 RC 接收器作为执行器的输入。

对于这两种模拟和数字输入模式,我们只需要 3 根线进行连接,其中 2 根用于为输入设备供电,第 3 根用于输入信号。

这种定制的线性伺服执行器的一个很酷的功能是,我们可以为输出杆设置自定义的起始和结束位置,以及调整灵敏度或执行器响应我们的输入的速度。 

不过,我最喜欢的功能是能够通过串行端口通信从 PC 或笔记本电脑控制该执行器。我们可以通过 Arduino IDE 串行监视器输入以毫米为单位的值,执行器将移动到该位置。

更酷的是,我们可以通过在串行监视器上的每个我们想要的位置上键入“保存”来进行可重复的运动或存储位置,然后通过在串行监视器上键入“运行”来告诉执行器循环重复运动。

现在让我解释一下您需要了解的有关这款定制线性伺服执行器的所有信息、它的工作原理以及我是如何设计它的,以便您也可以自己构建一个。 

它是如何工作的

因此,闭环控制系统基于AS5600磁性旋转位置传感器和实现的PID控制来驱动直流电机。

实际上,我使用的是与我之前的视频中制作的相同的定制伺服电机控制器板,其中包括自己的微控制器和其他所有部件,可以轻松地将任何直流电机变成独立的伺服电机。

您可以查看该教程,了解伺服电机和闭环控制系统如何工作的详细说明。  

很快,伺服电机是一个闭环控制系统,其中输入信号或所需位置与我们从位置反馈传感器获得的电机实际位置进行比较。

出现的差异称为误差,然后在控制器中进行处理,控制器命令电机移动,直到到达所需位置。 

因此,该线性伺服执行器的工作原理与伺服电机相同,但多了一个步骤,即借助丝杠机构将电机的旋转运动转换为直线运动。

线性伺服执行器设计

这是该线性伺服执行器的 3D 模型,从中我们可以看到一切是如何工作的。

AS5600 磁性旋转位置传感器位于执行器的背面,用于跟踪丝杠的旋转。我使用的丝杠螺距为 8mm,这意味着丝杠螺母每旋转一整圈,就会产生 8mm 的直线运动。

AS5600 是一个 12 位编码器,这意味着它每转可以输出 4096 个位置。如果我们将 8 除以 4096,我们得到的分辨率为 0.001953mm。这是 AS5600 编码器可以检测到的最小位置变化。我认为这非常令人印象深刻。 

我使用的直流电机是 12V 电机,带有减速箱,输出转速为 480 RPM。如果我们将 480 除以 60,我们得到的值为每秒 8 转,如果我们将该数字乘以 8,因为丝杠的螺距为 8mm,我们得到执行器的线速度为 64mm/s。

我发现是在现场,因为这个执行器杆的最大行程是150mm,所以在最大速度下从开始位置到结束位置大约需要2.5秒,如果包括加速和减速则大约需要3秒。因此,我使用 1:1 的齿轮组传动比来驱动丝杠。 

整个线性执行器的设计当然是基于定制的伺服电机控制器PCB以及丝杠和丝杠螺母的尺寸。 PCB尺寸为40x40mm,因此这是气缸体的最小尺寸。

8mm丝杠螺母的外部尺寸为22mm,因此我根据它设计了杆。螺母和杆通过四个M3螺栓和螺纹嵌件连接。连杆顶部有一个在缸体上滑动的轴承,用于引导连杆并防止其旋转。 

在输出缸盖处,我们有 4 个小轴承,用于将杆引导出缸体。

总的来说,考虑到所使用的所有组件,我认为线性执行器足够紧凑。

我还设法在气缸体内安装了一个微型限位开关,用于执行器的归位和设置起始位置。

3D模型下载

您可以使用 Onshape 直接在网络浏览器上查看和探索此定制线性伺服执行器的 3D 模型。 (您需要一个 Onshape 帐户,您可以创建一个免费帐户供在家使用)

您可以从Cults3D获取3D打印所需的STL文件,以及该3D模型的STEP文件。

这里要提到的更多事情是,您可以通过简单地增加缸体和杆的长度来轻松增加该线性致动器的最大行程长度。我选择这些尺寸是因为我希望所有零件都能安装在 220x220mm 较小打印床的 3D 打印机上。这里最大的部分是杆,长 215 毫米。

3D打印

我的新 Creality Ender-3 V3 SE 在沿 Y 轴的水平方向打印方面表现出色。虽然我们需要做一些发送,但以这个方向打印杆将有助于更顺畅的操作和更强的杆。

3D 打印时,使用切片软件中的水平扩展功能非常重要,以便补偿灯丝的扩展并获得尺寸更精确的零件。

我使用的值是 –0.1mm,但您应该进行一些测试打印,看看什么值适合您的 3D 打印机。 

我沿着 Z 轴打印气缸体,以避免打印大量支撑材料。 Creality Ender-3 V3 SE 在这张照片上也表现出色。

考虑到这款 3D 打印机的价格,我对它的打印质量感到惊喜。设置 3D 打印机非常简单,它具有自动床调平、直接挤出机、出色的打印质量以及高达 250 毫米/秒的打印速度。所有这些仅需不到 200 美元,使其成为预算有限的人的最佳 3D 打印机之一。

Creality 商店 上查看这款 3D 打印机 或亚马逊 。另请在我的网站上查看我对此的详细评论。

组装

不管怎样,这里都是 3D 打印的零件,所以我们现在可以开始组装线性执行器。

零件清单

您可以从以下链接获取该线性伺服执行器项目所需的组件:

机械:

电子产品:

披露:这些是附属链接。作为亚马逊合作伙伴,我通过符合条件的购买赚取收入。

组装丝杠机构

首先,我们需要将丝杠安装在气缸底座中的适当位置。为此,首先我们需要插入与丝杠具有相同螺纹的 3D 打印螺母。

将螺母拧到丝杠上有点困难,因为它是紧密配合的,但这正是我们需要的。当杆被推动时,该螺母可以承受全部的力,因此配合越紧,能够承受的力就越大。除此之外,螺母还有一个用于插入螺纹嵌件的孔,以便用平头螺钉将其固定到轴上。

丝杠借助两个外径为 22mm 的滚珠轴承固定在气缸底座中。

背面是驱动丝杠的齿轮。该齿轮还具有一个匹配的螺纹和两个用于螺纹嵌件的孔,用于用平头螺钉将其固定到丝杠上。

这种连接也很重要,因为它将电机的全部扭矩传递到丝杠,因此丝杠不得打滑。 

为了制作这个子组件,首先我们需要将螺纹嵌件安装在齿轮和螺母上,以及气缸体上。

我们以相反的方向拧紧齿轮和螺母,但不要太紧,因为这会增加轴承的轴向力。然后使用一些平头螺钉,我们可以将螺母和齿轮固定到丝杠上。

固定后,我们可以注意到丝杠尚未固定到位。我们需要将此板添加到气缸体上,以确保轴承保持在气缸体中的适当位置。

这样就完成了这个子组件;丝杠现在牢固地固定到位,并且可以自由旋转。 

接下来,我们可以准备杆。杆的整个长度都是空心的,以容纳丝杠。为了连接丝杠螺母和杆,首先我们需要安装一些螺纹嵌件。 

在杆的顶部,我们需要安装外径13mm、内径6mm的导向轴承。

我们将轴承放置在 3D 打印的 6mm 空心轴上,并使用长度为 10mm 的 M3 沉头螺钉将其固定到杆上。现在杆已经准备好了,我们可以看到它如何在气缸的导轨中滑动。

接下来,我们需要将气缸连接到气缸底座上。不过,在此之前,我们应该将微型限位开关安装到位。

首先,我们需要在 NC 连接处焊接电线。电线长度应约为 15 厘米。将电线穿过气缸顶部的孔,然后用两个8mm长度的M2螺栓将微动限位开关固定在气缸上。

您将特别需要这个微型限位开关,以便引导轴承在正确的时间触发它,而不会碰到其他东西。

如果你找不到确切的限位开关型号,当然,你可以修改孔和机构。 

为了将气缸连接到底座上,我们需要在此处安装一些螺纹嵌件。然后我们可以使用两个 25mm 长度的 M4 螺栓将其固定到位。此时我们应该只插入上面的两个螺栓。

安装变速箱和 PCB 盖时,下面的两个孔会稍晚一些,因为相同的孔用于固定盖。 

接下来,我们可以将杆拧入丝杠中。导向轴承应位于气缸上的导轨之间。

通过旋转背面的齿轮,杆将一直向后移动,直到到达微限位开关。 

然后,我们可以将气缸盖安装到位。气缸盖可容纳四个外径为 9 毫米的小轴承。这些轴承的轴可以进行 3D 打印。

将它们插入到位时要小心,因为这些轴所在的部分很小,很容易断裂。这种情况在我身上发生过几次,所以要确保它们很容易贴合。这些轴承将支撑和引导杆,使操作更平稳。

气缸盖用四个 M4 螺栓固定到位。

安装直流电机

好的,接下来我们可以将直流电机插入到位。我们用六个 M3 螺栓固定直流电机。然后我们就可以将齿轮安装到电机轴上。

为了将齿轮固定到位,我们使用两个螺纹嵌件和平头螺钉。 

一旦齿轮正确配对,我们就可以继续将齿轮和 PCB 盖安装在线性致动器的背面。为此,首先我们需要在气缸基体中安装更多的螺纹嵌件。

然后我们可以将电线连接到直流电机。就我而言,我直接将它们焊接到直流电机上。

电线的长度应在20厘米左右。气缸座上有一个孔,直流电机和限位开关的电线都穿过该孔。

然后我们还应该将它们穿过盖子上的两个支架,这将确保它们远离齿轮。 

此时,我们可以将盖子固定到底座上。为此,首先我们需要将两个 M4 螺栓插入底部,但不要完全插入。

我们应该留出大约2mm或3mm,以便我们可以将盖支架放在中间,然后将这些螺栓与盖紧固在一起。

整个操作有点混乱,但它必须是这样的,因为我希望盖子尽可能小并且只有一个印刷品,而 PCB 支架挡住了螺栓的路径。

安装自定义伺服控制器 PCB

不管怎样,一旦我们完成了盖子,我们就可以将定制的伺服电机控制器板安装到位。就像我说的,它与我之前的视频中的控制器相同,我在视频中向您展示了如何将任何直流电机变成伺服电机。

这里的主要组件是 AS5600 磁性旋转位置编码器,它跟踪连接在输出轴上的磁铁的角度位置。在这种情况下,我们将磁铁连接到丝杠上的输出齿轮。当 PCB 就位时,磁铁与 AS5600 传感器完美对齐。

为了固定PCB,我们需要将M2螺母插入固定器的插槽中,然后用四个M2螺栓拧紧PCB。

现在剩下要做的就是将电线连接到位。直流电机线接到电机接线端子上,需另外检查极性,与控制器程序相符。

实际上,在将电机连接到PCB之前,我们可以对其施加一些电压,以检查丝杠机构是否正常工作。

至于限位开关线,由于我没有专门用于此目的的引脚,因此我将地线焊接到电解电容器上的接地焊盘,并将 NC 连接线焊接到 SCK 引脚,即 ATMEGA328 微控制器上的数字引脚 13。

电源接线端子位于盖子侧面的旁边,因此有一个孔,我可以通过该孔连接 5.5mm 电源连接器。

我还为直流电机驱动器添加了一个散热器。最后,我们可以将卡扣盖放在背面,就这样,我们完成了这个项目。 

现在我们可以将任何类型的电位器或 RC 接收器连接到适当的输入引脚,并且我们可以用它来控制线性执行器的位置。

正如我已经提到的,在我之前的视频中,我详细解释了该控制器的工作原理、电路原理图以及 PCB 的制作方法。

因此,如果您想制作此控制器板,您应该查看该教程。 

电路原理图

真的很快,主要部件是 AS5600 磁传感器,它跟踪执行器输出的位置。传感器数据进入伺服控制器板 Atmega328 微控制器的大脑,负责进行数学计算,并告诉 DRV8871 直流电机驱动器如何驱动直流电机。

DRV8871 直流电机驱动器可处理高达 3.6A 的峰值电流。为了给电路板供电,我们可以使用 12V,然后通过 ASM1117 稳压器将 Atmega328 和其他 5V 组件的电压降至 5V。有一个两通道的拨码开关,通过它可以选择执行器的输入方式,可以是模拟输入,也可以是数字输入,也可以通过串口通讯。

其中一个微调电位器用于调节执行器的灵敏度,SDM按钮用于设置起始位置和结束位置。

我从 PCBWay 订购了 PCB。在这里我们可以简单地上传Gerber文件,选择我们的PCB的属性,并以合理的价格订购。

我把PCB设计成4层,中间是GND,这样就增加了一些价格。除了 PCB 颜色我选择为白色之外,我没有更改任何默认属性,并且我勾选了我接受将表面处理更改为沉金(如果适用),无需额外付费。

您可以从 PCBWay 项目共享社区找到并下载 Gerber,也可以通过该社区直接订购 PCB。

无论如何,当然,即使没有这个定制的伺服控制器,您也可以制作这个线性执行器项目。

您可以将分线板上的 AS5600 传感器与 Arduino 板结合使用来控制直流电机。

代码

现在让我们看一下这个线性伺服执行器的代码:

<前>02

代码说明

因此,我们通过读取编码器值或执行器的当前位置并将其转换为毫米来启动循环。

<前>11

然后,如果我们处于“串行通信模式”,我们将读取在串行监视器上输入的传入数据。如果输入是“保存”,我们会存储当前位置执行器,或者如果输入是“清除”,我们会清除所有已存储的位置。

<前>29

如果输入是整数或数字(从 0 到 150),我们将使用该值作为设定值。

<前>33

我们以毫米为单位输入值,但为了跟踪旋转轴,我们使用度,因此我们通过乘以 45 将毫米值转换为度值。这是因为对于 1mm 的线性运动,丝杠应旋转 45 度。如果丝杠的螺距不同,则该数字应该不同。 

如果我们输入“run”,在一些 while 和 for 循环的帮助下,程序将重复运行存储的位置。

<前>41

另一方面,如果我们处于电位器和RC接收器控制模式,我们检查是否有模拟或数字输入。

<前>59

如果是模拟的,我们从电位计读取模拟输入,并将该值用作设定点或执行器要到达的所需位置。同样,如果输入是数字输入,我们从 RC 接收器读取传入数据并使用该值作为设定值。 

然后我们调用readEncoder()和runMotor()自定义函数来读取执行器的当前位置并执行PID控制。使用 readEncoder() 函数,我们以角度值读取传感器的当前值,并使用这些 if 语句,我们跟踪轴的当前位置位于哪个象限。

<前>62

有了这些信息,我们就可以跟踪轴如何旋转以及何时旋转一整圈。总角度是 PID 控制器的输入值。 

利用微调电位器的模拟输入,我们可以调节PID控制器的比例增益,最后运行PID过程得到输出值。

<前>74 <前>80

我们使用该输出值通过 PWM 信号驱动直流电机(向左或向右,或处于静止位置),具体取决于 PID 控制器的输出值,或者取决于编码器读取的期望位置和实际位置之间的误差。

上面定义了PID控制器的比例、积分、微分三项,通过调节它们可以得到不同的输出响应。

<前>90

执行器的质量、工作效果或对我们输入的响应直接取决于这些值。

测试

我在这里测试执行器的精度。它会正常地回到原位。然后开始将杆每次移动一毫米。第一个移动大约是 0.8 毫米而不是 1 毫米,但接下来的 4 个移动足够接近 1 毫米。  然后4毫米的机芯就偏移了大约0.15毫米。 

我们应该注意到杆的间隙约为 0.25mm。该齿隙位于丝杠和丝杠螺母之间。除此之外,3D 打印齿轮以及直流电机本身的齿轮可能存在一些齿隙。  

如果我们现在向杆施加力并测试精度,当然,我们会得到更大的误差,但这可以通过调整 PID 控制器来改善。 

不过,这就是本教程的全部内容。我希望您喜欢它并学到一些新东西。


制造工艺

  1. NodeMCU 和 Raspberry Pi 3 B+
  2. 通过以太网控制的机械臂
  3. 48 x 8 滚动 LED 矩阵使用 Arduino。
  4. 带智能显示屏的智能电池充电器多路复用器
  5. 成型机:主要零件和工作
  6. 304和202不锈钢有什么区别?
  7. 什么是伺服液压机?
  8. 了解杠杆系统
  9. DIY:HomeBrew 的温度监控和调节
  10. 了解工具钢及其制造方式
  11. 距离传感器和 OLED
  12. 了解生物质能源