【发布时间】:2018-11-16 20:11:22
【问题描述】:
我的设置只是通过 GPIO 库使用树莓派的 PWM 直接激活伺服 JX-PDI-6221MG。伺服是全新的,我遵循this tutorial 并将占空比值设置在 0 到 100 之间。它所形成的角度没有图案,它似乎从 20 到 50 是一种方式,从 60 到 90 是另一种方式。
我决定遍历所有可能的占空比(代码如下),并确认变化并不平滑,而且看起来也不精确。在尝试再次设置固定值后,它突然开始向多个方向旋转,即使我没有改变任何东西。甚至 GPIO.cleanup() 或杀死与 python 相关的进程都没有让它停止。
我的 Raspberry Pi 是否变得抖动并且非常不精确,或者我是伪造的受害者?
代码:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11,GPIO.OUT)
pwm=GPIO.PWM(11,330) #which is the same as shown in datasheet
pwm.start(0)
for i in range(0,100):
pwm.ChangeDutyCycle(i)
time.sleep(0.02)
for i in range(0,100):
i = 100 - i
pwm.ChangeDutyCycle(i)
time.sleep(0.02)`
【问题讨论】:
-
请注意,您的 Pi 上的软件 PWM 非常糟糕。可用的硬件 PWM 引脚数量有限(1 个或 2 个,具体取决于您的型号),并且有一些解决方法可以实现更好的软件 PWM(例如,RPIO.PWM)。这不是作为答案发布的,因为听起来可能还有更多事情发生,然后只是稍微不稳定的 PWM。你可以考虑在raspberrypi.stackexchange.com 上提问。
标签: python raspberry-pi servo