前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在全志H616核桃派开发板上实现超声波传感器测距

在全志H616核桃派开发板上实现超声波传感器测距

作者头像
阿志小管家
发布2024-05-13 08:41:30
850
发布2024-05-13 08:41:30
举报

前言

超声波传感器是一款测量距离的传感器。其原理是利用声波在遇到障碍物反射接收结合声波在空气中传播的速度计算的得出。在测量、避障小车,无人驾驶等领域都有相关应用。

实验目的

通过python编程实现超声波传感器测距。

实验讲解

下图是一款市面上常用的HCSR04超声波模块:

模块参数

供电电压

3.3V~5V (核桃派需要使用支持3.3V的)

测量距离

2cm~450cm

测量精度

0.5cm

引脚说明

VCC: 接3.3VGND: 接地Trig: 发射引脚Echo: 接收引脚

超声波传感器模块使用两个IO口分别控制超声波发送和接收,工作原理如下:

  1. 给超声波模块接入电源和地;
  2. 给脉冲触发引脚(trig)输入一个长为20us的高电平方波;
  3. 输入方波后,模块会自动发射8个40KHz的声波,与此同时回波引脚(echo)端的电平会由0变为1;(此时应该启动定时器计时)
  4. 当超声波返回被模块接收到时,回波引 脚端的电平会由1变为0;(此时应该停止定时器计数),定时器记下的这个时间即为超声波由发射到返回的总时长;
  5. 根据声音在空气中的速度为340米/秒,即可计算出所测的距离。

下面是超声波传感器HCSR04的时序触发图:

我们可以任意使用2个普通GPIO口来连接超声波传感器,这里使用 PC9连接到Trig引脚, PC11连接到Echo引脚:

HCSR04对象

在CircuitPython中可以直接使用写好的Python库来获取超声波传感器测量的距离值。具体介绍如下:

构造函数
代码语言:javascript
复制
sonar=adafruit_hcsr04.HCSR04(trigger_pin=board.PC9, echo_pin=board.PC11)

构建超声波模块对象,主要是初始化连接超声波传感器的2个引脚。

参数说明:

  • trigger_pin 开发板引脚编号。例:board.PC9;
  • echo_pin 开发板引脚编号。例:board.PC11;
使用方法
代码语言:javascript
复制
value = sonar.distance

返回测量距离值,单位cm,数据类型为float

我们构建对象后就可以一直循环获取超声波距离信息了,代码编写流程如下:

导入相关模块

构建超声波传感器对象

测量距离并打印

参考代码

代码语言:javascript
复制
'''
实验名称:HC-SR04超声波测距
实验平台:核桃派1B
'''

import time
import board
import adafruit_hcsr04

#构建超声波对象
sonar = adafruit_hcsr04.HCSR04(trigger_pin=board.PC9, echo_pin=board.PC11)

while True:
    
    try:
        print('%.2f'%(sonar.distance) + ' cm') #打印距离信息,单位cm,保留2位小数。
    except RuntimeError:
        print("Retrying!")
        
    time.sleep(0.5)

实验结果

将HC-SR04超声波传感器按下图连接到核桃派, PC9连接到Trig引脚, PC11连接到Echo引脚:

由于本例程代码依赖其它py库,所以需要将整个例程文件夹上传到核桃派:

发送成功后需要打开远程目录(核桃派)的py文件来运行,因为运行会导入文件夹里面的其它库文件,因此这类型代码在电脑本地运行是无效的。

这里使用Thonny远程核桃派运行以上Python代码,关于核桃派运行python代码方法请参考: 运行Python代码。运行成功后可以看到终端打印超声波传感器距离信息。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言​
  • 实验目的​
  • 实验讲解​
  • HCSR04对象​
    • 构造函数​
      • 使用方法​
      • 参考代码​
      • 实验结果​
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档