首页 > 其他分享 >GD32F470_VL53L0X激光测距传感器模块移植

GD32F470_VL53L0X激光测距传感器模块移植

时间:2024-04-10 12:32:45浏览次数:14  
标签:VL53L0X 引脚 GD32F470 激光测距 vl53l0x 2.15 include 移植

2.15 VL53L0X激光测距传感器

VL53L0X是 ST 公司推出的新一代 ToF 激光测距传感器,采用了第二代 FlightSenseTM技术,利用飞行时间(ToF)原理,通过光子的飞行来回时间与光速的计算,实现测距应用。较比上一代 VL6180X,新的器件将飞行时间测距长度扩展至 2 米,测量速度更快,能效更高。除此之外,为使集成度过程更加快捷方便, ST 公司为此也提供了 VL53L0X 软件 API(应用编程接口)以及完整的技术文档,通过主 IIC 接口,向应用端输出测距的数据,大大降低了开发难度。

2.15.1 模块来源

采购链接:
VL53L0X V2激光测距传感器模块 ToF飞行时间测距 配套光学盖片
资料下载链接:
https://pan.baidu.com/s/15Ld90aG1VC0y_xp120UbZg
提取码:qydr

2.15.2 规格参数

工作电压: 2.6 ~ 3.5 V
温度范围:2m
通信协议:I2C
I2C地址:0X52
管脚数量:6 Pin(2.54mm间距排针)
温度范围:2m
通信协议:I2C
I2C地址:0X52
管脚数量:6 Pin(2.54mm间距排针)

2.15.3 移植过程

我们的目标是在梁山派GD32F470上能够实现测量距离的功能。首先要获取资料,查看数据手册应如何实现读取数据,再移植至我们的工程。

2.15.3.1 查看资料

VL53L0X飞行时间测距传感器是新一代激光测距模块,VL53LOX是完全集成的传感器,配有嵌入式红外、人眼安全激光,先进的滤波器和超高速光子探测阵列,测量距离更长,速度和精度更高。
VL53L0X的感测能力可以支持各种功能,包括各种创新用户界面的手势感测或接近检测,扫地机器人、服务性机器人的障碍物探测与防撞系统,家电感应面版、笔记本电脑的用户存在检测或电源开关监控器,以及无人机和物联网(IoT)产品等。

2.15.3.2 引脚选择

该模块有3个引脚,具体引脚连接见 表2.15.3.2 各引脚连接。

引脚说明
GPIO1中断输出引脚
XSHUT关机引脚,低电平关机
SCLI2C的时钟线
SDAI2C的数据线

案例接线示意图

VL53L0X立创·梁山派
VIN3V3
GNDGND
SCLPB9
SDAPB8
XSHUTPB7

在这里插入图片描述

2.15.3.3 移植至工程

移植步骤中的导入.c和.h文件与上一节相同,只是将.c和.h文件更改为bsp_VL53L0X.c与bsp_VL53L0X.h。见2.2.3.3 移植至工程。这里不再过多讲述。移植完成后面修改相关代码。

2.15.4 移植验证

在自己工程中的main主函数中,编写如下。

/********************************************************************************
  * 文 件 名: main.c
  * 版 本 号: 初版
  * 修改作者: LC
  * 修改日期: 2022年04月24日
  * 功能介绍:          
  ******************************************************************************
  * 注意事项:
*********************************************************************************/

#include "gd32f4xx.h"
#include "systick.h"
#include <stdio.h>
#include "main.h"
#include "sys.h"
#include "bsp_usart.h"
#include "bsp_VL53L0X.h"


extern VL53L0X_Dev_t vl53l0x_dev;//设备I2C数据参数

/************************************************
函数名称 : main
功    能 : 主函数
参    数 : 无
返 回 值 : 无
作    者 : LC
*************************************************/
int main(void)
{
    uint8_t mode = 2;//0:默认;1:高精度;2:长距离;3:高速
    VL53L0X_Error Status=VL53L0X_ERROR_NONE;//工作状态
    
        nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2);   // 优先级分组
    systick_config();                                                          // 滴答定时器初始化
        usart_gpio_config(9600U);                                                  // 串口0初始化
        printf("start\r\n");
    
        while(vl53l0x_init(&vl53l0x_dev))//vl53l0x初始化
        {
        printf("VL53L0X Error!!!\n\r");
        delay_1ms(500);
        }
        printf("VL53L0X OK\r\n");
    
        while(vl53l0x_set_mode(&vl53l0x_dev,mode))//配置测量模式
        {
        printf("Mode Set Error\r\n");
                delay_1ms(500);
        }

    while(1) 
        {
         if(Status==VL53L0X_ERROR_NONE)
         {
            //执行单次测距并获取测距测量数据
            Status = VL53L0X_PerformSingleRangingMeasurement(&vl53l0x_dev, &vl53l0x_data);
            printf("d: %4imm\r\n",vl53l0x_data.RangeMilliMeter);//打印测量距离
        }
        else
        {
           printf("error\r\n");
        }
        delay_1ms(500);
    }
}

移植现象:在距离20cm处摆放障碍物,输出前方障碍物的距离。
在这里插入图片描述
移植成功示例,见文件2.15.4-1

标签:VL53L0X,引脚,GD32F470,激光测距,vl53l0x,2.15,include,移植
From: https://blog.csdn.net/weixin_46893326/article/details/137475310

相关文章

  • 激光测距传感器TOFSense CAN模式的使用
    随笔记-获取TOFSense的数据之前写了一篇UART的移植以及适用,今天写一篇关于CAN的使用这里就不多介绍了该模块了CAN模式与UART模式一样CAN也是支持主动输出以及查询输出的协议如下图,基于协议可以看到我们需要ArbitrationField中的ID,也就是CAN标识符也可以认为是地址,以及DataF......
  • 【雕爷学编程】Arduino动手做(158)---VL53L0X激光测距模块3
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 【雕爷学编程】Arduino动手做(158)---VL53L0X激光测距模块2
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 【雕爷学编程】Arduino动手做(158)---VL53L0X激光测距模块
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • Arduino 控制激光测距 4M
    VL53L0X飛時測距模組通常有6隻接腳,只需要接電源和I2C腳。ArduinoUno板的接線示範:安裝Arduino版的VL53L0X程式庫選擇ArduinoIDE主功能表的「草稿碼→匯入程式庫→程式庫管理員」,在「程式庫管理員」中搜尋“VL53L0X ”關鍵字,即可找到相關程式庫,常見的兩個程式庫分別是Adafrui......
  • 激光测距传感器TOFSense的使用
    随笔记-获取TOFSense的数据TOFSenseTOFSense是Nooploop深圳空循环的一款激光测距传感器,前面的黑框就是激光发射与接收的地方。模块激光发射视场角有27°,也就是说实际上模块打出去的激光覆盖范围是一个顶点在黑框上,类似圆锥的形状参考下图,打出的是范围激光但只输出一个值,看模块手......
  • GD32F470II芯片LVGL不同驱动方式对比
    1、硬件对比屏幕尺寸:800*480 颜色格式:RGB565一帧数据:800*480*2=768000=750kLCD频率:32MHz/768000=41HZlvglfps:33优化等级:AC5-O3新硬件:GD32F470IISDRAM:32bit带宽,120MHzMCU:240MHz,768KRAM,2MFlashlv_demo_b......
  • JESD204B/MIPI/视频拼接/激光测距项目FPGA教学课程
    实战项目阶段明德扬FPGA就业班提供源工程进行学习。根据学员基础的完成情况,原则上学习越积极越快,可以学到的项目越多,越复杂。下表是仅列出一部分项目,项目会动态增加。全......
  • JESD204B/MIPI/视频拼接/激光测距
    实战项目阶段明德扬FPGA就业班提供源工程进行学习。根据学员基础的完成情况,原则上学习越积极越快,可以学到的项目越多,越复杂。下表是仅列出一部分项目,项目会动态增加。全部项......