激光测距用户手册

1.介绍

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

2.核心参数

精度

± 1毫米

单位

毫米

测试距离

0.03-70米

激光分类

Class II

激光标准

520nm,<1mW

额定电压

2.5-3.3V

工作温度

0-40℃(32-104 ℉)

线序

红:3.3V

黑: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

无效结构

Last updated