9475浏览
查看: 9475|回复: 2

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

[复制链接]
如果要开发一个小车,超声波测距肯定是必须的,调速,转向,避障之类的都要依赖于它。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, 下载次数: 3443

野驴先生  学徒

发表于 2017-9-7 21:20:19

请问这个串口引脚映射应该怎么映射
回复

使用道具 举报

秦皇岛岛主  初级技师
 楼主|

发表于 2017-9-8 10:45:03

野驴先生 发表于 2017-9-7 21:20
请问这个串口引脚映射应该怎么映射

,rx=25,tx=26

RX 影射到了IO25
TX 影射到了IO26
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail