Benewake(北醒) TFmini-S\TFmini Plus\TF-Luna\TF02-Pro\TF03 串口版本雷达在Raspberry Pico MicroPython上的运用

前言

本文介绍了如何将 Benewake 单点 LiDAR 与 Raspberry Pi Pico 微控制器通过MicroPython连接起来。 运用本文档前提:

最终用户手上有 Pico 微控制器和任何单点激光雷达(Luna、TFmini-Plus、mini-S、TF02-pro、TF03-UART)
LiDAR接口模式为TTL(默认标品协议)

关于Pico准备工作请参考
2021-09-15 Raspberry Pi Pico 初上手

本文档例程编译经使用Windows 10 64位系统
PICO产品介绍请参考上方链接

PICO与Benewake Lidar的硬件连接

根据 Pico 的规格,它有两个 UART 端口,这些端口可以指向可对应的引脚。 如(GP0,GP1),(GP4,GP5),(GP8,GP9),(GP12,GP13),(GP16,GP17)都适合UART通讯。 在我们的代码中,我们使用了GPIO-8和9。
需要注意的是,PICO电压供应只有一个引脚,也是3.3V,而Benewake LiDAR的额定电压是5V。 如果电压不是5V,精度会受到影响,误差会超过额定误差,在某些情况下,误差是非线性的,随着距离的增加而增加。 它可能达到40厘米。 因此建议为 LiDAR 使用单独的 5V 电源。
在这里插入图片描述

以上图片的线缆颜色并非匹配目前所有的Benewake雷达,建议接线前详细参考对应的雷达使用说明书

雷达协议说明

关于北醒雷达的协议,可以参考对应雷达的使用说明书
串口协议在这里插入图片描述
雷达输出协议解析
在这里插入图片描述

例程源码

from machine import UART, Pin
import time

uart1 = UART(1, baudrate=115200, tx=Pin(8), rx=Pin(9))    #定义雷达接收接口
uart0 = UART(0, baudrate=115200, tx=Pin(0), rx=Pin(1))    #定义结果打印输出

def getLidarData(UART1,UART0):
    temp = bytes()
    if UART1.any() > 0:
        temp += UART1.read(9)
        if temp[0] == 0x59 and temp[1] == 0x59 :
            distance   = temp[2] + temp[3] * 256            #获取距离值
            strengh    = temp[4] + temp[5] * 256            #获取信号强度值
            temperature= (temp[6] + temp[7]* 256)/8-256     #获取芯片温度值
            #UART0.write(bytes(temp[0],temp[1],temp[2],temp[3],temp[4],temp[5],temp[6],temp[7],temp[8]))
            UART0.write(temp)
            #UART0.write('\r\n')
            print("distance =%5dcm,strengh = %5d,temperature = %5d℃"%(distance,strengh,temperature))
while True:
    getLidarData(uart1,uart0)

结果输出

USB接口输出
在这里插入图片描述

串口0雷达原数据输出
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值