在这个项目中,我们将HC-SR04超声波传感器模块连接到Raspberry Pi以测量距离。我们以前在树莓派上使用了超声波传感器来构建避障机器人。在继续之前,请先了解一下超声波传感器。
HC-SR04超声波传感器:
超声波传感器用于以高精度和稳定的读数来测量距离。它可以测量2厘米至400厘米或1英寸至13英尺的距离。它在空中以40KHz的频率发射超声波,如果物体挡住了物体,它将反弹回传感器。通过使用撞击对象并返回的时间,您可以计算距离。
超声波传感器使用一种称为“ ECHO”的技术。“ ECHO”只是反射的声波。当声音到达死角后会反射回去时,您将产生回音。
当我们将“ Trigger”引脚设为高电平约10us时,HCSR04模块会在超声波范围内产生声音振动,这将以音速发送一个8周期的声爆,并在撞击物体后被Echo引脚接收。根据声音振动恢复所需的时间,它会提供适当的脉冲输出。如果物体距离较远,则听到回声会花费更多时间,并且输出脉冲宽度将很大。并且如果障碍物在附近,则回声将被更快地听到并且输出脉冲宽度将更小。
我们可以根据超声波返回到传感器所花费的时间来计算物体的距离。由于声音的时间和速度是已知的,因此我们可以通过以下公式计算距离。
- 距离=(时间x空中声速(343 m / s))/ 2。
该值除以2,因为波向前和向后传播相同的距离,因此到达障碍物的时间仅为总时间的一半
因此,以厘米为单位的距离= 17150 * T
我们之前使用此超声波传感器和Arduino进行了许多有用的项目,请在下面进行检查:
- 使用超声波传感器的基于Arduino的距离测量
- 使用Arduino和超声波传感器的门警报
- 使用Arduino的基于IOT的垃圾箱监控
所需组件:
在这里,我们使用 带有Raspbian Jessie OS的Raspberry Pi 2 ModelB。前面已经讨论了所有基本的硬件和软件要求,您可以在Raspberry Pi简介和Raspberry PI LED闪烁中查找它,以开始使用,而我们还不需要:
- 带有预装操作系统的Raspberry Pi
- HC-SR04超声波传感器
- 电源(5v)
- 1KΩ电阻器(3个)
- 1000uF电容器
- 16 * 2字符液晶屏
电路说明:
下表列出了Raspberry Pi和LCD之间的连接:
LCD连接 |
Raspberry Pi连接 |
地线 |
地线 |
VCC |
+5伏 |
VEE |
地线 |
RS |
GPIO17 |
读/写 |
地线 |
英文 |
GPIO27 |
D0 |
GPIO24 |
D1 |
GPIO23 |
D2 |
GPIO18 |
D3 |
GPIO26 |
D4 |
GPIO5 |
D5 |
GPIO6 |
D6 |
GPIO13 |
D7 |
GPIO19 |
在此电路中,我们使用8位通信(D0-D7)将LCD与Raspberry Pi连接,但这不是强制性的,我们也可以使用4位通信(D4-D7),但是使用4位通信程序会有点麻烦对于初学者来说很复杂,因此只需进行8位通讯即可。在这里,我们已经将10个LCD引脚连接到Raspberry Pi,其中8个引脚是数据引脚,而2个引脚是控制引脚。
下图是将HC-SR04传感器和LCD与Raspberry Pi连接以测量距离的电路图。
如图所示,HC-SR04超声波传感器有四个引脚,
- PIN1- VCC或+ 5V
- PIN2- TRIGGER(10us发出高脉冲,告诉传感器感应距离)
- PIN3- ECHO(提供脉冲输出,其宽度表示触发后的距离)
- PIN4-接地
回波引脚提供+ 5V输出脉冲,无法直接连接到Raspberry Pi。因此,我们将使用分压器电路(使用R1和R2构建)获得+ 3.3V逻辑而不是+ 5V逻辑。
工作说明:
Raspberry Pi距离测量的完整工作如下:
1.通过向上拉动触发引脚10uS来触发传感器。
2.声波由传感器发送。收到ECHO后,传感器模块提供与距离成正比的输出。
3.我们将记录输出脉冲从LOW变为HIGH以及从HIGH变为LOW的时间。
4.我们将有开始和停止的时间。我们将使用距离方程来计算距离。
5.距离以16x2 LCD显示屏显示。
因此,我们为Raspberry Pi编写了Python程序,以执行以下功能:
1.发送触发器到传感器
2.记录传感器输出脉冲的开始和停止时间。
3.使用开始时间和停止时间计算距离。
4.在16 * 2 LCD上显示获得的结果。
完整的程序 和演示视频如下。通过注释可以很好地说明程序,如果您有任何疑问,可以在下面的注释部分中提问。