超声波传感器 - 从零开始认识各种传感器【第十九期】

超声波传感器|从零开始认识各种传感器

1、什么是超声波传感器 

超声波传感器是一种利用超声波来进行距离测量和目标检测的传感器。它通过发送,超声波脉冲,并测量超声波从传感器发射到目标物体并返回的时间来计算目标物体与传感器之间的距离。

图片

超声波传感器广泛应用在工业、国防、生物医学等方面。日常生活中最普遍接触到的有医学B超,智能泊车辅助等;在生物界也有蝙蝠,海豚等动物天然会利用超声波进行目标定位。

2、超声波传感器是如何工作的 

与红外线以及可见光传感器的工作原理类似,超声波传感器也是通过发射超声波,遇到被测物体反射后,通过接收到的超声波来测量距离以及识别、区分和测量物体。

图片

不同于光波,微波,或者红外线等电磁波,超声波是振动频率高于20kHz的机械波。一般的应用是从50kHz延申到5MHz,由于20kHz是人类能听到的声音的频率的上限,所以它被称为超声波。

超声波属于声波,具有方向性好、可定向传播等特点。其对于液体、固体的穿透性也很好。我们知道,声波在空气介质中的传播速度一般为340米每秒,它遇到活动物体能产生多普勒效应,也就是被测物体的相对运动,会导致反射波频率的增大或者减小,使得超声波传感器对于活动物体的检测非常灵敏。

超声波的测量原理是:超声波发射器发出超声波脉冲,经过介质(空气)传播到障碍物表面后反射,然后到达接收器。通过测量超声波从发射到接收所需的时间,并结合介质中的声速,可以计算出探头到障碍物表面之间的距离。

图片

3、常见的超声波传感器的种类 

超声波传感器的种类繁多,根据检测模式可分为收发一体型、收发分体型两种。

根据结构来分类可分为防水型(典型应用是汽车泊车辅助),高频型、开放型。其中开放型具有检测多普勒效应的能力。

根据材料分类可分为压电式(电致伸缩式)和磁致伸缩式;根据使用环境还可分为气体中的超声波传感器和液体中的超声波传感器。

压电式超声波发生器是利用逆压电效应的原理将高频电振动转换成高频机械振动,从而产生超声波。压电式超声波接收器的结构和超声波发生器基本相同,它利用正压电效应原理进行工作。

磁致伸缩式超声波发生器是把铁磁材料置于交变磁场中,磁场使它产生机械尺寸的交替变化即机械振动,从而产生出超声波。

4、超声波传感器的优点和缺点 

在选择超声波传感器时,要注意具体的测量环境和应用场景。一般来说,它适合于较长距离的高精度测量,由于它的穿透性好,尤其适合对于玻璃和水的检测。

5、超声波传感器实验演示 

我们来演示使用 MCU 读取显示超声波传感器的数据。实验中使用的是一款收发分体式超声波传感器。我们将手掌慢慢接近传感器,可以看到屏幕中显示的距离数值慢慢减小,距离示意圆圈也跟着慢慢缩小,然后随着手掌离开传感器,显示距离也随之开始增大。

主函数:

from machine import UART,Pin,Timer,PWM,SPI,time_pulse_us,freq
import _thread
from time import sleep_us,ticks_us,sleep
import uos
import test.st7789 as st7789
from test.fonts import vga2_8x8 as font1
from test.fonts import vga1_16x32 as font2
import random
import  math,array
import struct
global directionfreq(180_000_000)trig = Pin(20, Pin.OUT, Pin.PULL_UP)
echo = Pin(21, Pin.IN)
st7789_res = 0
st7789_dc  = 1
disp_width = 240
disp_height = 240
CENTER_Y = int(disp_width/2)
CENTER_X = int(disp_height/2)
spi_sck=Pin(2)
spi_tx=Pin(3)
spi0=SPI(0,baudrate=60000000, phase=1, polarity=1, sck=spi_sck, mosi=spi_tx)display = st7789.ST7789(spi0, disp_width, disp_width,reset=machine.Pin(st7789_res, machine.Pin.OUT),dc=machine.Pin(st7789_dc, machine.Pin.OUT),xstart=0, ystart=0, rotation=0)
display.fill(st7789.BLACK)def get_distance():# 发送10us的高电平脉冲来触发超声波传感器trigger_pin.on()time.sleep_us(10)trigger_pin.off()# 计算回波的时间duration = time_pulse_us(echo_pin, 1, 30000)  # 等待最长30ms# 将回波时间转换为距离(单位:厘米)distance = duration / 58  # 根据声波在空气中传播的速度计算距离return distancedef getlang():distance=0trig.value(1)sleep_us(20)trig.value(0)while echo.value() == 0:passif echo.value() == 1:ts=ticks_us()                   #开始时间while echo.value() == 1:        #等待脉冲高电平结束passte=ticks_us()                   #结束时间tc=te-ts                        #回响时间(单位us)distance=(tc*170)/10000       #距离计算(单位为:m)return distance
def light_dot(x,y,color):display.pixel(x,y,color)def draw_circle(x,y,r,color,fill=0):'''绘制圆形:param x,y  圆心坐标:param r  圆心半径:param fill 0 不填充  1 填充'''angleList = [0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.7853981633974483, 0.8, 0.85, 0.9, 0.95, 1.0, 1.05, 1.1, 1.15, 1.2, 1.25, 1.3, 1.35, 1.4, 1.45, 1.5, 1.55, 1.5707963267948966, 1.6, 1.65, 1.7, 1.75, 1.8, 1.85, 1.9, 1.95, 2.0, 2.05, 2.1, 2.15, 2.2, 2.25, 2.3, 2.35, 2.356194490192345, 2.4, 2.45, 2.5, 2.55, 2.6, 2.65, 2.7, 2.75, 2.8, 2.85, 2.9, 2.95, 3.0, 3.05, 3.1, 3.141592653589793, 3.15, 3.2, 3.25, 3.3, 3.35, 3.4, 3.45, 3.5, 3.55, 3.6, 3.65, 3.7, 3.75, 3.8, 3.85, 3.9, 3.9269908169872414, 3.95, 4.0, 4.05, 4.1, 4.15, 4.2, 4.25, 4.3, 4.35, 4.4, 4.45, 4.5, 4.55, 4.6, 4.65, 4.7, 4.71238898038469, 4.75, 4.8, 4.85, 4.9, 4.95, 5.0, 5.05, 5.1, 5.15, 5.2, 5.25, 5.3, 5.35, 5.4, 5.45, 5.497787143782138, 5.5, 5.55, 5.6, 5.65, 5.7, 5.75, 5.8, 5.85, 5.9, 5.95, 6.0, 6.05, 6.1, 6.15, 6.2, 6.25, 6.283185307179586];for i in angleList:light_dot(x+round(math.sin(i)*r),y+round(math.cos(i)*r),color)if fill:powR = math.pow(r,2)for xx in range(x-r,x+r):for yy in range(y-r,y+r):if ( (math.pow(xx-x,2)+math.pow(yy-y,2)) < powR):light_dot(xx,yy,color)current_r = 0
turn = 0
while True:distance = getlang()if distance <25 :dis = "Dis: {} ".format(distance)display.text(font2, str(dis), 0, 0)display.text(font2, "cm", 190, 0)print(dis)turn += 1current_r = int(distance*5 )for i in range (current_r,current_r+3) :draw_circle(120,120,i,st7789.BLUE+0x10*current_r*turn,fill=0)if turn == 50 :turn = 0

其他文件可点此查看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3279798.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

echarts无数据的展示内容,用graphic属性配置

echarts无数据的展示内容&#xff0c;用graphic属性配置 当echarts无数据的时候&#xff0c;图表展示的是个空白部分&#xff0c;感觉会有点丑&#xff0c;影响页面美观&#xff0c;这时候翻阅了echarts的官网&#xff0c;让我找到个配置项&#xff0c;试试发现还可以&#xf…

Notion支持直接绑定自己的域名,有何工具可替代为公开网站自定义域名?

Notion最近大招频出&#xff0c;推出新功能——自定义域名。只需简单几步&#xff0c;xxx.notion.site秒变你的专属域名&#xff08;月费仅需10美金&#xff09;。推特上的独立内容创作者/初创公司&#xff0c;用它来打造品牌、分享资料模板&#xff0c;甚至实现盈利。 Notion的…

你还在为PDF转Word烦恼?试试这四款免费工具吧!

悄咪咪问一句&#xff0c;大家在平时上班时最头疼的事情有哪些&#xff1f;我想会有很多朋友也有pdf如何在线转换word文档的免费方式&#xff0c;毕竟这些办公文档是非常常见的问题了&#xff0c;所以今天就专门准备这么一篇文章来分享我个人喜欢的四款好用工具&#xff1a; 第…

做知识付费项目还能做吗?知识付费副业项目如何做?能挣多少钱?

hello,我是阿磊&#xff0c;一个20年的码农&#xff0c;6年前代码写不动了&#xff0c;转型专职做副业项目研究&#xff0c;为劳苦大众深度挖掘互联网副业项目&#xff0c;共同富裕。 现在做知识付费项目还能做吗&#xff1f; 互联网虚拟资源项目我一直在做&#xff0c;做了有…

【单片机毕业设计选题24088】-基于STM32的智能家居控制系统

系统功能: 系统操作说明&#xff1a; 上电后OLED显示 “欢迎使用智能家居系统请稍后”&#xff0c;两秒后显示Connecting...表示 正在连接阿里云&#xff0c;正常连接阿里云后显示第一页面&#xff0c;如长时间显示Connecting...请 检查WiFi网络是否正确。 第一页面第一行…

使用runlink通过容器打印出容器的启动命令

1、Runlike简介 Runlike:通过容器打印出容器的启动命令&#xff0c;然后发现自己需要手动重新运行一些容器的人来说&#xff0c;这是一个真正的节省时间。 2、Docker镜像安装 2.1 构建Runlike容器 [rootlocalhost ~]# docker run --rm -v /var/run/docker.sock:/var/run/do…

嵌入式Linux:符号链接(软链接)和硬链接

目录 1、符号链接&#xff08;软链接&#xff09; 2、硬链接 3、link()函数 4、symlink()函数 5、readlink()函数 在 Linux 系统中&#xff0c;符号链接&#xff08;软链接&#xff09;和硬链接是两种创建文件链接的方法。理解它们的区别和使用场景对于文件系统的管理非常…

Spring核心机制Ioc和Aop

Spring全家桶 WEB&#xff1a;SpringMvc、Spring Web Flux 持久层&#xff1a;Spring Data、Spring Data Redis、Spring Data MongoDB 安全校验&#xff1a;spring Security 构建工程脚手架&#xff1a;SpringBoot 微服务&#xff1a;SpringCloud 所有的Spring框架集成&#xf…

轻松入门Linux—CentOS,直接拿捏 —/— <1>

一、什么是Linux Linux是一个开源的操作系统&#xff0c;目前是市面上占有率极高的服务器操作系统&#xff0c;目前其分支有很多。是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统 Linux能运行主要的UNIX工具软件、应用程序和网络协议 Linux支持 32…

每日OJ_牛客CM26 二进制插入

目录 牛客CM26 二进制插入 解析代码 牛客CM26 二进制插入 二进制插入_牛客题霸_牛客网 解析代码 m:1024&#xff1a;100000000 00 n:19 &#xff1a; 10011 要把n的二进制值插入m的第j位到第i位&#xff0c;只需要把n先左移j位&#xff0c;然后再进行或运算&#xff08;|&am…

ctfshow 权限维持 web670--web679

web670 <?php// 题目说明&#xff1a; // 想办法维持权限&#xff0c;确定无误后提交check&#xff0c;通过check后&#xff0c;才会生成flag&#xff0c;此前flag不存在error_reporting(0); highlight_file(__FILE__);$a$_GET[action];switch($a){case cmd:eval($_POST[c…

OCC BRepOffsetAPI_ThruSections使用

目录 一、BRepOffsetAPI_ThruSections简介 二、功能与特点 三、应用场景 四、示例 一、BRepOffsetAPI_ThruSections简介 在Open CASCADE Technology (OCCT) 中,BRepOffsetAPI_ThruSections 类是用来通过放样生成一个实体或者一个面壳(Shell)。当使用这个类时,isSolid 参…

【环境搭建问题】linux服务器安装conda并创建虚拟环境

1.检查有没有conda 首先看root文件夹下有没有anaconda或者conda 没有的话就要先下载安装conda&#xff1a; https://repo.anaconda.com/archive/index.html 在这个链接下找自己需要的。服务器一般为linux&#xff0c;所以我这里选择的是&#xff1a; 2.安装conda 下载安装…

Electron学习笔记(二)Hello World

目录 前言 运行主进程 创建界面 使用窗口打开界面 管理窗口的生命周期 关闭所有窗口时退出应用 (Windows & Linux)​ 如果没有窗口打开则打开一个窗口 (macOS) 使用预加载脚本访问渲染器的Node.js 添加你自己的功能 完整代码展示 效果展示 前言 接上一篇文章 …

LINUX进程间的通信(IPC)--信号

一、概念 信号通信&#xff0c;其实就是内核向用户空间进程发送信号&#xff0c;只有内核才能发信号&#xff0c;用户空间进程不能发送信号。信号已经是存在内核中的了&#xff0c;不需要用户自己创建。 信号通信的框架 * 信号的发送&#xff08;发送信号进程&#xff09;&am…

JS图形引擎汇总

1、leaferjs leaferjs绚丽多彩的 HTML5 Canvas 2D 图形渲染引擎&#xff0c;可结合 AI 绘图、生成界面。 提供了丰富的 UI 绘图元素&#xff0c;和开箱即用的功能&#xff0c;如自动布局、图形编辑、SVG 导出&#xff0c;方便与 Figma、Sketch 等产品进行数据交换。并为跨平台…

示波器选择导出至USB闪存盘的三种格式(bmp、set、csv)

如下图所示&#xff0c;一般由示波器导出至U盘中&#xff0c;一共有三种文件格式。 1、当前屏幕图像(*.bmp) BMP 文件格式&#xff08;全称是位图文件格式&#xff0c;Bitmap Image File&#xff09;是一种图像文件格式&#xff0c;用于存储数字图像。它是一种无损图像格式&am…

m3u8转MP4(网页视频下载)(超细教程, 有手就行)

准备工作 什么是m3u8文件 记事本打开m3u8文件&#xff1a; #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:4 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-KEY:METHODAES-128,URI"https://xxxx/key.key" #EXTINF:3.336667, #EXTINF:1.668333, clvHz13123499.ts #EXTINF:2.03…

【uniapp离线打包】(基于Android studio)

文章目录 uniapp打包官方教程入口一、准备工作(工具三大件)二、准备工作&#xff08;Android壳和uniapp包&#xff09;导入Android壳生成uniapp包将uniapp包导入android壳 三、准备工作&#xff08;证书、&#xff09;准备Android平台离线签名证书 四、修改配置参数build.gradl…

AI为什么无法替代律师?

AI能否真正取代律师&#xff1f;一探究竟&#xff01; ©作者|LuMiQ 来源|神州问学 引言 数字化时代&#xff0c;AI技术正如催化剂般加速各行业的变革&#xff1a;在医疗界&#xff0c;它犹如医生的“第二双眼睛”&#xff0c;精准分析影像&#xff1b;制造业里&#xff…