下面是一个使用 Python 编程语言在树莓派上使用超声波传感器模块进行距离测量的示例程序。在这个示例中,我们将使用 HC-SR04 型号的超声波传感器模块,它是一种常见的超声波测距模块。
import RPi.GPIO as GPIO
import time
# 设置GPIO引脚
TRIG = 23
ECHO = 24
# 初始化GPIO设置
GPIO.setmode(GPIO.BCM)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
try:
while True:
# 发送超声波脉冲
GPIO.output(TRIG, False)
time.sleep(2) # 等待2秒,确保传感器稳定
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
# 接收超声波回波
while GPIO.input(ECHO) == 0:
pulse_start = time.time()
while GPIO.input(ECHO) == 1:
pulse_end = time.time()
# 计算距离
pulse_duration = pulse_end - pulse_start
distance = pulse_duration * 34300 / 2 # 声音速度为34300厘米/秒
# 打印测得的距离
print("距离: %.2f 厘米" % distance)
time.sleep(1) # 等待1秒再进行下一次测量
except KeyboardInterrupt:
# 当按下Ctrl+C时,退出程序并清理GPIO设置
GPIO.cleanup()
在这个例程中,我们使用 RPi.GPIO 库来管理树莓派的 GPIO 引脚。首先,我们定义了超声波模块的触发引脚(Trig)和回波引脚(Echo)。然后,我们初始化 GPIO 设置,并在一个无限循环中执行测量。
在每次循环中,我们发送一个超声波脉冲,然后测量回波的时间来计算距离。最后,我们将距离打印出来并等待一秒再进行下一次测量。
请注意,根据您的具体硬件连接和 GPIO 引脚的选择,您可能需要适当调整 Trig 和Echo 的引脚编号。
在运行这个程序之前,确保已经正确连接了超声波传感器到树莓派的 GPIO 引脚,并已经安装了 RPi.GPIO 库。此外,要在树莓派上运行 Python 程序,您需要使用
sudo
或者在用户组中将用户添加到gpio
组以获得 GPIO 访问权限。