“SIngle ToF”的版本间的差异
来自丢石头百科
Yousimaier17(讨论 | 贡献) (→产品参数) |
Yousimaier17(讨论 | 贡献) |
||
(未显示同一用户的57个中间版本) | |||
第23行: | 第23行: | ||
*[[File:SIngle ToF_引脚说明.png|300px]] | *[[File:SIngle ToF_引脚说明.png|300px]] | ||
*[[File:SIngle ToF_引脚说明1.png|600px]] | *[[File:SIngle ToF_引脚说明1.png|600px]] | ||
+ | *'''短接TX与RX引脚后上电可实现硬件恢复出厂设置''' | ||
== 产品参数 == | == 产品参数 == | ||
− | *[[File:SIngle ToF_产品参数.png| | + | *[[File:SIngle ToF_产品参数.png|700px]] |
== 使用说明 == | == 使用说明 == | ||
+ | === 演示示例 === | ||
+ | [[File:SIngle ToF_演示视频.mp4|800px]] | ||
+ | |||
=== Modbus协议 === | === Modbus协议 === | ||
*单点TOF激光测距传感器采用了工业标准Modbus协议,Modbus通信指令分为两种,读命令与写命令, | *单点TOF激光测距传感器采用了工业标准Modbus协议,Modbus通信指令分为两种,读命令与写命令, | ||
第34行: | 第38行: | ||
*具体读写格式如下表: | *具体读写格式如下表: | ||
**上位机发送数据帧 | **上位机发送数据帧 | ||
− | **[[File:SIngle ToF_发送格式.png| | + | **[[File:SIngle ToF_发送格式.png|600px]] |
**模块回复帧 | **模块回复帧 | ||
− | **[[File:SIngle ToF_接收格式.png| | + | **[[File:SIngle ToF_接收格式.png|600px]] |
− | ** | + | **示例:读取测量距离 |
− | 发送指令:50 03 00 34 00 01 c8 45 | + | ***发送指令:50 03 00 34 00 01 c8 45 |
− | 接受数据:50 03 02 07 0B 06 7F | + | ***接受数据:50 03 02 07 0B 06 7F |
− | 数据解析: | + | ***数据解析: |
− | + | ****发送:0x50为Modbus ID(默认),0x03为命令号(读命令),0x34为寄存器地址(测量数据),0x01为读取长度(一位),0xc8 0x45为CRC校验位 | |
− | + | ****接收:0x50为Modbus ID(默认),0x03为命令号(读命令),0x02为数据长度(两位),0x07 0x0B为测量数据(0x070B对应的十进制为1803,测量距离为18036mm),0x06 0x7F为CRC校验位。 | |
+ | |||
+ | === Modbus寄存器 === | ||
+ | *'''系统恢复''' | ||
+ | **寄存器地址:0x00 | ||
+ | **发送格式: | ||
+ | **[[File:SIngle ToF_寄存器1.png|600px]] | ||
+ | **说明(0xXX): | ||
+ | ***写入0x01,传感器恢复出厂设置 | ||
+ | ***写入0x02,传感器重启 | ||
+ | |||
+ | *'''波特率设置''' | ||
+ | **寄存器地址:0x04 | ||
+ | **发送格式: | ||
+ | **[[File:SIngle ToF_寄存器2.png|600px]] | ||
+ | **说明(0xXX): | ||
+ | ***写入0x00,设置波特率为2400 | ||
+ | ***写入0x01,设置波特率为4800 | ||
+ | ***写入0x02,设置波特率为9600 | ||
+ | ***写入0x03,设置波特率为19200 | ||
+ | ***写入0x04,设置波特率为38400 | ||
+ | ***写入0x05,设置波特率为57600 | ||
+ | ***写入0x06,设置波特率为115200(默认) | ||
+ | ***写入0x07,设置波特率为230400 | ||
+ | ***写入0x08,设置波特率为460800 | ||
+ | ***写入0x09,设置波特率为921600 | ||
+ | |||
+ | *'''Modbus ID设置''' | ||
+ | **寄存器地址:0x1A | ||
+ | **发送格式: | ||
+ | **[[File:SIngle ToF_寄存器3.png|600px]] | ||
+ | **说明(0xXX): | ||
+ | ***写入范围为0x00~0xFE,出厂设置默认为0x50 | ||
+ | |||
+ | *'''测量数据''' | ||
+ | **寄存器地址:0x34 | ||
+ | **发送格式: | ||
+ | **[[File:SIngle ToF_寄存器4.png|600px]] | ||
+ | **说明: | ||
+ | ***读取数据高8位与距离低8位 | ||
+ | |||
+ | *'''系统模式''' | ||
+ | **寄存器地址:0x38 | ||
+ | **发送格式: | ||
+ | **[[File:SIngle ToF_寄存器5.png|600px]] | ||
+ | **说明(0xXX): | ||
+ | ***写入0x00,传感器进入串口打印模式,直接打印字符串。 | ||
+ | ***写入0x01,传感器进入Modbus模式(默认)。 | ||
+ | ***写入0x02,传感器进入校准模式,校准完成后自动恢复为Modbus模式。 | ||
+ | === 上位机 === | ||
+ | *'''硬件准备:'''Single ToF模块、USB转TTL模块、电脑 | ||
+ | *'''硬件连接:''' | ||
+ | **[[File:SIngle ToF_上位机1.png|600px]] | ||
+ | *'''使用步骤''' | ||
+ | **将Single ToF接入USB转TTL模块的接口,将接好线的USB转TTL模块插入电脑USB接口,打开[[:File:SIngle ToF_windows上位机.zip|上位机]]软件。 | ||
+ | **点击上位机软件中的 ''刷新串口'' ,然后选择模块对应的端口号,选择好端口号都点击 ''连接'' 。此时右侧的对话框内会出现 ''串口打开成功'' 字样。 | ||
+ | **[[File:SIngle ToF_上位机2.png|400px]][[File:SIngle ToF_上位机3.png|400px]] | ||
+ | **点击左下角的 ''添加设备'' ,在出现的对话框内需要输入模块ID(默认ID为0x50),然后点击 ''OK''。 | ||
+ | **[[File:SIngle ToF_上位机4.png|400px]][[File:SIngle ToF_上位机5.png|400px]] | ||
+ | **设置ID成功后会弹出新的界面出来用来查看测量距离以及对模块进行设置,同时主界面的右侧会出现 ''添加设备成功 ID:0x50'' 字样。 | ||
+ | **[[File:SIngle ToF_上位机6.png|600px]] | ||
+ | *'''校准:''' | ||
+ | **连接模组。 | ||
+ | **将模组放在距离白纸10cm的位置,点击 ''校准'' 按钮,校准对应ID的模组。 | ||
+ | **[[File:SIngle ToF_上位机7.png|300px]] | ||
+ | *'''设置ID:''' | ||
+ | **连接模组。 | ||
+ | **点击 ''设置ID'' 按钮,填入新的ID,范围01~fe,十六进制。 | ||
+ | **重启模组生效,生效后需要用新ID重新连接模组。 | ||
+ | **[[File:SIngle ToF_上位机8.png|300px]] | ||
+ | *'''恢复出厂:''' | ||
+ | **连接模组。 | ||
+ | **点击 ''恢复出厂'' 按钮。 | ||
+ | **模组重启生效,生效后需要用默认ID(50)重新连接模组。 | ||
+ | **恢复出厂后会清除校准参数,需重新校准。 | ||
+ | **[[File:SIngle ToF_上位机9.png|300px]] | ||
+ | *'''重启:''' | ||
+ | **连接模组。 | ||
+ | **点击 ''重启'' 按钮,对应ID的模组会重启。 | ||
+ | **[[File:SIngle ToF_上位机10.png|300px]] | ||
+ | |||
+ | === Arduino === | ||
+ | *'''硬件准备:'''Single ToF模块、Arduino | ||
+ | *'''硬件连接:''' | ||
+ | **[[File:SIngle ToF_arduino1.png|600px]] | ||
+ | *'''使用步骤:''' | ||
+ | **将Single ToF接入Arduino的接口,将接好线的Arduino接入电脑。 | ||
+ | **用Arduino IDE打开代码,并选择对应的板型和串口号。 | ||
+ | ***[[File:SIngle ToF_arduino2.png|400px]] | ||
+ | **根据实际传感器与arduino的硬件连接修改传感器连接的串口的IO口编号。 | ||
+ | ***[[File:SIngle ToF_arduino3.png|600px]] | ||
+ | **根据实际情况修改传感器数量和传感器ID | ||
+ | ***[[File:SIngle ToF_arduino4.png|800px]] | ||
+ | **编译和上传 | ||
+ | **打开串口监视器,波特率选择115200,观察结果。 | ||
+ | ***[[File:SIngle ToF_arduino5.png|600px]] | ||
+ | |||
+ | === 树莓派 === | ||
+ | *硬件准备:Single ToF模块、树莓派 | ||
+ | *硬件连接: | ||
+ | *[[File:SIngle ToF_树莓派1.png|600px]] | ||
+ | *使用步骤 | ||
+ | **给SD卡烧录好树莓派系统,并将例程拷贝到树莓派的系统文件内。 | ||
+ | **将Single ToF接入树莓派的接口,将烧录好系统的SD卡插入树莓派。 | ||
+ | **打开树莓派串口功能。 | ||
+ | '''执行指令''':sudo raspi-config | ||
+ | '''选择''':Interfacing Options | ||
+ | '''选择''':Serial | ||
+ | '''选择''':NO(Would you like a login shell to be accessible over serial?) | ||
+ | '''选择''':YES(Would you like the serial port hardware to be enabled) | ||
+ | '''选择''':YES(The serial login shell is disabled.....) | ||
+ | 重启树莓派 | ||
+ | |||
+ | **根据实际硬件连接情况在PC端修改代码中的传感器数量和传感器ID。 | ||
+ | **[[File:SIngle ToF_树莓派2.png|600px]] | ||
+ | **跳转到例程所在文件的位置,使用gcc编译 | ||
+ | <pre> | ||
+ | sudo gcc vl53_tof.c -o vl53_tof | ||
+ | </pre> | ||
+ | :*[[File:SIngle ToF_树莓派3.png|800px]] | ||
+ | :*执行编译生成的可执行文件,观察结果 | ||
+ | <pre> | ||
+ | sudo ./vl53_tof | ||
+ | </pre> | ||
+ | :*[[File:SIngle ToF_树莓派4.png|600px]] | ||
+ | |||
+ | == 产品资料 == | ||
+ | *[[:File:SIngle ToF_windows上位机.zip|上位机]] | ||
+ | *[[:File:SIngle ToF_arduino例程.zip|Arduino例程]] | ||
+ | *[[:File:SIngle ToF_树莓派例程.zip|树莓派例程]] | ||
+ | |||
+ | == FAQ == | ||
+ | {{Service00}} |
2024年9月2日 (一) 14:16的最新版本
| ||||||||||||||||||||||
| ||||||||||||||||||||||
| ||||||||||||||||||||||
|
目录
测距原理
TOF是Time of Flight的缩写,即飞行时间。具体是指通过周期性的向外发出红外光调制波,当调制波遇到被测目标后反射,然后用传感器接收从被测目标反射回来的调制波。通过测量调制波往返的相位差,可得到飞行时间,从而计算出传感器与物体目标之间的相对距离。示意图如下所示。
引脚说明
产品参数
使用说明
演示示例
Modbus协议
- 单点TOF激光测距传感器采用了工业标准Modbus协议,Modbus通信指令分为两种,读命令与写命令,
- 读命令(0x03):读取相应寄存器数据。
- 写命令(0x06):向相应寄存器写入数据。
- 具体读写格式如下表:
Modbus寄存器
- 波特率设置
- 系统模式
上位机
- 硬件准备:Single ToF模块、USB转TTL模块、电脑
- 硬件连接:
- 使用步骤
- 将Single ToF接入USB转TTL模块的接口,将接好线的USB转TTL模块插入电脑USB接口,打开上位机软件。
- 点击上位机软件中的 刷新串口 ,然后选择模块对应的端口号,选择好端口号都点击 连接 。此时右侧的对话框内会出现 串口打开成功 字样。
- 点击左下角的 添加设备 ,在出现的对话框内需要输入模块ID(默认ID为0x50),然后点击 OK。
- 设置ID成功后会弹出新的界面出来用来查看测量距离以及对模块进行设置,同时主界面的右侧会出现 添加设备成功 ID:0x50 字样。
- 校准:
- 设置ID:
- 恢复出厂:
- 重启:
Arduino
- 硬件准备:Single ToF模块、Arduino
- 硬件连接:
- 使用步骤:
树莓派
- 硬件准备:Single ToF模块、树莓派
- 硬件连接:
- 使用步骤
- 给SD卡烧录好树莓派系统,并将例程拷贝到树莓派的系统文件内。
- 将Single ToF接入树莓派的接口,将烧录好系统的SD卡插入树莓派。
- 打开树莓派串口功能。
执行指令:sudo raspi-config 选择:Interfacing Options 选择:Serial 选择:NO(Would you like a login shell to be accessible over serial?) 选择:YES(Would you like the serial port hardware to be enabled) 选择:YES(The serial login shell is disabled.....) 重启树莓派
sudo gcc vl53_tof.c -o vl53_tof
sudo ./vl53_tof
产品资料
FAQ
|