超声波测距是一种常见的测量距离的技术,尤其适用于物体间距的测量。下面是一个简单的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模块编写,非常适合初学者了解超声波测距的原理与实现。