pyfirmata 中伺服运动之间的延迟不起作用
Delays between servo movements in pyfirmata don't work
我正在 python 中编写一个程序,其中在特定时间移动伺服系统是该项目的关键部分。为了实现这一点,我正在使用 pyfirmata 库。
我试过两种延迟方法,但 none 似乎有效。
当我 运行 代码时,舵机第一次转动,但在延迟之后,它没有转动,程序只是停止,而不是将舵机移动到 0 度,然后 然后 停止。
这是 pyfirmata 库中内置 board.pass_time() 的那个:
from pyfirmata import Arduino, util
import time
board = Arduino('COM3')
servo = board.get_pin('d:9:s')
servo.write(180) #This works and turns the servo
time.sleep(1)
servo.write(0) #This time the servo does not turn, then the program ends
这是 time.sleep():
from pyfirmata import Arduino, util
board = Arduino('COM3')
servo = board.get_pin('d:9:s')
servo.write(180) #This works and turns the servo
board.pass_time(1)
servo.write(0) #This time the servo does not turn, then the program ends
如果有人能提供帮助,我将不胜感激。
谢谢,
大卫
我找到答案了!
可能有更好的答案,但是如果我把 board.get_pin('d:9:s')
写成 board.get_pin('d:9:')
,像这样,我需要用 0 到 5 的值来控制它,而不是 0 到 360,但是延迟工作
您的代码是正确的,但您需要再次进行延迟以将其调回 0 度。所以你的代码应该看起来像这样。
servo.write(180)
time.sleep(2)
servo.write(0)
time.sleep(2)
每次更改伺服电机时都需要给出延迟才能进行这些更改
我正在 python 中编写一个程序,其中在特定时间移动伺服系统是该项目的关键部分。为了实现这一点,我正在使用 pyfirmata 库。
我试过两种延迟方法,但 none 似乎有效。 当我 运行 代码时,舵机第一次转动,但在延迟之后,它没有转动,程序只是停止,而不是将舵机移动到 0 度,然后 然后 停止。
这是 pyfirmata 库中内置 board.pass_time() 的那个:
from pyfirmata import Arduino, util
import time
board = Arduino('COM3')
servo = board.get_pin('d:9:s')
servo.write(180) #This works and turns the servo
time.sleep(1)
servo.write(0) #This time the servo does not turn, then the program ends
这是 time.sleep():
from pyfirmata import Arduino, util
board = Arduino('COM3')
servo = board.get_pin('d:9:s')
servo.write(180) #This works and turns the servo
board.pass_time(1)
servo.write(0) #This time the servo does not turn, then the program ends
如果有人能提供帮助,我将不胜感激。
谢谢, 大卫
我找到答案了!
可能有更好的答案,但是如果我把 board.get_pin('d:9:s')
写成 board.get_pin('d:9:')
,像这样,我需要用 0 到 5 的值来控制它,而不是 0 到 360,但是延迟工作
您的代码是正确的,但您需要再次进行延迟以将其调回 0 度。所以你的代码应该看起来像这样。
servo.write(180)
time.sleep(2)
servo.write(0)
time.sleep(2)
每次更改伺服电机时都需要给出延迟才能进行这些更改