uPyCraft中的Examples Measure urm07Demo.py 4.2.3

2020-09-167447
AI 快速预览详细 收起
本文介绍了如何使用FireBeetle-ESP32和URM07-UART单探头超低功耗超声波测距传感器进行20-750cm的距离测量和温度测量。硬件清单包括FireBeetle-ESP32、URM07-UART传感器和SD卡。通过uPyCraft IDE下载并运行urm07Demo.py文件,可以实现精确的测距和温度测量。实验效果显示了具体的测距和温度数据。

超声波测距

准备

硬件:

  • FireBeetle-EPS32 × 1
  • URM07-UART单探头超低功耗超声波测距传感器 × 1(点击查看模块详情)
    点击购买
  • SD卡 × 1

软件:

  • uPyCraft IDE

代码位置:

  • File → Examples → Measure → urm07Demo.py
  • 引用模块:uPy_lib → urm07.py

实验步骤

  1. 硬件连接如下图所示
    uPyCraft中的Examples Measure urm07Demo.py 4.2.3图1

  2. 将uPy_lib目录下的 urm07.py 文件拖动到device目录下,如下图
    uPyCraft中的Examples Measure urm07Demo.py 4.2.3图2

  3. 下载运行 urm07Demo.py 文件,具体代码如下

#硬件平台:FireBeetle-ESP32
#实验效果:这个实验用于20-750cm距离测量和温度测量。
#硬件连接:本实验需要外接一个'URM07'声波测距传感器,通过串口通讯,IO25(RX)、IO26(TX)。
#下面的信息显示,对于当前版本,urm07Demo是可用的。
# IO0   IO2  IO4  IO5  IO9  IO10  IO25
# IO26  IO39 IO12~19  IO21~23  IO34~36  

from machine import UART
import urm07
import time

u2 = UART(2, baudrate=19200, rx=25, tx=26, timeout=10) #创建一个串口对象,并设置波特率、rx引脚、tx引脚,超时时间
time.sleep(1)

urm = urm07.URM07(u2, interval=200)                 #创建一个urm07对象并传入串口对象和等待urm07回复数据的时间
#urm.setDeviceAddr(0x11)
#urm.setBaudRate(urm07.BAUDRATE19200)              #设置设备波特率
while True:
  distance = urm.getDistance()                     #从urm07获取距离
  if(distance == 65535):                           #获取失败
    print("measure distance failure!!!")  
  else:                                            #获取成功
    print("distance=%d mm"%distance)
  print("temp=%3.1f C"%(urm.getTemperature()/10))  #获取放大了10倍的温度(℃)并显示

实验效果

uPyCraft中的Examples Measure urm07Demo.py 4.2.3图3

urm07.py库API说明

类 — URM07

  • class URM07(uart, addr=0x11, interval=200)

uart:创建的UART对象

类函数

  • getDistance() 函数功能:获取距离。
  • getTemperature() 函数功能:获取温度(摄氏)
  • setDeviceAddr(newAddr) 函数功能:设置传感器地址。

newAddr:新的设备地址

  • setBaudRate(baudrate) 函数功能:设置波特率。

baudrate:波特率

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
山语
山语
请问那个 urm07.py 文件您有吗?
- 没有更多了 -