一起玩转树莓派(14)——超声测距

简介: 当今,汽车行业的发展可谓是日新月异。智能汽车的概念也越来越火热。自动驾驶也将得到越来越广泛的应用。不知你有没有想过,平时我们在人工驾驶汽车时,主要使用的是视觉来感知距离,对于人工智能来说,它是如何通过感知距离来获取周围环境信息的呢?这就需要使用到相关的测距传感器。

一起玩转树莓派(14)——超声测距

当今,汽车行业的发展可谓是日新月异。智能汽车的概念也越来越火热。自动驾驶也将得到越来越广泛的应用。不知你有没有想过,平时我们在人工驾驶汽车时,主要使用的是视觉来感知距离,对于人工智能来说,它是如何通过感知距离来获取周围环境信息的呢?这就需要使用到相关的测距传感器。

一、超声测距传感器

我们知道,超声波频率高,相对于普通声波,其能量消耗慢,传播距离远且指向性很强。十分适合用来进行距离的测量。本次实验,我们使用HC-SR04超声测距模块来进行距离测量。元件如下图所示:

如上图所示,HC-SR04模块有一个超声发生器(T端)和一个超声收集器(R端)以及4个引脚。在网上很容易购买到此模块,其价格低廉,精准度高,使用简单,性价比非常高。HC-SR04硬件原理图如下:

模块内部电路结构虽然看上去非常复杂,但是我们使用它来测距并不需要了解其内部完整的工作原理,要进行距离的测定,离不开公式_s = v * t_。如果要计算出距离s,需要得知速度v和时间t,声波的速度v是一定的,我们可以取340m/s,时间t就是HC-SR04模块能够帮助我们得到的。

超声测距的核心原理是通过发生源发出超声波,当超声波遇到障碍时会被反射,反射的超声波可以被感知源感知到,从声波发出到被感知到这之间的时间就是超声波从模块到障碍物间传递一次来回所使用的时间。如下图所示:

对于HC-SR04模块,其Trig引脚是触发引脚,向其发10us以上的高电平即可触发发送超声波指令,HC-SR04模块会自动发送8个40kHz的方波,当发送完成后,Echo引脚会输出高电平,当收到反射回来的声波后,Echo会重新变回低电平。因此,在使用HC-SR04模块时,我们只需要通过向Trig引脚加高电平触发测量指令,之后监听Echo引脚高电平的持续时间,即可完成测距工作。

二、连线与编码

我们选择BCM编码下的GPIO17来控制超声发生Trig引脚,使用GPIO18来获取Echo引脚的电平。连线如下:

HC-SR04模块 树莓派
VCC +5V电源
GND GND
Trig GPIO17(BCM编码)
Echo CGIO18(BCM编码)

编写如下代码:

#coding:utf-8

import RPi.GPIO as GPIO
import time

# 触发声波引脚
trig = 11
# 监听信号
echo = 12

def getDistance():
    # 输出高电平
    GPIO.output(trig, GPIO.HIGH)
    # 持续15us高电平 触发超声波
    time.sleep(0.000015) 
    # 停止加高电平
    GPIO.output(trig, GPIO.LOW)

    # 开始检测信号引脚的电平为高电平时开始计时
    while GPIO.input(echo) == 0:
        pass
    t1 = time.time()
    # 信号引脚的电平为低电平时计算时间间隔
    while GPIO.input(echo) == 1:
        pass
    t2 = time.time()
    # 计算距离
    s = (t2 - t1)*340/2
    return s

GPIO.setmode(GPIO.BOARD)
GPIO.setup(trig, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(echo, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

while True:
    s = getDistance()
    print("当前距离前方障碍物:%fm"%(s))
    time.sleep(1)

在树莓派中运行上面代码,即可实现超声波测距,效果如下图:

专注技术,懂的热爱,愿意分享,做个朋友
目录
相关文章
|
23天前
|
安全
光学雨量计原理及其在城市雨水管理中的应用
光学雨量计原理及其在城市雨水管理中的应用
光学雨量计原理及其在城市雨水管理中的应用
|
10月前
|
传感器
红外雨量计(光学雨量传感器)安装注意要点
红外雨量计是一种用来测量降雨量的设备,它采用了先进的红外线技术,可以非常精确地测量降雨量,并可自动记录数据。在红外雨量计的安装过程中,需要注意以下要点:
红外雨量计(光学雨量传感器)安装注意要点
|
11月前
|
传感器 安全
红外雨量计(光学雨量传感器)在船舶航行中的应用
红外雨量计是一种能够测量降雨量的仪器,其原理是通过红外线感应雨滴的存在,从而计算出降雨量。在船舶航行中,红外雨量计可以被用于以下情况:
红外雨量计(光学雨量传感器)在船舶航行中的应用
|
12月前
|
机器学习/深度学习 人工智能 安全
CVPR 2023 | 一块隔热片即可实现红外场景下的物理攻击,北航提出针对红外行人检测器的漏洞挖掘技术
CVPR 2023 | 一块隔热片即可实现红外场景下的物理攻击,北航提出针对红外行人检测器的漏洞挖掘技术
125 0
|
传感器
红外热成像仪测温传感器模块开发笔记
什么是红外成像伪彩编码 红外成像的最终目的是用图像来表现温度变化,并且可以通过颜色来区分出不同热量的物体轮廓和形状。那么,到底用什么颜色来表示什么温度呢?是否有什么标准规范呢?
|
传感器 数据采集
河北稳控科技便携式钻孔测斜仪的组成与测量原理
便携式钻孔测斜仪由测斜探头、多功能数据采集仪组成。 测斜探头组成:探头包括吊环、传感段、导向段、加长段、尾段五部分组成
河北稳控科技便携式钻孔测斜仪的组成与测量原理
|
传感器 数据采集 编解码
电子设计大赛-室内可见光定位装置
电子设计大赛-室内可见光定位装置
180 1
电子设计大赛-室内可见光定位装置
|
传感器 存储 编解码
MLX90640 红外热成像仪测温传感器模块开发笔记(九)
MLX90640 红外热成像仪 Red Eye Camera(以下简称“IDF-x” 或“设备” )是基于红外阵列高精度温度传感器以及先进软件算法的非接触式热成像仪器,可对视场范围内任何物体进行红外成像,成像分辨率512*384 像素,温度灵敏度 0.1℃,绝对精度±1.5℃,刷新频率最高 64Hz。自带存储和实时时钟,具备数据实时输出显示、拍照存储功能,数字接口包括 UART 和 USB,可直接连接计算机和 Android 手机,配合上位机软件或者手机 APP 程序,使用十分方便。
MLX90640 红外热成像仪测温传感器模块开发笔记(九)
|
传感器
MLX90640 红外热成像仪测温传感器模块开发笔记(六)
红外成像的最终目的是用图像来表现温度变化,并且可以通过颜色来区分出不同热量的物体轮廓和形状。那么,到底用什么颜色来表示什么温度呢?是否有什么标准规范呢?
MLX90640 红外热成像仪测温传感器模块开发笔记(六)
|
传感器 存储 编解码
MLX90640 红外热成像仪测温传感器模块开发笔记(七)
Red Eye Camera(以下简称“IDF-x” 或“设备” )是基于红外阵列高精度温度传感器以及先进软件算法的非接触式热成像仪器,可对视场范围内任何物体进行红外成像,成像分辨率512*384 像素,温度灵敏度 0.1℃,绝对精度±1.5℃,刷新频率最高 64Hz。自带存储和实时时钟,具备数据实时输出显示、拍照存储功能,数字接口包括 UART 和 USB,可直接连接计算机和 Android 手机,配合上位机软件或者手机 APP 程序,使用十分方便。
MLX90640 红外热成像仪测温传感器模块开发笔记(七)