GY-56 (VL53L0X) 激光测距
文章目录
- 一、GY-56 简介
- 二、引脚功能
- 三、通信协议
- 1.串口协议: 当 GY-56 PS 焊点开放时候使用(默认)
- (1)串口通信参数(默认波特率值 9600bps)
- (2)模块输出格式,每帧包含 8-13 个字节(十六进制)
- (3)命令字节,由外部控制器发送至 GY-56 模块(十六进制)
- 2.IIC协议:当 GY-56 模块硬件 PS 焊点焊上时候使用,CT 为 SCL,DR 为 SDA
- 四、SET、OUT 引脚使用说明
- 五、串口模式下 GY56 模块校准说明
- 六、测试现象及程序
- 1.串口模式直接输出
- 2.IIC模式OLED显示(PS焊点短接)
- (1)程序
- (2)现象
一、GY-56 简介
GY-56 模块由测距传感器(VL53L0X)和一个 MCU 组成 。工作电压 3-5v,功耗小,体积小,安装方便。 其工作原理是,红外 LED 发光,照射到被测物体后,返回光经过 MCU 接收,MCU 计算出时间差,得到距离。此模块,有两种方式读取数据,即串口 UART(TTL 电平)+IIC(2 线)模式,串口的波特率有 9600bps 与 115200bps,可配置,有连续,询问输出两种方式,可掉电保存设置。GY-56 可以设置上下限距离报警值,开关量输出,在设定的区间内有被测物体挡住,直接输出高电平。IIC 模式下,如果需要,可以设置内部 IIC 地址不同,以便多个传感器直接接在同一个总线。
二、引脚功能
VCC | 电源正极 (3v-5v) |
---|---|
GND | 电源地 |
CT | 串口 USART_TX / IIC_SCL |
DR | 串口 USART_RX / IIC_SDA |
SET | 设置上下限距离报警值(电压 0~3.3V) |
OUT | 报警值状态输出 |
三、通信协议
1.串口协议: 当 GY-56 PS 焊点开放时候使用(默认)
(1)串口通信参数(默认波特率值 9600bps)
波特率:9600 bps 校验位:N 数据位:8 停止位:1
波特率:115200 bps 校验位:N 数据位:8 停止位:1
(2)模块输出格式,每帧包含 8-13 个字节(十六进制)
①.Byte0: 0x5A 帧头标志
②.Byte1: 0x5A 帧头标志
③.Byte2: 0x15 本帧数据类型
④.Byte3: 0x03 数据量
⑤.Byte4: 0x00~0xFF 数据前高 8 位
⑥.Byte5: 0x00~0xFF 数据前低 8 位
⑦.Byte6: 0x00~0xFF 模块测量模式
⑧.Byte7: 0x00~0xFF 模块温度
⑨.Byte8: 0x00~0xFF 校验和(前面数据累加和,仅留低 8 位)
数据计算方法:
距离长度计算方法
Distance= (Byte4<<8) | Byte5 单位 cm
Mode= Byte6
Temp= Byte7(MCU 温度)
例:一帧数据
< 5A-5A-15-04-00-0A-02-1A-F3>
Distance =(0x00<<8)|0x0A =10cm
Mode=2 高精度模式
Temp=0x1A=26℃
(3)命令字节,由外部控制器发送至 GY-56 模块(十六进制)
命令格式:0xA5+功能指令+指令值+sum
例 1:设置串口连续输出数据,(如需掉电保存,请发送掉电保存指令)
连续输出指令=0xA5+0x65+0x01+0x0B
例 2:设置在 10cm-50cm 的区间范围内 OUT 引脚输出高电平(如需掉电保存,请发送掉电保存指令)
设置上限阀值 50CM=0xA5+0x98+0x32+0x6F
设置下限阀值 10CM=0xA5+0xA9+0x0A+0x58
例 3: 掉电保存指令 = 0xA5+0x87+0x01+0x2D
2.IIC协议:当 GY-56 模块硬件 PS 焊点焊上时候使用,CT 为 SCL,DR 为 SDA
IIC 时钟:250K 以下,模块默认 8bit IIC 地址为 0XE0,1bit write:0,1bit read: 1
四、SET、OUT 引脚使用说明
为了便于表示在此特此声明如下:
S 表示模块与被测物体之间的距离;
S1 表示设定的最大警界阀值(上限阀值);
S2 表示设定的最小警界阀值(下限阀值);
S3 表示解除最大警界状态值;S3 和 S1 的关系,S3+3≤S1。例如 S1=100,则 S3≤97;
S4 表示解除最小警界状态值;S4 和 S2 的关系,S4-3≥S2。例如 S2=50,则 S3≥53;
OUT 引脚的状态为高电平和低电平两种。高电平表示 S2<S<S1;低电平表示 S>S1 或 S<S2。
1、OUT 由高电平变低电平。当模块 S>S1 或 S<S2 时,OUT 引脚变成低电平,模块 LED灯将由亮变灭。
2、OUT 由低电平变高电平。当 S>S1,让 S≤S3 时(即当实际距离低于最大警界阀值 3cm时),OUT 引脚由低电平变高电平,模块 LED 灯将由灭变亮。当 S<S2,让 S≥S4 时(即当实际距离大于最小警界阀值 3cm 时),OUT 引脚由低电平变高电平,模块 LED 灯将由灭变亮。设置最大警界阀值:可通过发送指令外,也可通过 SET 引脚手动来设置。
1、模块连续输出模式下,例如设置最大警界阀值 S1 为 100cm,则将模块放置在据被测物体 97cm 的位置进行 SET 引脚设置,或者发送指令:(A5 98 64 A1)0x64 是十进制的 100。
2、手动 SET 引脚接入 3.3V 高电平,大约 3 秒,待模块 LED 指示灯闪速 2 下,此时断开 SET 引脚 3.3V 连接,断开后大约 5 秒,待 LED 闪烁 3 下,则设置成功。如果 LED 闪烁 4
下,表示设置失败。失败原因有两种,一种是,接入高电平时间不够,另一种是设置的距离值小于最小警界阀值。 设置最小警界阀值:可通过发送指令外,也可通过 SET 引脚来设置。
1、模块连续输出模式下,例如设置最小警界阀值 S2 为 50cm,则将模块放置在据被测物体 53cm 的位置,进行 SET 引脚设置, 或者发送指令:(A5 A9 32 B2)0x32 是十进制的 50。
2、手动 SET 引脚接入 GND,大约 3 秒,待模块 LED 指示灯闪速 2 下,此时断开 SET 引脚 GND 连接,断开后大约 5 秒,待 LED 闪烁 3 下,则设置成功。如果 LED 闪烁 4 下,表示设置失败。失败原因有两种,一种是,接入低电平时间不够,另一种是设置的距离值大于最大警界阀值。
五、串口模式下 GY56 模块校准说明
串口下 GY56 模块校准说明:
1、SPADs 修正: 当测距传感器上方被透明材质物体覆盖,模块需进行一次该修正,并上电后加载 SPADs 修正参数。默认情况下,模块在每次上电后会进行一次 SPADs 修正操作,如用户手动执行一次 SPADs 修正后,设置了上电加载 SPADs 修正参数则模块不进行上电后 SPADs 修正操作,这样可以缩短模块初始化时间;通过上位机发送十六进制 A5 0A 01 B0 给模块,模块 LED 亮起,待熄灭校准完成。
2、温度修正:当模块工作环境温度变化超过 8 摄氏度,测距传感器灵敏度会发生改变,需进行一次温度修正;默认情况下,模块在每次上电后会进行一次温度修正操作,如模块工作环境温度恒定,可进手动进行一次温度修正后,设置模块上电后加载温度修正参数,这样可以缩短模块初始化时间;如用户开启了自动温度修正,则模块根据 MCU 温度超过 8度后,自行进行一次温度修正;通过上位机发送十六进制 A5 10 01 B6 给模块,模块 LED亮起,待熄灭校准完成。
3、偏差校准:当模块测距值与实际值之间存在一个固有的偏差时,可执行此操作。偏差校准的指令=0xA5+0x21+指令值+sum,指令值为实际距离值。例如:模块测距值为13CM,而实际值为 10CM,则指令中的指令值为十进制的 10;如需重新上电后加载该补偿值,需设置上电后加载偏差校准参数。通过上位机发送十六进制指令给模块,模块 LED 亮起,待熄灭校准完成。
4、窗口校准:当测距传感器上方被透明材质物体覆盖,模块在全量程测距的值不是线性的情况下,执行该操作。如下图所示:
X 轴为实际值,Y 轴为测量值。绿色虚线说明该材质对测距无影响或是传感器表面无任务材质覆盖,蓝色线表明为轻度影响,红线为中度影响,绿色实线为重度影响。窗口校准的指令=0xA5+0x32+指令值+sum;指令值的选取:使用 17%灰色的反射率目标,则设模块与被测目标的距离为 S。对于轻度影响的情况下,参见下图左侧蓝线,只要 S 在 AB 之间即可。指令值为实际距离值。中度影响的选取右测红线 AB 之间区域。如需重新上电后加载该补偿值,需设置上电后加载窗口校准参数。通过上位机发送十六进制指令给模块,模块 LED 亮起,待熄灭校准完成。
六、测试现象及程序
1.串口模式直接输出
Distance =(0x00<<8)|0x14 =20cm
2.IIC模式OLED显示(PS焊点短接)
(1)程序
main.c
#include <STC89C5xRC.H>
#include <delay.h>
#include <IIC.H>
#include <oled.H>void Read_VL53L0(unsigned int * distance)//读VL53L0
{unsigned char REG_data[2]={0,0};IIC_Start();IIC_SendByte(0xE1);IIC_ReceiveAck();//这里没有对应答做判断delay_1us(50);REG_data[0] = IIC_ReceiveByte();IIC_SendAck(0);REG_data[1] = IIC_ReceiveByte();IIC_SendAck(1);IIC_Stop();distance[0]=REG_data[0]<<8|REG_data[1];
}void Write_VL53L0()//写VL53L0
{IIC_Start();IIC_SendByte(0xE0);IIC_ReceiveAck();delay_1us(40);IIC_SendByte(0x51);//发送测量命令IIC_ReceiveAck();delay_1us(40);IIC_Stop();
}
void main()
{unsigned int diatance=0;OLED_Init();//初始化OLEDOLED_ColorTurn(0);//0正常显示,1 反色显示OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示OLED_Clear();//清屏Delay_x_ms(1000);//系统启动延时while(1){Write_VL53L0();Delay_x_ms(500);//测量转化延时Read_VL53L0(&diatance);OLED_ShowString(70,3,"cm",16);OLED_ShowNum(40,3,diatance,3,16);Delay_x_ms(1000);}
}
(2)现象
盒子放置于直尺15cm以及20cm位置测试,OLED 分别显示距离 15cm 及 20cm
本文测试结束,需要整个资料工程的可以在评论区留言邮箱哦!
相关文章:

GY-56 (VL53L0X) 激光测距
文章目录 一、GY-56 简介二、引脚功能三、通信协议1.串口协议: 当 GY-56 PS 焊点开放时候使用(默认)(1)串口通信参数(默认波特率值 9600bps)(2)模块输出格式,每帧包含 8-13 个字节&a…...

当今陪玩系统小程序趋势,陪玩系统源码搭建后的适用于哪些平台
一、市场规模持续扩大 随着全球游戏市场的不断膨胀,游戏陪玩行业正逐渐从一个新兴领域成长为游戏产业链中不可或缺的一环。据《2024年1~6月中国游戏产业报告》显示,今年上半年,国内游戏市场实际销售收入达到1472.67亿元,同比增长…...

qt QListWidget详解
1、概述 QListWidget 是 Qt 框架中的一个类,它提供了一个基于模型的视图,用于显示项目的列表。QListWidget 继承自 QAbstractItemView 并为项目列表提供了一个直观的接口。与 QTreeView 和 QTableView 不同,QListWidget 是专门为单行或多行项…...

java ssm 校园快递物流平台 校园快递管理系统 物流管理 源码 jsp
一、项目简介 本项目是一套基于SSM的校园快递物流平台,主要针对计算机相关专业的和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具等。 项目都经过严格调试,确保可以运行! 二、技术实现 后端技术&#x…...
西安电子科技大学考研网报审核通过了,然后呢?
报考西安电子科技大学的宝贝们,考研网上确认已经截止的同学们,不用担心! 最近,有很多同学问到一个问题:网上确认时看到有消息说禁止使用海马体照片,但我明明用了海马体的照片,审核却通过了&…...
pandas习题 051:将字符串数据读取到 DataFrame
编码题)有以下逗号隔开和空格隔开的字符串数据,如何将它读取为 DataFrame ? data = ‘’’ a,b,c 1,3,4 2,4,5 ‘’’ data2 = ‘’’ a b c 1 13 214 2 4 15 ‘’’ Python 代码如下:import pandas as pd import iodata = a,b,c 1,3,4 2,4,5 df = pd.read_csv(io.Stri…...
改进探路者算法复现
本文所涉及所有资源均在 传知代码平台 可获取。 目录 一、背景及意义介绍 (一)背景 ...

PostgreSQL 学习笔记:PostgreSQL 主从复制
PostgreSQL 笔记:PostgreSQL 主从复制 博客地址:TMDOG 的博客 在现代应用程序中,数据库的高可用性和扩展性是至关重要的。PostgreSQL 提供了主从复制功能,可以在多个数据库实例之间复制数据,以实现冗余和负载均衡。本…...
【系统架构设计师(第2版)】十一、未来信息综合技术
未来信息综合技术是指近年来新技术发展而提出的一些新概念、新知识、新产品,主要包括信息物理系统(CPS)、人工智能(AI)、机器人、边缘计算、数字孪生、云计算和大数据等技术。这些技术涉及多学科、多领域,具…...
Pytorch学习--神经网络--优化器
一、头文件 torch.optim.Optimizer(params, defaults) optim文档 for input, target in dataset:optimizer.zero_grad()output model(input)loss loss_fn(output, target)loss.backward()optimizer.step()二、代码 不带优化器的代码框架 import torch import torchvision…...

w~自动驾驶合集11
我自己的原文哦~ https://blog.51cto.com/whaosoft/12329152 #特斯拉的“纯视觉”路线 , 也许不是最好的 BEVTransformer占用网络技术路线的大热,再次将激光雷达推向风口浪尖。 激光雷达该不该被抛弃? 对车企来说,这是一个艰难的抉择&am…...

大数据新视界 -- 大数据大厂之 Impala 性能优化:解锁大数据分析的速度密码(上)(1/30)
💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...

GESP4级考试语法知识(算法概论(三))
爱因斯坦的阶梯代码: //算法1-12 #include<iostream> using namespace std; int main() {int n1; //n为所设的阶梯数while(!((n%21)&&(n%32)&&(n%54)&&(n%65)&&(n%70)))n; //判别是否满足一组同余式cout<<n<…...

x-cmd pkg | gum - 轻松构建美观实用的终端界面,解锁命令行新玩法
目录 简介快速上手安装使用 功能特点竞品和相关作品进一步探索 简介 gum 是由 Charm 团队于 2022 年使用 Go 开发的终端 UI 组件工具箱,能帮用户在终端中快速构建交互式 TUI 界面(如表单、菜单、提示框等),简化命令行应用程序的开…...

WMS系统打通仓储全链条数据势在必行,该如何做呢
一、引言 在当今竞争激烈的商业环境中,高效的仓储管理对于企业的生存和发展至关重要。仓储管理系统(WMS)作为现代仓储管理的核心工具,其作用不仅仅是简单地记录库存数量和位置,更在于打通仓储全链条数据,实…...

基于Python的校园爱心帮扶管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...

如何基于pdf2image实现pdf批量转换为图片
最近为了将pdf报告解析成为文本和图片,需要将大量多页的pdf文件拆分下单独的一页一页的图像,以便后续进行OCR和图像处理,因此就需要实现将pdf2image,本文主要结合开源的pdf2image和poppler,实现了pdf转换为png格式图片…...
Tomcat(1) 什么是Tomcat?
Tomcat是一个开源的Web服务器和Servlet容器,它实现了Java Servlet、JavaServer Pages (JSP)、WebSocket和Java EL等Java EE规范。Tomcat由Apache软件基金会维护,是Java应用程序的常用部署平台。 深入理解Tomcat 1. 架构 Tomcat的核心组件包括…...
商务礼仪与职场沟通
知人者智,自知者明。胜人者有力,自胜者强。知足者富,强行者有志,不失其所者久,死而不亡者寿。 ——《道德经(第三十三章)》 认知先行——意识塑造 职业化——标准化,规范化&#…...

C语言必做30道练习题
C语言练习30题(分支循环,数组,函数,递归,操作符) 目录 分支循环1.闰年的判断2.阅读代码,计算代码输出的结果3.输入一个1~7的数字,打印对应的星期几4.输入任意一个整数值,…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...

STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...