超声波传感器是机器人创客中最常见的传感器之一,有了超声波传感器,就可以实现许多无接触式的控制效果,下面,就让鲸鱼叔叔给同学们介绍一下超声波传感器的原理和用法吧!
0
1原理
超声波本质上和声波(就是我们平常听到的声音)没有什么不同,因为人耳最大能够听到的声音频率是20000Hz,所以我们把超过20000Hz的声音称为超声波。如果统治地球的不是人类而是海豚的话,大概超声波的频率会更高
。
以最常见的双头超声波传感器HC-SR04为例(下图):
两个圆圆的像眼睛
的部分就是超声波头,一个负责发出超声波,一个负责接收超声波。发射头发出的超声波遇到障碍物后就会反射回来,被接收头接收到。发射的时间和接收到的时间的差值×超声波的传播速度,就可以计算出障碍物和我们的距离啦!是不是很简单呢?(同学们郊游的时候在山里对着山谷大喊会听到回声,就是这个原理)。
超声波(声音)在空气中的传播速度和温度相关,15℃时约为340米/秒,为简化起见,我们就用340米/秒来进行计算。
超声波测距原理图
0 2用法
市场上常用的超声波传感器主要有两种,最常见的是四引脚的,四个引脚分别代表电源(Vcc)、接地(Gnd)、发射(Trig)、接收(Echo),上面介绍的HC-SR04就是四引脚超声波传感器。
以连接micro:bit为例,将超声波传感器的Trig接micro:bit的P1引脚,Echo接P2引脚,计算距离的程序如下:
引脚P1数字写入1(高电平)10毫秒引发超声波传感器发出一个方波,这个方波遇到障碍物返回后,被超声波传感器的接收头接收到并引发引脚P2获得一个持续时间的高脉冲。
这个语句返回超声波在空气中传播的时间
返回的超声波传播时间单位是微秒(百万分之一秒),我们把这个值÷1000000 × 340 ÷ 100 得到超声波的传播距离(单位厘米),因为这个距离是往返的距离,因此还要再÷2,上面的计算结果是0.017,所以我们用
来计算出障碍物和超声波传感器之间的距离,有时候我们用时间÷58来进行计算,结果是一样的(0.017和58互为倒数)。
下面贴一个网上的ardunio的C语言例子程序,可以看到写法基本一样:
还有一种是三引脚的超声波传感器,这种传感器是把发射和接收集成到一个引脚,使用方法和四引脚一样,只是在编程时把发射和接收设置为一个端口就可以了。
在makecode中,硬件厂商制作了很多方便易用的超声波扩展积木,例如sonar扩展:
sonar(声纳)
扩展的用法就非常简单了:
设置端口和单位,直接返回!
不过,鲸鱼叔叔还是建议使用前面自己设置和计算的编程方法,因为我们学习机器人编程的目的是学习其中的原理,而不是单纯获得结果。
0 3应用场景
超声波传感器使用简单,价格便宜,可以应用到很多地方。例如我们倒车时使用的倒车雷达,就是一个超声波传感器,帮助我们判断车辆后方的距离,非常实用。
在机器人创作中,因为我们使用的超声波传感器精度不高,又会受到外界温度和干扰的影响,通常不用于测量距离,而是用于判断是否有障碍物。例如制作一个迎宾机器人,当有人站在机器人面前时,就说出欢迎的话,就是利用超声波传感器来进行判断。
同学们不要小看超声波传感器,通过波传递的时间来判断距离的方法,在军事、地震、物探、医学等领域有非常广泛的应用。同学们学习了超声波传感器的用法,今后在学习更深入的相关物理知识的时候就很容易理解啦!
关于超声波传感器就讲到这吧,同学们有任何问题,可以留言我们一起探讨!