如何使用覆盆子pi和python使伺服电机慢慢达到所需的角度? 我试过这个,但似乎并不适用于所有条件。
p = GPIO.PWM(7,50)
p.start(7.5)
def servo(angl) :
try :
angle_end = angl
for i in range (1,100) :
angle_step_to_end = (i *angle_end)/100
duty_cycle =(((12.5-2.5)/(180-0) * angle_step_to_end)+2.5
p.ChangeDutyCycle(duty_cycle)
except KeyboardInterrupt :
p.stop()
GPIO.cleanup()
有更真实的东西吗?!
答案 0 :(得分:0)
典型的爱好舵机设计为尽可能快地旋转到指令位置。要缓慢移动,您必须慢慢改变命令位置。如果不进行大量的手动计算,您的代码就会出现这种情况。
典型值是每20毫秒(7.5%)左右1.5毫秒脉冲到#34;中心"伺服在其运动弧线上。为了达到极限,典型值在一个极端为1.0毫秒,在另一极端为2.0。
看到7.5是中点,我建议您只需调用p.ChangeDutyCycle()
,其值(按您想要的顺利)在5.0%和10.0%之间变化。当然,请记住,爱好伺服系统的开环控制通常由一个非常便宜的电位计控制,并且超精确控制并不是真正可以实现的。