激光测距用户手册

1.简介

本系列激光测距模块可以更快更确切的测量距离,即使在恶劣的测试环境中,比如较差的反射面。

2.核心参数

参数名 参数值
精度 ± 3毫米
单位 毫米
测试距离 0.03-5米
测量时间 0.4-4秒
激光分类 Class II
激光标准 520nm,<1mW
尺寸 40 64 18mm
重量 约15g
额定电压 DC3.3-4.3v
工作温度 0-40℃
存储温度 -25-60℃
线序 红:VIN 黑:GND 黄:RX 蓝:TX

注意:

1、 不良测量条件下测量精度会有约±3mm+40PPM的误差。

2、 使用环境温度尽量保持在工作温度内。

3、 使用电压不能超过额定电压,否则会损坏模块。

3.操作协议

采用usart接口。

波特率:自动侦测(推荐9600bps ~115200bps) 默认波 特率19200bps

起始位:1位

数据位:8 位

停止位:1 位

校验位:无

流量控制:无

默认波特率19200bps可以在以下条件使用

注意:

在初始状态下,激光测距仪初始状态处于掉电模式。上电以后,模块需要大概100毫秒的时间完成自启动,然后进入自动检测波特率阶段。主机传输1字节固定数据0x55给从机进行自动侦测波特率,如果成功,从机将向主机回复1字节数据,这表示从机本身的地址。在一个主机多个从机通信情况下,从机的地址应答可能导致USART总线冲突,请记住该字节应该被忽略。在成功检测到波特率后,主机和从机之间的通信已经建立,主机可以发送命令帧给从机。

4. 控制指令

控制命令框架由6部分组成。如

字节 0 1 2 3 4 5 6 7 8
位数 8 1 7 8 8 8 8 8 8 8
名称 Head R/W Address Register Payload count Payload checksum
数据 0xAA 0 0x51 0x00 0x20 0x00 0x01 0x00 0x00 0x72

请求始终以固定的头字节0xAA开始,在从从机到主机的错误应答帧期间,该字节也可以为0xEE,

R/W表示位,0:主机写入从机,1:主机从从机读取。

从机地址为0x51,地址只有7位,所以地址为0x00〜0x7F,0x00是主机发布模块地址变更命令前的默认地址,0x7F是为单主机到多机网络保留的广播地址;

从机寄存器为0x0020(REG_MEA_MODE,详见寄存器列表);

写入寄存器0x0020的有效载荷数据计数为0x0001,当R / W = 1时,此段可能不存在,主机从从机读取;

写入寄存器0x0020的单个数据为0x0000,当R/W = 1时,该部分可能不存在,主机从从机读取;

校验和为0x72,校验和=地址字节+寄存器字节+有效负载计数字节+所有有效负载字节,忽略字节溢出。

5.控制寄存器

序号 寄存器 名称 作用
1 0x0000 REG_ERR_CODE 系统状态代码
2 0x0006 REG_BAT_VLTG 输入电压
3 0x0010 REG_ADDRESS 模块地址
4 0x0012 REG_OFFSET 模块测量结果偏移量
5 0x0020 REG_MEA_START 初始测量
6 0x0022 REG_MEA_RESULT 测量结果
7 0x01BE REG_CTRL_LD 激光二极管控制

6.控制指令

6.1.读取模块最新状态

字节 0 1 2 3 4
名称 Head RW/Address Register Checksum
数据 0xAA 0x80 0x00 0x00 0x80

类别:读取命令

从机地址:0x00

寄存器地址:0x0000

作用:主机在执行完上一个命令之后读出模块的状态。

从机返回:

字节 0 1 2 3 4 5 6 7 8
名称 Head RW/Address Register Payload count Payload Checksum
数据 0xAA 0x80 0x00 0x00 0x00 0x01 0xYY 0xZZ Checksum

字节0xZZ是从机返回的状态码

6.2.读取硬件版本

字节 0 1 2 3 4
名称 Head RW/Address Register Checksum
数据 0xAA 0x80 0x00 0x0A 0x8A

类别:读取命令

从机地址:0x00

寄存器地址: 0x000A

作用:主机读取模块硬件版本信息;

从机返回:

字节 0 1 2 3 4 5 6 7 8
名称 Head RW/Address Register Payload count Payload Checksum
数据 0xAA 0x80 0x00 0x0A 0x00 0x01 0xVV 0xYY sum

硬件版本号是0xVVYY.

6.3.读取软件版本号

字节 0 1 2 3 4
名称 Head RW/Address Register Checksum
数据 0xAA 0x80 0x00 0x0C 0x8C

类别:读取命令

从机地址:0x00

寄存器地址: 0x000C

作用:主机读取模块的软件版本信息;

从机返回:

字节 0 1 2 3 4 5 6 7 8
名称 Head RW/Address Register Payload count Payload Checksum
数据 0xAA 0x80 0x00 0x0C 0x00 0x01 0xVV 0xYY sum

软件版本号是0xVVYY.

6.4.读取模块序列号

字节 0 1 2 3 4
名称 Head RW/Address Register Checksum
数据 0xAA 0x80 0x00 0x0E 0x8E

类别:读取命令

从机地址: 0x00

寄存器地址: 0x000E

作用:主机读取模块序列号;

从机返回:

字节 0 1 2 3 4 5 6 7 8
名称 Head Register Payload count Payload Checksum
数据 0xAA 0x80 0x00 0x0E 0x00 0x01 0xSS 0xNN sum

硬件版本号是0xSSNN.

6.5.读取输入电压

字节 0 1 2 3 4
名称 Head RW/Address Register Checksum
数据 0xAA 0x80 0x00 0x06 0x86

类别:读取命令

从机地址: 0x00

寄存器地址: 0x0006

功能:主模块以BCD编码读取模块的输入电压(mV);

从机返回:

字节 0 1 2 3 4 5 6 7 8
名称 Head RW/Address Register Payload count Payload Checksum
数据 0xAA 0x80 0x00 0x06 0x00 0x01 0x32 0x19 sum

输入电压 = 3219mV

6.6.读取测量结果

字节 0 1 2 3 4
名称 Head RW/Address Register Checksum
数据 0xAA 0x80 0x00 0x22 0xA2

类别:读取命令

从机地址:0x00

寄存器地址:0x0022

功能:主机读取测量结果

从机返回:

字节 0 1 2 3 4 5 6:9 10:11 8
名称 Head RW/ Address Register Payload count Payload Distance Payload SQ Check sum
数据 0xAA 0x00 0x00 0x22 0x00 0x03 0xAABBCCDD 0x0101 Check sum

6.7.设置模块地址

字节 0 1 2 3 4 5 6 7 8
名称 Head RW/Address Register Payload count Payload Checksum
数据 0xAA 0x00 0x00 0x10 0x00 0x01 0x00 0xYY sum

类别:写入命令

从机地址: 0x00

寄存器地址: 0x0010

功能:主机设置从机地址,该地址在模块断电后不会消失;

从机返回:

字节 0 1 2 3 4 5 6 7 8
名称 Head RW/Address Register Payload count Payload Checksum
数据 0xAA 0x00 0x00 0x10 0x00 0x01 0x00 0xYY sum

从地址设置为0xYY(!!!注意:地址只取位[6:0],其他位将被忽略)。

注意:不要将从机地址设置为广播地址0x7F,该地址预留给一个主机到多个从机网络,它需要

所有从机同时测量距离,并且直到主机要求一个从机测量才会进行测量。

6.8.设置模块测量偏移

字节 0 1 2 3 4 5 6 7 8
名称 Head RW/Address Register Payload count Payload Checksum
数据 0xAA 0x00 0x00 0x12 0x00 0x01 0xZZ 0xYY sum

类型:写入命令

从机地址: 0x00

寄存器地址: 0x0012

功能:主机设置从机的测量偏移量。例如,如果偏移量为0xZZYY = 0x7B(+123),则表示测量结果的最终输出将增加123毫米,如果偏移量为0xZZYY = 0xFF85(-123),则表示测量结果的最终输出将减少123毫米。

从机返回:

字节 0 1 2 3 4 5 6 7 8
名称 Head RW/Address Register Payload count Payload Checksum
数据 0xAA 0x00 0x00 0x12 0x00 0x01 0xZZ 0xYY sum

6.9.激光开启和关闭

字节 0 1 2 3 4 5 6 7 8
名称 Head RW/Address Register Payload count Payload Checksum
数据 0xAA 0x00 0x01 0xBE 0x00 0x01 0x00 0xZZ Checksum

类别:写入命令

从机地址: 0x00

寄存器地址: 0x01BE

功能:开启或者关闭激光, 0xZZ = 0x01 激光开启, 0xZZ = 0x00 激光关闭.

从机返回

字节 0 1 2 3 4 5 6 7 8
名称 Head RW/Address Register Payload count Payload Checksum
数据 0xAA 0x00 0x01 0xBE 0x00 0x01 0x00 0xZZ Checksum

6.10开启一次自动模式测量

字节 0 1 2 3 4 5 6 7 8
名称 Head RW/Address Register Payload count Payload Checksum
数据 0xAA 0x00 0x00 0x20 0x00 0x01 0x00 0x00 0x21

类别:写入命令

从机地址: 0x00

寄存器地址:0x0020

功能:启动从机在自动模式下进行单次测量

从机返回:

字节 0 1 2 3 4 5 6:9 10:11 8
名称 Head RW/ Address Register Payload count Payload Distance Payload SQ Check sum
数据 0xAA 0x00 0x00 0x22 0x00 0x03 0xAABBCCDD 0x0101 Check sum

类别:从机返回

从机地址:0x00

寄存器地址:0x0022

功能:将测量结果返回给主机,测量结果= 0xAABBCCDD毫米(帧字节6 = 0xAA,字节7 = 0xBB, 字节8 = 0xCC,字节9 = 0xDD),信号质量= 0x101,信号质量数越小表示激光信号越强, 距离结果越可靠

6.11.开启一次慢速距离测量

字节 0 1 2 3 4 5 6 7 8
名称 Head RW/Address Register Payload count Payload Checksum
数据 0xAA 0x00 0x00 0x20 0x00 0x01 0x00 0x01 0x22

类别:写入命令

从机地址:0x00

寄存器地址:0x0020

功能:启动从机在慢速模式下进行一次测量

从机返回:同上面的一次自动距离测量

6.12.开启一次快速测量

Bytes 0 1 2 3 4 5 6 7 8
Name Head RW/Address Register Payload count Payload Checksum
Data 0xAA 0x00 0x00 0x20 0x00 0x01 0x00 0x02 0x23

类别:写入命令

从机地址: 0x00

寄存器地址: 0x0020

功能:启动从机在快速模式下进行一次距离测量。

从机返回:同单次自动距离测量。

6.13.开启自动模式连续测量

Bytes 0 1 2 3 4 5 6 7 8
Name Head RW/Address Register Payload count Payload Checksum
Data 0xAA 0x00 0x00 0x20 0x00 0x01 0x00 0x04 0x25

类别:写入命令

从机地址: 0x00

寄存器地址: 0x0020

功能:启动从机在自动模式下进行连续测量。

从机返回:同单次自动距离测量。

6.14.开启慢速模式连续测量

Bytes 0 1 2 3 4 5 6 7 8
Name Head RW/Address Register Payload count Payload Checksum
Data 0xAA 0x00 0x00 0x20 0x00 0x01 0x00 0x05 0x26

类别:写入命令

从机地址: 0x00

寄存器地址: 0x0020

功能:启动从机在慢速模式下进行连续测量。

从机返回:同单次自动距离测量.

6.15.开启快速模式连续测量

Bytes 0 1 2 3 4 5 6 7 8
Name Head RW/Address Register Payload count Payload Checksum
Data 0xAA 0x00 0x00 0x20 0x00 0x01 0x00 0x06 0x27

类别:写入命令

从机地址: 0x00

寄存器地址: 0x0020

功能:启动从机在块速模式下进行连续测量。

从机返回:同单次自动距离测量。

6.16.从机错误报告

如果在测量阶段发生任何错误,激光测距仪模块将返回错误报告:

Bytes 0 1 2 3 4 5 6 7 8
Name Head RW/Address Register Payload count Payload Checksum
Data 0xEE 0x00 0x00 0x00 0x00 0x01 0x00 0x0F 0x10

类型:从机返回

从机地址:0x00

寄存器地址:0x0000

功能:向主机报告错误状态,错误码= 0x000F,请参考6.6节错误代码的含义。

6.17.退出连续测量

主机传输一个字节0x58(大写字符'X',)立即停止连续测量模式。

6.18.开启多从机测量

主机向从机地址0x7F发出一次测量命令,这将使所有在线从机同时测量距离,但它们都不会将其测量结果返回给主站,直到主机要求每个从机返回测量结果。在主机发出读取测量结果命令,之前,主机应读取从机的状态码,以确保在从机测量期间不会发生错误。

Bytes 0 1 2 3 4 5 6 7 8
Name Head RW/Address Register Payload count Payload Checksum
Data 0xAA 0x7F 0x00 0x20 0x00 0x01 0x00 0x00 0xA0

类别:写入命令

从机地址:0x00

寄存器地址:0x0020

功能:启动所有的从机在自动模式下进行单次测量

从机返回:无返回

发送此命令后,主机轮询每个从机地址的状态,如果从机返回以0x0000,则表示没有错误,然后发送读取测量结果命令开始测量距离。每个从机的测量结果不会被覆盖,直到下一个成功的测量命令和新的距离结果。

测量模式

有两种测量模式:单次测量和连续测量。

单次测量一次测量命令一个结果。

如果主机不中断连续测量,连续测量距离结果高达255次,要中断连续测量,主机需要在测量期间发送1个字节的0x58(ASCII中的大写字符'X')。

每种测量模式都有三个工作模式:

自动模式, 模块返回测量结果和信号质量(SQ),较小的SQ值代表更可靠的距离结果,在此模式下模块根据激光反射水平调整读取速度。

慢速模式, 更高的精度。

快速模式,更高频,低精度。

7、状态代码

状态码 描述
0x0000 无错误
0x0001 输入电压过低,输入电压应该大于等于2.2V
0x0002 内部错误,可忽略。
0x0003 模块温度过低(< -20℃)
0x0004 模块温度过高(> +40℃)
0x0005 测量目标超出量程
0x0006 无效测量结果
0x0007 背景光太强
0x0008 反射信号太弱
0x0009 反射信号太强
0x000A 硬件错误1
0x000B 硬件错误2
0x000C 硬件错误3
0x000D 硬件错误4
0x000E 硬件错误5
0x000F 反射信号不稳定
0x0010 硬件错误6
0x0011 硬件错误7
0x0081 无效结构

results matching ""

    No results matching ""