KIKI 发表于 2020-9-16 10:00:00

uPyCraft中的Examples Measure urm07Demo.py 4.2.3


# 超声波测距
## 准备
### 硬件:

- FireBeetle-EPS32 × 1
- URM07-UART单探头超低功耗超声波测距传感器 × 1([点击查看](https://wiki.dfrobot.com.cn/_SKU_SEN0153_URM07-UART%E5%8D%95%E6%8E%A2%E5%A4%B4%E8%B6%85%E4%BD%8E%E5%8A%9F%E8%80%97%E8%B6%85%E5%A3%B0%E6%B3%A2%E6%B5%8B%E8%B7%9D%E4%BC%A0%E6%84%9F%E5%99%A8)模块详情)
[点击购买](https://www.dfrobot.com.cn/goods-1391.html)
- SD卡 × 1

### 软件:

- uPyCraft IDE

### 代码位置:

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

## 实验步骤
1. 硬件连接如下图所示



2. 将uPy_lib目录下的 urm07.py 文件拖动到device目录下,如下图



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

```
#硬件平台:FireBeetle-ESP32
#实验效果:这个实验用于20-750cm距离测量和温度测量。
#硬件连接:本实验需要外接一个'URM07'声波测距传感器,通过串口通讯,IO25(RX)、IO26(TX)。
#下面的信息显示,对于当前版本,urm07Demo是可用的。
# IO0   IO2IO4IO5IO9IO10IO25
# IO26IO39 IO12~19IO21~23IO34~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倍的温度(℃)并显示
```
## 实验效果


## urm07.py库API说明

### 类 — URM07
- class URM07(uart, addr=0x11, interval=200)

`uart:创建的UART对象`

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

`newAddr:新的设备地址`
- setBaudRate(baudrate) 函数功能:设置波特率。

`baudrate:波特率`

山语 发表于 2021-2-15 19:35:30

请问那个    urm07.py文件您有吗?
页: [1]
查看完整版本: uPyCraft中的Examples Measure urm07Demo.py 4.2.3