我想知道,如果别人遇到了同样的问题,他们的伺服电机上的树莓派(我拥有3 B型)超声波传感器相结合。树莓派伺服和超声波传感器抖动
从本质上讲,我已经安装两个超声波传感器(HC-SR04)与彼此分开180°上的伺服电动机的顶部(HS-422)作为一个雷达。
下面是一个示例代码。伺服和声波类是由我制作的。他们完全有功能,他们使用琼的pigpio。
import pigpio, time
from Files.servo import Servo
from Files.sonic import Sonic
pi = pigpio.pi()
servoMotor = Servo(name = 'Test', gpio_list = [14], pi)
sensor = Sonic(name = 'Test2', trig = 2, echo = 3, pi)
servoMotor.rotate(0)
time.sleep(1)
try:
while True:
for i in range(181):
servoMotor.rotate(angleR = i)
time.sleep(0.01)
print(i, sensor.distance())
for i in range(181):
servoMtor.rotate(angleR = 180 - i)
time.sleep(0.01)
print((180 - i), sensor.distance())
except KeyboardInterrupt:
pi.stop()
问题:当我通过角度(180倍)使伺服旋转角度时,一切正常。当我将我的超声波传感器与伺服一起使用并返回它们的距离()时,所有事情都开始滞后,伺服器移动速度非常慢。我试图打印距离来查看它是否是伺服抖动问题,但我的怀疑得到证实:这一切都是滞后的。就好像RPi太慢一样。有时候,我会在20°时得到“正常”的速度,然后再次减速。这就是确认我不是gpio库问题,也不是传感器问题。
有没有办法呢? RPi真的滞后吗?