[英]control servo motor speed by raspberry 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()
还有更真实的东西吗?
典型的业余伺服系统设计为尽可能快地旋转到命令位置。 要缓慢移动,必须缓慢更改命令位置。 无需进行大量手动计算,您的代码似乎正在执行此操作。
典型值为每20毫秒(7.5%)大约1.5毫秒的脉冲,以使伺服器在其运动弧中“居中”。 为了达到极限,典型值在一个极限处为1.0毫秒,在另一个极限处为2.0毫秒。
看到7.5是中点,我建议您简单地调用p.ChangeDutyCycle()
,使其值(您希望平滑)在5.0%和10.0%之间变化。 当然,请记住,业余伺服器的开环控制通常由非常便宜的电位计控制,而真正的超精确控制是不可能实现的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.