[英]Control continuous servo motor with Raspberry Pi and Python
我正在尝试使用此代码控制我的连续伺服电机:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
p = GPIO.PWM(17, 50)
p.start(7.5)
try:
while True:
p.ChangeDutyCycle(7.5)
time.sleep(1)
p.ChangeDutyCycle(12.5)
time.sleep(1)
p.ChangeDutyCycle(2.5)
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
伺服有时会像代码一样正确运行,而其他代码则随机运行相同的代码。 我为电机使用另一个电源。
我认为电机没有损坏,因为我使用 Arduino 来控制伺服并且它工作得很好。
如果“随机工作”是指“它移动到大致正确的位置,但摇摆不定”,那么问题出在 Raspberry Pi 的软件脉冲宽度调制 (PWM)
伺服需要一致的脉冲才能一致地运行,比 Pi 的软件可以提供的更准确。 所以脉冲稍微不一致,表现为“抖动”(在连续伺服中,这将是速度围绕正确速度随机变化)
除了@JeffUK 上面的回答——我知道这不是软件问题,但仍然是 germain——确保你的伺服系统(即使你说它由另一个来源供电)和 Pi共享一个公共接地连接。 浮动地面会导致各种不可预测的行为。 对于我们的软件人员来说,忘记这一点是很常见的:)连接外部设备时的细节很少。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.