【ESP32 DEVKIT_V1】北醒TF系列雷达在ESP32 DEVKIT_V1开发板上的运用

2023-05-16

目录

  • 前言
  • 一、硬件准备
  • 二、硬件接线说明
    • 串口接线示意图:
    • I2C接先示意图
  • 三、软件搭建及测试
    • 1、使用Arduino IDE编译教程
    • 2、使用vsCode+Arduino教程
      • 2.1 在vsCode上使用Arduino的环境搭建
      • 2.2 配置烧录和测试
    • 3、使用vsCode+PlatformIO编译教程
  • 四、源代码
    • 串口版本源代码:
    • I2C版本原代码
  • 五:常见问题

前言

此文档介绍了北醒系列激光雷达在ESP32 DEVKIT_V1开发板上的运用,其中包含了

  • 两种雷达的接口 TTLIIC
  • 三种编译方式 通过Arduino IDE \ vsCode+Arduino \ vsCode+PlatformIO

此文档的编译代码可以在Github上下载:https://github.com/benewake-zoran/ESP32-DEVKIT_V1


一、硬件准备

  1. 北醒TF系列雷达一台(相关可参考论坛首页产品介绍)https://blog.csdn.net/zoran_wu/article/details/109445751
  2. ESP32 DEVKIT_V1开发板一块
  3. MicroUSB数据线一条
  4. 杜邦线若干

二、硬件接线说明

串口接线示意图:

在这里插入图片描述

I2C接先示意图

待添加

三、软件搭建及测试

1、使用Arduino IDE编译教程

环境搭建:关于ESP32 DEVKIT_V1板子资料及环境搭建可以参考
https://blog.csdn.net/zoran_wu/article/details/123224154

2、使用vsCode+Arduino教程

2.1 在vsCode上使用Arduino的环境搭建

参考:【vsCode + Arduino】在Visual Studio Code编译Arduino项目
https://blog.csdn.net/zoran_wu/article/details/127630939

2.2 配置烧录和测试

步骤一: 使用vsCode打开Arduino建好的ino,项目文件,选择对应的开发板DOIT DEVKIT_V1
请添加图片描述
步骤二: 选择对应的编译器
请添加图片描述
步骤三: 选择对应COM口并编译,如果COM口正常(以下COM口处理略过)
如果没有COM口,请确认板子是否已经正常连接,对应驱动是否已经正常安装,此处可以参考
关于ESP32 DEVKIT_V1板子资料及环境搭建可以参考
https://blog.csdn.net/zoran_wu/article/details/123224154
请添加图片描述
步骤四: 此处一般会出现一个编译警告,如下图,通过更改json来避免此警告,并加速编译(此处参考待添加)
请添加图片描述
添加一句"output": “./Arduino/build”,如下所示
在这里插入图片描述
步骤五: 编译后进行烧录
烧录方式:先按住BOOT键点烧录,待出现正在上传时可以放开并开始烧录
请添加图片描述
步骤六: 测试
此处手动打开串口监控器,开始打印雷达数据
请添加图片描述

3、使用vsCode+PlatformIO编译教程

参考:【vsCode + PlatformIO】在Visual Studio Code编译Arduino项目
https://blog.csdn.net/BX_Zoran/article/details/123707123

四、源代码

串口版本源代码:

// Note the format for setting a serial port is as follows: Serial2.begin(baud-rate, protocol, RX pin, TX pin);
#define RXD2 16
#define TXD2 17
int dist;     /*----actual distance measurements of LiDAR---*/
int strength; /*----signal strength of LiDAR----------------*/
float temprature;
unsigned char check; /*----save check value------------------------*/
int i;
unsigned char uart[9];      /*----save data measured by LiDAR-------------*/
const int HEADER = 0x59;    /*----frame header of data package------------*/
int rec_debug_state = 0x01; // receive state for frame
void Get_Lidar_data();
void setup()
{
  delay(2000);
  Serial.begin(115200);
  Serial.println("\nBenewake TFmini-S UART LiDAR Program");
  Serial2.begin(115200);
}
void loop()
{
  Get_Lidar_data();
}
void Get_Lidar_data()
{
  if (Serial2.available()) // check if serial port has data input
  {
    if (rec_debug_state == 0x01)
    { // the first byte
      uart[0] = Serial2.read();
      if (uart[0] == 0x59)
      {
        check = uart[0];
        rec_debug_state = 0x02;
      }
    }
    else if (rec_debug_state == 0x02)
    { // the second byte
      uart[1] = Serial2.read();
      if (uart[1] == 0x59)
      {
        check += uart[1];
        rec_debug_state = 0x03;
      }
      else
      {
        rec_debug_state = 0x01;
      }
    }
    else if (rec_debug_state == 0x03)
    {
      uart[2] = Serial2.read();
      check += uart[2];
      rec_debug_state = 0x04;
    }
    else if (rec_debug_state == 0x04)
    {
      uart[3] = Serial2.read();
      check += uart[3];
      rec_debug_state = 0x05;
    }
    else if (rec_debug_state == 0x05)
    {
      uart[4] = Serial2.read();
      check += uart[4];
      rec_debug_state = 0x06;
    }
    else if (rec_debug_state == 0x06)
    {
      uart[5] = Serial2.read();
      check += uart[5];
      rec_debug_state = 0x07;
    }
    else if (rec_debug_state == 0x07)
    {
      uart[6] = Serial2.read();
      check += uart[6];
      rec_debug_state = 0x08;
    }
    else if (rec_debug_state == 0x08)
    {
      uart[7] = Serial2.read();
      check += uart[7];
      rec_debug_state = 0x09;
    }
    else if (rec_debug_state == 0x09)
    {
      uart[8] = Serial2.read();
      if (uart[8] == check)
      {

        dist = uart[2] + uart[3] * 256;       // the distance
        strength = uart[4] + uart[5] * 256;   // the strength
        temprature = uart[6] + uart[7] * 256; // calculate chip temprature
        temprature = temprature / 8 - 256;
        Serial.print("dist = ");
        Serial.print(dist); // output measure distance value of LiDAR
        Serial.print('\n');

        Serial.print("strength = ");
        Serial.print(strength); // output signal strength value
        Serial.print('\n');
        Serial.print("\t Chip Temprature = ");
        Serial.print(temprature);
        Serial.println(" celcius degree"); // output chip temperature of Lidar
        while (Serial2.available())
        {
          Serial2.read(); // This part is added becuase some previous packets are there in the buffer so to clear serial buffer and get fresh data.
        }
        delay(100);
      }
      rec_debug_state = 0x01;
    }
  }
}

I2C版本原代码

五:常见问题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【ESP32 DEVKIT_V1】北醒TF系列雷达在ESP32 DEVKIT_V1开发板上的运用 的相关文章

  • windows系统下QT打包后到不同系统的各种报错问题分析

    最近碰到好多人问关于WINDOWS上的QT打包后在自己电脑上可以运行 xff0c 换台电脑报各种错误的问题 于是特地写个帖子总结下一些问题 xff1a 首先是打包QT xff0c 将QT的系统库拉出来 这里可以借用windeployqt工具
  • python使用requests提交post请求并上传文件(multipart/form-data)

    目录 一 背景 二 请求接口上传文件 2 1 分析接口 2 2 python进行请求 三 总结 一 背景 也是前几天 xff0c 有一个需求上传文件需要自动化 具体是上传到系统一个文件 xff0c 并收到返回结果 考虑使用python的re
  • Optitrack光学动作捕捉

    光学式动作捕捉依靠一整套精密而复杂的光学摄像头来实现 xff0c 它通过计算机视觉原理 xff0c 由多个高速摄像机从不同角度对目标特征点进行跟踪来完成全身的动作的捕捉 美国大片中的后期特效制作大都是用的这种光学式动捕技术打开百度APP x
  • 带参数的宏的问题

    include 34 iostream 34 using namespace std define COMPUTE XX a a a 43 a 2 int main int a 61 2 int test1 61 COMPUTE XX 43
  • Qt TCP/UDP通讯封装

    Qt TCP UDP通讯封装 TCP客户端 class TcpClient public QTcpSocket Q OBJECT public explicit TcpClient QObject parent 61 nullptr Tcp
  • http post请求

    1 引入所需要的jar包 lt dependency gt lt groupId gt org apache httpcomponents lt groupId gt lt artifactId gt httpclient lt artif
  • C语言截取从某位置开始指定长度子字符串方法

    C语言中没有从某位置开始指定长度子字符串的函数 xff08 还是我没找到 xff1f xff09 xff0c 只有从头开始截取的strncat和strncpy xff0c 以strncpy为例 xff1a char dest 4 61 34
  • PX4中自定义MAVLink消息(记录)

    简单记录一下这个过程 一 自定义uORB消息 这一步比较简单 xff0c 首先在msg 中新建ca trajectory msg文件 uint64 timestamp time since system start span class t
  • HP-SOCKET学习笔记(一)

    介绍 HP Socket是一套通用的高性能TCP UDP HTTP 通信框架 xff0c 包含服务端组件 客户端组件和Agent组件 xff0c 广泛适用于各种不同应用场景的TCP UDP HTTP通信系统 xff0c 提供C C 43 4
  • curl断点续载

    curl断点续传 xff0c 下载过程中关闭控制台 xff0c 然后重新启动 xff0c 又会接着下载 include 34 stdafx h 34 include lt io h gt include 34 curl curl h 34
  • curl多线程下载实现

    其实libcurl自带一个应用 xff0c 很高大上 xff0c 但是作为范例参考怎么使用libcurl觉得不大适合 xff01 还是写一些helloworl的程序的 xff0c 一目了然 include 34 stdafx h 34 in
  • arduino实现tts

    淘宝上查了一下 xff0c 目前的几款tts模块貌似指令格式类似 Blink Turns on an LED on for one second then off for one second repeatedly This example
  • openwrt编译error: ext4_allocate_best_fit_partial: failed to allocate 13 blocks, out of space?

    编译openwrt时候报如下错误 xff1a Creating filesystem with parameters Size 50331648 Block size 4096 Blocks per group 32768 Inodes p
  • 在mac上创建鼠标双击可执行的shell脚本

    总是觉得mac权限管理好严格 xff0c 要创建向在window上执行bat那样的脚本需要如下操作 首先创建测试脚本 touch clickexe sh open e clickexe sh 在脚本中输入内容 echo 34 hello w
  • rm: cannot remove Permission denied 问题解决方法

    今天编译openwrt系统的时候 xff0c 碰到这样的问题 rm cannot remove xxx Permission denied 但是又不允许用root用户执行 xff0c 所以就要用root用户去修改权限 chmod 777 如
  • Arduino 舵机驱动板编程

    需要下载Adafruit的arduino库 xff0c 这个网上搜索一下很多 我的驱动板是16路基于I2C接口通信 xff0c 这个arduino库底层都做好了 xff0c 精度是12位 xff08 4096 xff09 设置非常简单 xf
  • 3d图形引擎结构

    其实3d引擎结构基本上都是类似的 xff0c 差别也只是细节的上的差别 xff0c 如jme引擎的结构如下 xff1a 首先是viewport xff0c 这个就像2d图层一样 xff0c 每个viewport开始渲染的时候都可以清除缓冲区
  • 树莓派开机启动frpc

    直接在 rc local里启动frpc失败 xff0c 原因是网络好像连接失败 所以写了个shell脚本 xff0c 通过sleep延时一下 xff0c 就启动成功了 首先建立startfrp sh bin bash cd home pi
  • esp32 arduino psram使用

    esp32 arduino固件是已经支持psram了的 xff0c 是模式2 xff0c 所以要使用heap caps malloc来分配 注意选择wrover modelus xff0c 其他的可能驱动不支持 示例代码 xff1a inc
  • 事件驱动框架(二)——状态机

    事件驱动框架 xff08 二 xff09 说明 本篇接上一篇事件驱动框架之后 xff0c 介绍状态机的原理相关的 xff0c 以及事件驱动框架下事件处理状态机的实现 因为代码大多还是参照QP源码 xff0c 所以仅供学习使用 有限状态机介绍

随机推荐

  • 小米10如何安装google play商店

    查了一下网上说可以安装gmail 小米商店就会自动安装google play的 xff0c 但是发现gmail在小米商店已经提示说 因为软件本身问题不能给安装 34 xff0c 查了一无果 xff0c 于是用之前华为安装google的apk
  • php 上传目录权限问题导致无法上传

    php除了有大小严格限制导致失败 xff0c 还有就是上传目录权限问题导致失败 xff0c 如果权限问题执行以下命令即可 sudo chown R www data www data Users George Desktop uploads
  • KeilC STM32添加.c .h文件的方法

    嵌入式初学者添加 c h文件是可能会出现 h头文件无法生效的问题 xff0c 在此将本人经历总结如下 xff0c 供大家参考 1 xff0c 把所需添加的文件 xff0c 放到这个文件夹下 项目名称 Core Src 2 xff0c 右击此
  • 传感器——ATGM332D 北斗定位模块

    NO 8 模型用GPS测速仪 xff08 已完成 xff09 xff08 更新第二版本 xff09 这个是用显示屏显示的 定位精度2 5m GPS模块VCC Arduino的5v GPS模块GND Arduino的GND GPS模块TXD
  • stm32f10--- 学习日志2021-07-10

    不知道标题是啥 xff0c 学到什么记录什么 寄存器占四个字节 偏移地址 xff1a 0x04 基地址 xff1a 0x4001 1000叫做GPIOC的基地址 APB2外设时钟使能寄存器 0x4002 1018 单片机认为它只是一个数值
  • 【unp】unix网络编程卷1-->环境搭建(ubuntu14.04)

    学习unp网络编程 xff0c 树上的例子均存在 include 34 unp h 34 xff0c 故需要对环境进行配置 1 到资源页下载unpv13e 2 解压并将unpv13e 移动到相应的文件夹下 3 编译 gt cd unpv13
  • 北醒激光雷达模组 资料汇总

    目录 1 文档说明1 1 北醒单点系列雷达激光模组相关资料1 2 北醒面阵系列雷达激光模组相关资料1 2 1 产品基本介绍1 2 2 Benewake 北醒 短距 TF LC02 2m资料整理1 2 3 Benewake 北醒 短距 TF
  • TFmini Plus在开源飞控PX4上的应用

    TFmini Plus在开源飞控PX4上的应用 PX4有着自己独特的优势 xff0c 受到广大爱好者的喜爱 TFmini Plus是北醒公司推出的性价比极高的激光雷达 xff0c 受到广大爱好者的追捧 本文介绍TFmini Plus和PX4
  • Benewake TFmini-S\TFmimi Plus\TFluna\TF02-Pro 串口版本雷达在STM32的例程

    目录 文档说明北醒串口标准通讯协议硬件接线Lidar通讯代码1 初始化USART1 2 开启USART1的空闲中断 3 USART2 IRQHandler增加中断判断4 中断处理函数 xff0c 用于接收雷达数据 协议处理注 xff1a 换
  • 使用CH341 I2C连接北醒TF系列I2C模式 Python例程

    目录 硬件接线 xff1a 源码结果输出 本文介绍了北醒单点系列雷达IIC模式下使用CH341芯片转接板读取雷达数据的例程 例程下载 xff1a 链接 https pan baidu com s 1KVJ fINxUgKZny2Gdi8T2
  • 蓝牙nrf51822程序的分析(一)

    蓝牙nrf51822程序的分析 一 最近继续用NRF51822开发一个东西 无奈之前没接触过蓝牙 连蓝牙串口模块也没有 所以对蓝牙的基础知识不够 xff0c 后面看了之后接着补充 花了2天时间把提供的NRF51822的程序大致看明白了 xf
  • 常用Arduino板介绍

    目录 NANO板介绍烧录说明 UNO板介绍烧录说明 Pro mini板介绍烧录说明 DUE板介绍烧录说明 NANO板介绍 概述 xff1a Arduino Nano是一款基于ATMega328P xff08 Arduino Nano 3 x
  • Modbus设备在Modbus scan上面的使用方法

    操作教程 参数 xff1a DeviceID xff1a 485从站 寄存器地址 xff1a 查询设备地址表 北醒雷达Dist在0x0000开始 读取寄存器长度 xff1a 雷达数据长度值 格式 xff1a MODBUS RTU 串口协议
  • Raspberry Pi Pico C/C++语言在Windows环境下开发环境搭建 Raspberry Pi Pico C/C++ SDK

    目录 前言Raspberry Pi Pico介绍需要支持的软件软件安装配置及注意事项ARM GCC compiler的安装CMake的安装Git 安装Visual Studio 2019的安装Visual Studio Code的配置Pyt
  • 【LoRa32U4II】介绍以及基于Arduino IDE编译环境搭建及测试

    目录 LoRa 模块LoRa32u4 II介绍LoRa32u4 II 资料下载LoRa32u4 II 规格介绍LoRa32u4 II 脚位说明 编译环境介绍电脑系统编译软件Arduino需求库 编译环境搭建及测试LoRa32u4 II 测试
  • 【Benewake(北醒) 】短距 TF-LC02 2m资料整理

    目录 1 TF LC02简要说明1 1 性能参数1 2产品图片及尺寸 2 运用2 1 在开源板Arduino上的运用2 2 在Python上的应用 1 TF LC02简要说明 1 1 性能参数 1 2产品图片及尺寸 2 运用 2 1 在开源
  • 【Arduino】Benewake(北醒) TF-LC02(TTL)基于Arduino 开发板运用说明

    目录 前言Benewake 北醒 TF LC02产品简要说明Arduino开发板介绍Benewake 北醒 TF LC02 接口及通讯协议说明接口定义串口协议说明通讯协议说明功能码说明 接线示意图例程说明配置软硬串口定义获取TOF数据的结构
  • 【Benewake(北醒) 】中距 TF02-i 40m工业版本CAN/485介绍以及资料整理

    目录 1 前言2 产品介绍3 产品快速测试3 1 产品规格书及使用说明书3 2 通用指令串口助手使用说明3 3 产品快速测试说明 4 基于开源硬件的运用整理4 1 在开源飞控上的运用 5 基于其他的运用整理5 1 在PLC上的运用说明5 2
  • 【ESP32 DEVKIT_V1】基于Arduino IDE环境搭建

    目录 一 前言二 板子介绍三 环境搭建1 Arduino IDE的安装2 在Arduino IDE上添加外包链接3 添加好外包链接后就可以下载对应的板子库文件 测试1 先把开发板接到电脑 xff0c 并在Arduino IDE上选择对应的开
  • 【ESP32 DEVKIT_V1】北醒TF系列雷达在ESP32 DEVKIT_V1开发板上的运用

    目录 前言一 硬件准备二 硬件接线说明串口接线示意图 xff1a I2C接先示意图 三 软件搭建及测试1 使用Arduino IDE编译教程2 使用vsCode 43 Arduino教程2 1 在vsCode上使用Arduino的环境搭建2