介绍:3D打印伺服电机
大多数业余爱好伺服仅限于小于360°的旋转。让我们来解决这个问题!在这个构建中,我将向您展示如何制作3d打印伺服电机。像传统的伺服,这个伺服有位置反馈。与传统的伺服不同,这个伺服有3D打印的齿轮,更快更强,并且有360°旋转。这是一个相当简单的构建。我在一个周末内把这个项目从头到尾完成了。让我们开始吧。
供应
工具
- 尖嘴钳
- 剪线钳
- 剥线钳
- 2.5mm六角扳手
- 烙铁和焊料
- exacto刀
- 热胶枪和热胶
- 锤
部分(58.86美元)
电子产品(41.97美元)
- 600转直流电机
- BTS7960电机驱动器
- AS5600编码器
- Arduino Uno
- 24V电源(我使用的是台式电源,但6S脂电池也可以)
其他用品(16.89美元)
- 编码器磁铁(8mm直径x 2.5mm)
- M3 x 6mm螺纹插入(x 12)
- 42mmOD x 30mmID x 7mm轴承
- M3 × 5mm螺钉(x 3)
- M3 × 10mm螺丝(x 6)
- M3 × 15mm螺钉(x 2)
步骤1:3D打印零件
首先,让我们打印零件。我在Autodesk Inventor中设计了这个188bet比分伺服。设计很简单。它本质上是一个齿轮箱,齿轮比为3:1,安装在直流电动机上。总共有6个3d打印部件:
- 齿轮箱
- 齿轮箱的情况
- 十八齿齿轮
- 54齿齿轮
- 输出轴
- 伺服机构
我用PLA灯丝打印了所有这些部件。我已经在下面附上了所有的STL文件。
我建议使用以下打印机设置:
- 20%的加密
- 自动生成的支持
- PLA(210°挤出机和45°床层)
灯丝总用量约50g。打印全部6个零件总共花了4个小时。
360年_servo
附件
步骤2:添加螺纹插入
现在让我们将螺纹插入到一些3d打印部件中。这些插入物充当螺钉的螺纹。你总共需要12个插片。需要这些插入的部件如下:
- 变速箱(4个刀片)
- 变速箱盖(4个刀片)
- 54齿齿轮(4个镶齿)
使用加热的烙铁将这些插入物压入零件中。
步骤3:编码器设置
而常规伺服使用电位器来获得位置反馈,这个伺服使用编码器。AS5600绝对编码器将读取伺服的位置并将其发送到Arduino。您需要将伺服电缆连接到编码器上的3根引线上,以便它可以连接到Arduino。接下来,把编码器压进变速箱,用热胶把电线压住。现在按编码器磁铁到54齿齿轮。这允许编码器读取齿轮的位置,因为齿轮旋转。
步骤4:创建变速箱盖
使变速箱盖
- 把轴承推到变速箱的情况下(你将需要一个锤子为此)。
- 将54齿齿轮推入轴承。
- 用m3 x 10mm螺钉(x2)将输出轴拧到54齿齿轮上。
步骤5:添加直流电机
现在让我们用m3 x 5mm螺钉(x 3)将直流电机拧到主变速箱上。然后将18齿齿轮推入直流电机(你将需要一个锤子)。由于直流电动机的轴是D轴,因为18齿齿轮是一个紧密配合,齿轮不应该打滑。
步骤6:创建变速箱
现在让我们完成伺服:
- 使用m3 x 10mm螺钉(x 4)将变速箱盖固定在变速箱上
- 使用m3 x 15mm螺钉(x 2)将伺服臂拧到输出轴上
步骤7:BTS7960
我们将使用BTS7960电机驱动器来驱动电机。必须对驱动程序做一个微小的修改。驱动器有2个标记引脚(44)脉宽调制在图中图片# 3。如图所示,这些引脚需要焊接在一起图片# 2。这将创建启用引脚。这些引脚分别是LPWM引脚和RPWM引脚的使能引脚。由于这些引脚必须始终处于相同的状态(如果其中一个被设置为HIGH,另一个也必须设置为HIGH),焊接它们可以在Arduino上节省一个引脚。
我建议将伺服电缆焊接到RPWM和LPWM,并使能引脚(我们刚刚焊接在一起的引脚),如图所示图片# 1.这将使驱动程序连接到Arduino更容易。
8 .电子产品
中所示的原理图创建电路非常简单图片# 6(PDF格式也在下面)。下面是该原理图的描述。
AS5600
- GND -连接到Arduino GND引脚
- 5V -连接Arduino 5V引脚
- PWM -连接到Arduino模拟引脚A0
直流电机
- 电机上的两个引线都连接到BTS7960电机驱动器M +而且M -别针。哪个连接哪个并不重要。
- 注:电机额定电压为24V。它不需要恰好是24V。如图4所示,我使用了大约22个。
电力供应
- GND -连接到BTS7960的B-
- VCC -连接到BTS7960上的B+
BTS7960
- 启用引脚(也就是我们焊接的引脚)-连接到Arduino引脚2
- LPWM -连接到Arduino引脚5
- RPWM -连接到Arduino引脚6
- **注**正如您将在下一步中看到的,L_PWM和RPWM引脚在Arduino引脚5和6上的位置完全是任意的。当我们上传Arduino草图时,我们必须确认这是正确的位置。换句话说,无论您将L_PWM和R_PWM引脚分别连接到Arduino引脚5和6,还是分别连接到Arduino引脚6和5,都没有关系。
**注**所有组件的GND引脚连接在一起。
步骤9:上传草图
现在让我们上传草图。下载下面的Arduino草图,并取消void loop部分中的第一行注释。将括号中的值更改为您希望移动伺服器的位置(它应该看起来像这样图片# 2).现在上传草图。如果一切正常,伺服器应该移动到那个位置。
如果你发现伺服永远不会在一个点上安定下来,来回移动非常快,那么你有直流电机连接错误。你可以用以下两种方法之一来解决这个问题:
- BTS7960上的电机引线与M+和M-相连的开关。
- 将程序第2行上的PWM引脚分配从{5,6}更改为所示的{6,5}图片# 1。
这是如何工作的
Arduino使用一种称为闭环控制的方法来控制伺服的位置。这与普通伺服的工作原理类似。Arduino不断移动伺服到一个设定值。当你在函数moveTo()中输入一个值时,你就是在设置这个设定值。
偏移值
你会注意到伺服的位置是相当随意的,因为我们只是把编码器磁铁随机放入齿轮。要改变这一点,请更改名为offset的变量(如图片# 1).例如:如果我想让当前的0°位置与当前的60°位置相同,则将偏移值设为60。同样地,如果我想让0°的位置在320°的位置,使偏移量-40。
读取伺服位置
与传统伺服中使用的电位器不同,AS5600编码器允许我们读取伺服的位置。若要显示此位置,请取消void循环部分中的第二行注释。这一行读取Serial.println(getPos())。getPos()函数返回从绝对编码器读取的伺服的位置。这部分代码显示在图片# 3.
输入位置值到串行监视器
如果你想输入伺服转向的不同位置,取消void loop部分的第二行注释。这是一个名为inputPos()的函数。当你上传这个草图,你可以输入不同的位置伺服转向。这部分代码显示在图片# 4.
步骤10:在其他项目中使用伺服
如果你想自定义这个伺服不同的项目,我建议看看以下:
改变转矩/速度
- 伺服的速度和转矩只能通过改变直流电机来改变。您可以同时购买不同转速和扭矩额定值的直流电机链接购买600转的直流电动机。一个较慢的直流电动机会给你更多的扭矩,因为它有一个更高的齿轮减速。
修改Arduino的引脚
- 在Arduino上改变RPWM和LPWM引脚的引脚分配非常简单。只要你改变程序中的pin分配以及Arduino上的程序应该工作得很好。唯一要记住的是,RPWM和LPWM引脚必须连接到Arduino上的PWM引脚。您还可以更改编码器的引脚分配。同样,编码器只能连接到Arduino上的模拟引脚。
安装伺服
- 变速箱的部分设计是在变速箱顶部的4个螺纹嵌入点,这在这个构建中没有被利用。这样做,变速箱可以安装在其他部件上。这些插入物之间的距离都有标记图片# 3.
创建伺服臂
- 本项目所使用的伺服臂只是一个测试臂。如果你想使用不同的伺服臂,你将不得不CAD自己的。唯一的要求是,你增加两个孔,间隔0.75“,以便手臂可以安装到输出轴上。这是在图片# 4。
编程伺服驱动器
- 上一步给出的程序将伺服器移动到单个位置。如果您希望扫描伺服检查下面的程序(也显示在图片# 5).它每500毫秒将伺服器从0度扫到90度。
16条评论
问题2天前
你是自由职业吗?我一直试图建立一个数据记录仪振动传感器,不能让arduino代码工作。如果我展示零件(火花)。你有兴趣帮我编码吗
23小时前
不幸的是,我不做任何自由职业。
2天前
我一直在用直流电机和这个驱动器在另一个项目上工作,这帮助我移动。我可以看到这个构建将如何帮助我更好地理解一些难以进入我大脑的问题。你的版画质量真的很好,我会尝试这个构建,你有一个伟大的指导方式,谢谢你的展示和指导。
23小时前回复
很高兴能帮上忙!
2天前
伟大的指导性和真正良好的记录视频!当然给了我一个关于闭环电机的新视角。继续这项伟大的工作!
2天前回复
谢谢!很高兴能帮上忙!
5天前
干得漂亮,谢谢!!!!
4天前回复
很感激!
5天前
这是一个很棒的指令集!了不起的设计师!
4天前回复
谢谢!
问题6天前第十步
我能从你这里买这个吗?已经组装和测试了吗?我既没有技术也没有时间做这个。
回答6天前
对不起,我不卖这些。
10天前
出色的工作 ..........
9天前回复
谢谢!
11天前
太好了!谢谢分享!变速箱设计得非常好
10天前回复
没问题,谢谢!