繁体   English   中英

用 Raspberry Pi 和 Python 控制连续伺服电机

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM