首先来介绍所用的超声波测距模块。我们所用的是HC-SR04超声波测距模块,其上端一共有四个引脚(Vcc引脚接5V电源,Gnd引脚接地,Trig引脚触发控制信号输入,Echo引脚为回响信号输出)。其工作时,若提供一个 10uS 以上脉冲触发信号,该模块内部将发出 8 个 40kHz 周期电平并检测回波。一旦检测到有回波信号则输出回响信号,并且回响信号的脉冲宽度与所测的距离成正比。因此我们可以通过从发射信号到接收到回响信号的时间间隔来计算出距离。
既然了解超声波测距模块及其工作原理,我们就可以把它连接到树莓派上,这点通过其上的引脚和杜邦线很容易实现。并且树莓派上有特定的提供电源的引脚(2口)和接地引脚(6口),再随便找两个GPIO口给Trig和Echo就可以了。
之后就是在树莓派上编程了。同样我们使用的是C。程序很简单,我们只要来控制树莓派连接模块的引脚的高低电平输入输出就可以了。由模块的工作原理可以知道,一开始我们可以给Trig端提供一个不小于10uS的高电平并获得时间a,这时模块内部就会工作,接着检测Echo端的回响信号至正常,并获取时间b,则(b-a)便是回响信号的脉冲宽度。由于回响信号的脉冲宽度与所测的距离成正比,我们可以由速度距离公式以及声速得到所测量的距离。若要实现连续测量,只要将测量代码写入循环即可。