【发布时间】:2016-10-26 20:18:31
【问题描述】:
我正在尝试使用二维轴上的两个电机绘制一个圆或任何可能接近曲线(例如正弦)的东西。基本上我正在运行一个带有两个 nema17 步进电机的树莓派和 Adafruit 电机帽。
我想实现一些“平滑”,但似乎我只能得到真正“混叠”的结果,我想知道这是否是因为我正在驱动步进电机。 (但我相信 3D 打印机使用步进电机并取得一些不错的效果)
做一些数学运算,我可以算出每个电机的速度: X = R cos(t) 和 Y = R sin(t) 所以 Vx = -R sin(t) 和 Vy = R cos(t)
但我不确定这是不是最好的方法,因为我不确定我是否可以驱动步进电机的速度,但只能在步骤之间做一些延迟。
我也考虑过计算曲线的所有 x 和 y 位置,但我再次不确定我的构建精度是否足够高。
为了完成,我正在使用 Adafruit 库:https://github.com/adafruit/Adafruit-Motor-HAT-Python-Library,所以我并没有真正深入研究硬件代码,而只是使用库提供的功能。基本上,我可以单独运行每个电机 x 步。这是步进卡:https://www.adafruit.com/product/2348
构建(这是非常DIY):https://www.youtube.com/watch?v=uqSTZiI4KuY
【问题讨论】:
-
如果您的步进电机齿轮相当高,那么一步就是例如1mm 那么你将很难得到看起来光滑的东西。 OTOH,如果一步是例如0.1mm(或更小)那么你应该能够得到平滑的线条。您还必须采取很多步骤 - 如果您尝试使用例如近似圆8 个样品,您将得到一个八角形。要获得更精确的帮助,您必须发布您的代码。
-
我已为我的问题添加了详细信息。我相信我可以有一些好的分辨率,我认为 1 step
-
如果您一次只运行一台电机,那么不可避免地会出现短的水平线或垂直线,尤其是由于电机启动/停止而不可避免的晃动。要获得对角线,您必须同时运行两个电机 - 每个电机都以对应于您尝试绘制的线的斜率的速率运行 - 并且最好保持电机连续运行,调节它们的速度而不是启动/停止。跨度>
-
我可以同时运行两个电机,但你所说的“每个电机都以对应于你试图绘制的线的斜率的速率”是什么意思?
标签: math raspberry-pi motordriver adafruit