Python#

1. Python简介#

Python是一种广泛使用的高级编程语言,以其简洁的语法和强大的功能受到开发者的青睐。它支持多种编程范式,包括面向对象、命令式和函数式编程。Python的强大之处在于其庞大的标准库和丰富的第三方库,使得开发者能够快速有效地构建各种应用程序。Python广泛应用于科学计算、数据分析、Web开发、人工智能等领域。由于其易于学习和使用,Python成为编程入门的理想选择,特别适合初学者和教育用途。

2. 接线图#

树莓派PICO

超声波转接模块

3.3V

V

GND

G

GPIO16

trig

GPIO17

Echo

3. 测试代码(测试软件版本:Thonny 3.3.3)#

from machine import Pin  
import utime  

# 超声波测距,单位:厘米  
def getDistance(trigger, echo):  
    # 产生10us的方波  
    trigger.low()  # 预先给出一个短的低电平,以确保一个干净的高脉冲:  
    utime.sleep_us(2)  
    trigger.high()  
    utime.sleep_us(10)  # 拉高电平後,等待10微秒后,立即设置为低电平  
    trigger.low()  

    while echo.value() == 0:  
        # 建立一个while循环检测回波引脚是否值为0,记录当时时间  
        start = utime.ticks_us()  

    while echo.value() == 1:  
        # 建立一个while循环检测回波引脚是否值为1,记录当时时间  
        end = utime.ticks_us()  

    d = (end - start) * 0.0343 / 2  # 声波行进时间 x 声速(343.2 m/s,即每微秒0.0343公分),来回距离再除以2  
    return d  

# 设置引脚  
trigger = Pin(16, Pin.OUT)  
echo = Pin(17, Pin.IN)  

# 主程序  
while True:  
    distance = getDistance(trigger, echo)  
    print("The distance is :{:.2f} cm".format(distance))  
    utime.sleep(0.1)  

4. 代码说明#

HC-SR04超声波传感器最大测试距离为3-4米,最小测试距离为2厘米。代码通过判断检测到的距离,当距离小于2厘米或大于等于400厘米时,控制显示为"-1"。在电脑的Shell中可以实时显示传感器与障碍物之间的距离,这对进行基础的自动化和机器人项目非常有用。

5. 代码运行说明#

utime.ticks_us()函数用于返回程序运行到当前的微秒数,帮助计算声波行进的时间,从而计算距离。

6. 测试结果#

运行测试代码后,用户可以在下方Shell中观察超声波传感器与前方障碍物之间的距离,单位为厘米,结果如下图所示。