超声波传感器是机器人创客中最常见的传感器之一,有了超声波传感器,就可以实现许多无接触式的控制效果,下面,就让鲸鱼叔叔给同学们介绍一下超声波传感器的原理和用法吧!

0

1原理   超声波本质上和声波(就是我们平常听到的声音)没有什么不同,因为人耳最大能够听到的声音频率是20000Hz,所以我们把超过20000Hz的声音称为超声波。如果统治地球的不是人类而是海豚的话,大概超声波的频率会更高

超声波传感器 python 超声波传感器原理_引脚


  以最常见的双头超声波传感器HC-SR04为例(下图):

超声波传感器 python 超声波传感器原理_引脚_02

  两个圆圆的像眼睛

超声波传感器 python 超声波传感器原理_二阶声波正演c语言程序_03

的部分就是超声波头,一个负责发出超声波,一个负责接收超声波。发射头发出的超声波遇到障碍物后就会反射回来,被接收头接收到。发射的时间和接收到的时间的差值×超声波的传播速度,就可以计算出障碍物和我们的距离啦!是不是很简单呢?(同学们郊游的时候在山里对着山谷大喊会听到回声,就是这个原理)。

  超声波(声音)在空气中的传播速度和温度相关,15℃时约为340米/秒,为简化起见,我们就用340米/秒来进行计算。

超声波传感器 python 超声波传感器原理_超声波传感器 python_04

超声波测距原理图

0 2用法

  市场上常用的超声波传感器主要有两种,最常见的是四引脚的,四个引脚分别代表电源(Vcc)、接地(Gnd)、发射(Trig)、接收(Echo),上面介绍的HC-SR04就是四引脚超声波传感器。

  以连接micro:bit为例,将超声波传感器的Trig接micro:bit的P1引脚,Echo接P2引脚,计算距离的程序如下:

超声波传感器 python 超声波传感器原理_超声波传感器_05

  引脚P1数字写入1(高电平)10毫秒引发超声波传感器发出一个方波,这个方波遇到障碍物返回后,被超声波传感器的接收头接收到并引发引脚P2获得一个持续时间的高脉冲。

超声波传感器 python 超声波传感器原理_二阶声波正演c语言程序_06

这个语句返回超声波在空气中传播的时间

返回的超声波传播时间单位是微秒(百万分之一秒),我们把这个值÷1000000 × 340 ÷ 100 得到超声波的传播距离(单位厘米),因为这个距离是往返的距离,因此还要再÷2,上面的计算结果是0.017,所以我们用

超声波传感器 python 超声波传感器原理_引脚_07

来计算出障碍物和超声波传感器之间的距离,有时候我们用时间÷58来进行计算,结果是一样的(0.017和58互为倒数)。

  下面贴一个网上的ardunio的C语言例子程序,可以看到写法基本一样:

超声波传感器 python 超声波传感器原理_超声波传感器_08

  还有一种是三引脚的超声波传感器,这种传感器是把发射和接收集成到一个引脚,使用方法和四引脚一样,只是在编程时把发射和接收设置为一个端口就可以了。

  在makecode中,硬件厂商制作了很多方便易用的超声波扩展积木,例如sonar扩展:

超声波传感器 python 超声波传感器原理_引脚_09

sonar(声纳)

  扩展的用法就非常简单了:

超声波传感器 python 超声波传感器原理_引脚_10

设置端口和单位,直接返回!

  不过,鲸鱼叔叔还是建议使用前面自己设置和计算的编程方法,因为我们学习机器人编程的目的是学习其中的原理,而不是单纯获得结果。

0 3应用场景

  超声波传感器使用简单,价格便宜,可以应用到很多地方。例如我们倒车时使用的倒车雷达,就是一个超声波传感器,帮助我们判断车辆后方的距离,非常实用。

超声波传感器 python 超声波传感器原理_引脚_11

  在机器人创作中,因为我们使用的超声波传感器精度不高,又会受到外界温度和干扰的影响,通常不用于测量距离,而是用于判断是否有障碍物。例如制作一个迎宾机器人,当有人站在机器人面前时,就说出欢迎的话,就是利用超声波传感器来进行判断。

  同学们不要小看超声波传感器,通过波传递的时间来判断距离的方法,在军事、地震、物探、医学等领域有非常广泛的应用。同学们学习了超声波传感器的用法,今后在学习更深入的相关物理知识的时候就很容易理解啦!

  关于超声波传感器就讲到这吧,同学们有任何问题,可以留言我们一起探讨!