我想知道其他人在使用 Raspberry Pi(我拥有 3B)上的伺服电机和超声波传感器时是否遇到过同样的问题。
本质上,我在伺服电机 ( HS-422 ) 的顶部安装了两个相距 180° 的超声波传感器 ( HC-SR04 )以充当雷达。
这是一个示例代码。Servo 和 Sonic 类是由我制作的。它们功能齐全,并且使用 Joan 的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次)时,一切正常。当我将我的超声波传感器与伺服器一起实例化并返回它们distance()
时,一切都开始滞后,伺服器移动非常缓慢。
我试图打印距离,看看是否是伺服抖动问题,但我的怀疑得到了证实:一切都滞后了。
好像 RPi 太慢了。
有时,我会获得 20° 的“正常”速度,然后再次减速。这向我证实,这不是gpio
图书馆问题,也不是传感器问题。
有没有办法解决这个问题?RPi 真的落后了吗?