超声波测距是一种常见的测量距离的技术,尤其适用于物体间距的测量。下面是一个简单的Python代码示例,可用于实现超声波传感器的测距功能。
代码示例
import RPi.GPIO as GPIO
import time
# GPIO模式设置
GPIO.setmode(GPIO.BCM)
# 定义GPIO针脚
TRIG = 23
ECHO = 24
# 设置GPIO方向
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
# 测距函数
def distance():
# 发射超声波
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
# 记录发射和接收时间
while GPIO.input(ECHO) == 0:
start_time = time.time()
while GPIO.input(ECHO) == 1:
stop_time = time.time()
# 计算距离
time_elapsed = stop_time - start_time
distance = (time_elapsed * 34300) / 2
return distance
# 运行示例
try:
while True:
dist = distance()
print(f\"Measured Distance = {dist:.1f} cm\")
time.sleep(1)
except KeyboardInterrupt:
print(\"Measurement stopped by User\")
GPIO.cleanup()
在此代码中,通过超声波发射和接收的时间差,计算出与目标的距离。此示例基于树莓派的GPIO模块编写,非常适合初学者了解超声波测距的原理与实现。