uPyCraft-micropython教程之控制串口超声波

2017-07-071.2万
AI 快速预览详细 收起
本文介绍了如何使用FireBeetle-ESP32和URM07-UART模块,通过micropython实现超声波测距。首先需要将urm07.py文件从uPy_Lib拖动到device/lib中,然后打开urm07Demo.py示例代码。连接硬件时,URM07的RX接IO26/D3,TX接IO25/D2,GNC接GND,VCC接3V3。运行代码后,可以测量距离并显示温度。通过这种方式,可以轻松实现小车的避障功能。
如果要开发一个小车,超声波测距肯定是必须的,调速,转向,避障之类的都要依赖于它。micropython是否可以驱动串口超声波模块呢,pyboard和esp32都可以实现这个功能。网上有很多超声波模块,基本上都是双探头的,体积太大,做个mini小车会太占空间。嘿嘿,还是用单探头的超声波吧,就是这货,是不是很小巧。顺便附一个链接地址https://www.dfrobot.com.cn/goods.php?id=1391#

uPyCraft-micropython教程之控制串口超声波图1



准备工作

硬件平台    FireBeetle-ESP32 x1
超声波模块   URM07-UART模块 x1
软件平台     uPyCraft0.21

开始干活
第一步:串口连接FireBeetle-ESP32主板,将urm07.py 从uPy_Lib中拖动到device/lib中(如果您的uPy_Lib库中没有urm07.py,请更新examples或者从附件中下载,拖动上传)
uPyCraft-micropython教程之控制串口超声波图2


第二步: 打开 File->Examples->Measure->urm07Demo.py(如果您的examples中没有urm07Demo.py,请更新examples或者从附件中下载,拖动上传)
uPyCraft-micropython教程之控制串口超声波图3


urm07Demo.py的代码是这样的
[mw_shl_code=python,true]#hardware platform: FireBeetle-ESP32

from machine import UART
import urm07
import time

u2 = UART(2,baudrate=19200,rx=25,tx=26,timeout=10)
time.sleep(1)

urm = urm07.URM07(u2,interval=200)
#urm.setDeviceAddr(0x11)
#urm.setBaudRate(urm07.BAUDRATE19200)
while True:
  distance = urm.getDistance()
  if(distance == 65535):
    print("measure distance failure!!!")
  else:
    print("distance=%d mm"%distance)
  print("temp=%3.1f C"%(urm.getTemperature()/10))
  [/mw_shl_code]


第三部:连接硬件

URM07           FireBeetle-ESP32
RX           连接到      IO26/D3
TX           连接到      IO25/D2
GNC        连接到     GND
VCC         连接到     3V3
连接后效果如下图
uPyCraft-micropython教程之控制串口超声波图4


下载并运行urm07Demo.py,执行效果如图
uPyCraft-micropython教程之控制串口超声波图5

我测量的桌面到房顶的距离,221cm左右,当前温度 28.0 摄氏度

终于搞通了,顺便说下,esp32的uart可以映射到任何引脚,您可以根据自己实际引脚使用情况来调节。

urm07.zip

1.14 KB, 下载次数: 6085

创作许可协议

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

评论(1)
野驴先生
野驴先生
请问这个串口引脚映射应该怎么映射
秦皇岛岛主
秦皇岛岛主
作者
回复野驴先生
,rx=25,tx=26
RX 影射到了IO25
TX 影射到了IO26
- 没有更多了 -