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

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

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


一、超声测距传感器


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

image.png



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


image.png


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


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


image.png


对于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)


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

image.png

目录
相关文章
|
传感器 安全
红外雨量计(光学雨量传感器)在船舶航行中的应用
红外雨量计是一种能够测量降雨量的仪器,其原理是通过红外线感应雨滴的存在,从而计算出降雨量。在船舶航行中,红外雨量计可以被用于以下情况:
红外雨量计(光学雨量传感器)在船舶航行中的应用
|
存储 人工智能 API
红外热成像仪测温模块开发资料准备
MLX90640 有两个型号, A 型和 B 型,各拍了一个,在等待物流的过程中索性先做些准备工作,也科普一下红外成像是怎么回事。
红外热成像仪测温模块开发资料准备
|
传感器 数据采集
河北稳控科技便携式钻孔测斜仪的组成与测量原理
便携式钻孔测斜仪由测斜探头、多功能数据采集仪组成。 测斜探头组成:探头包括吊环、传感段、导向段、加长段、尾段五部分组成
河北稳控科技便携式钻孔测斜仪的组成与测量原理
|
机器学习/深度学习 人工智能 安全
CVPR 2023 | 一块隔热片即可实现红外场景下的物理攻击,北航提出针对红外行人检测器的漏洞挖掘技术
CVPR 2023 | 一块隔热片即可实现红外场景下的物理攻击,北航提出针对红外行人检测器的漏洞挖掘技术
195 0
|
传感器 数据采集 编解码
电子设计大赛-室内可见光定位装置
电子设计大赛-室内可见光定位装置
238 1
电子设计大赛-室内可见光定位装置
|
传感器
红外热成像仪测温传感器模块开发笔记
什么是红外成像伪彩编码 红外成像的最终目的是用图像来表现温度变化,并且可以通过颜色来区分出不同热量的物体轮廓和形状。那么,到底用什么颜色来表示什么温度呢?是否有什么标准规范呢?
|
传感器 存储 编解码
MLX90640 红外热成像仪测温传感器模块开发笔记(七)
Red Eye Camera(以下简称“IDF-x” 或“设备” )是基于红外阵列高精度温度传感器以及先进软件算法的非接触式热成像仪器,可对视场范围内任何物体进行红外成像,成像分辨率512*384 像素,温度灵敏度 0.1℃,绝对精度±1.5℃,刷新频率最高 64Hz。自带存储和实时时钟,具备数据实时输出显示、拍照存储功能,数字接口包括 UART 和 USB,可直接连接计算机和 Android 手机,配合上位机软件或者手机 APP 程序,使用十分方便。
MLX90640 红外热成像仪测温传感器模块开发笔记(七)
河北稳控科技MLX90640 红外热成像仪测温模块开发笔记(四)
如前“开发笔记(一)”所说,MLX90640 可能存在不超过 4 个像素的损坏或者不良像素,在温度计算过程完成后,这些不良像素点会得到错误的温度数据,对于处理这些不良数据 MLX 也给出了推荐方法和具体的函数。(其实就是找相邻的正常的温度数据取平均来代替不良数据)
河北稳控科技MLX90640 红外热成像仪测温模块开发笔记(四)
GoogleEarthEnging—可见光红外成像辐射套件(VIIRS)每日表面反射率(VNP09GA)产品提供了来自Suomi国家极地轨道合作伙伴(S-NPP)VIIRS传感器的土地表面反射率估计。
GoogleEarthEnging—可见光红外成像辐射套件(VIIRS)每日表面反射率(VNP09GA)产品提供了来自Suomi国家极地轨道合作伙伴(S-NPP)VIIRS传感器的土地表面反射率估计。
214 0
GoogleEarthEnging—可见光红外成像辐射套件(VIIRS)每日表面反射率(VNP09GA)产品提供了来自Suomi国家极地轨道合作伙伴(S-NPP)VIIRS传感器的土地表面反射率估计。
|
机器学习/深度学习 图形学 iOS开发
SIGGRAPH 2021 | 98后浙大博士生研制可微分材质扫描仪,轻松采集「流光溢彩」效果
来自浙江大学计算机辅助设计与图形学国家重点实验室和杭州相芯科技有限公司的联合研究团队提出了自由式材质扫描的可微分框架,并研制了材质外观扫描仪原型,实现了对非平面的复杂外观的高精度采集建模,研究论文已被 ACM SIGGRAPH 2021 接收。
223 0
SIGGRAPH 2021 | 98后浙大博士生研制可微分材质扫描仪,轻松采集「流光溢彩」效果