导航菜单
Toggle navigation
微雪商城
微雪课堂
Raspberry Pi
主板/套件
显示屏
摄像头
扩展板
笔记本
机器人
游戏机
Android/Linux主板
人工智能
主板/套件
显示屏
摄像头
扩展板
机器人
显示屏
LCD/OLED
e-Paper
模块
远距离无线通信
近距离无线通信
有线通信/接口转换
摄像头/音视频
传感器
电机/舵机
大杂烩
机器人
智能车
驱动器/传感器
机械手/云台控制
MCU/FPGA
Arduino
micro:bit
LPC
FPGA
查看“TOF Laser Range Sensor”的源代码
←
TOF Laser Range Sensor
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
<div class="wiki-pages blue-color"> <div class="tabber"> {{外围模块|colorscheme=black |name = TOF Laser Range Sensor |img=[[File:TOF-Laser-Range-Sensor-1.jpg|360px |alt=TOF-Laser-Range-Sensor|link=https://{{SERVERNAME}}/shop/TOF-Laser-Range-Sensor.htm | TOF Laser Range Sensor]] |category1=光传感器 |category2=传感器 |brand=Waveshare |feature = 激光传感器 | interface1 =UART | interface2 =CAN |Product1 = {{Product List|Modules/Sensors/Light/TOF}} }} <div class="tabbertab" title="说明"> ==产品简介== TOF Laser Range Sensor是一款基于TOF (飞行时间) 技术的激光测距传感器,内置控制器和测距算法。 测距范围可达5m,精度高达±1.5cm,分辨率可到1mm。支持UART和CAN通信,支持主动与查询输出数据,支持级联测距。 可以作为测距工具进行距离检测,也可作为机器人避障/路线规划,还可用于无人机定高/天花板检测等领域。 ===产品特点=== *基于TOF (飞行时间) 激光测距技术 *支持UART、CAN通信 (UART、CAN共用接口) *支持短、中、长三种距离测量模式 *支持多种FOV角度设置,可以满足多种场景需求 *支持输出距离测量值dis、距离状态dis status、信号强度signal strength等信息 *支持两种输出方式:主动输出与查询输出 *支持多模块级联 *支持升级固件 *3.7 ~ 5.2V供电,防反接保护 *功耗约290mW *940nm激光符合IEC 60825-1:2014第3版规定的Class1标准 ===产品参数=== <div style="margin:2px auto;float:left;"> {| style="border-collapse: collapse;border:1px solid #cccccc;color: #5e5e5e;margin: auto;" |- ! style="border:1px solid #cccccc;text-align:center;padding:5px;" rowspan="3" | 典型测距范围<br/>(0.01~5.00m) | style="border:1px solid #cccccc;padding:5px;" | 短距:0.012~2.16m |- | style="border:1px solid #cccccc;padding:5px;" | 中矩:0.012~3.60m |- | style="border:1px solid #cccccc;padding:5px;" | 长距:0.01~5.00m |- ! rowspan="3" style="border:1px solid #cccccc;text-align:center;padding:5px;" | 典型测距精度 | style="border:1px solid #cccccc;padding:5px;" | 短距:精度±1.0cm,标准差<0.3cm |- | style="border:1px solid #cccccc;padding:5px;" | 中距:精度±1.0cm,标准差<1.5cm |- | style="border:1px solid #cccccc;padding:5px;" | 长距:精度±1.5cm,标准差<0.5cm@0.01~3m,<br/>标准差<8cm@3~5m |- ! style="border:1px solid #cccccc;text-align:center;" | 测量分辨率 | style="border:1px solid #cccccc;padding:5px;" | 1mm |- ! style="border:1px solid #cccccc;text-align:center;padding:5px;" | 波长 | style="border:1px solid #cccccc;padding:5px;" | 940nm (符合Class1标准) |- ! style="border:1px solid #cccccc;text-align:center;padding:5px;" | 视场角 (FOV) | style="border:1px solid #cccccc;padding:5px;" | 15°~27° (多档位可调) |- ! rowspan="2" style="border:1px solid #cccccc;text-align:center;" | 通信接口<br/>(UART/CAN) | style="border:1px solid #cccccc;padding:5px;" | UART (2个接口可同时作为UART接口,TTL信号线电平3.3V) |- | style="border:1px solid #cccccc;padding:5px;" | CAN (2个接口可同时作为CAN接口) |- ! rowspan="2" style="border:1px solid #cccccc;text-align:center;padding:5px;" | 通信波特率 | style="border:1px solid #cccccc;padding:5px;" | UART:115200~3000000bps (默认921600bps) |- | style="border:1px solid #cccccc;padding:5px;" | CAN:100000~3000000bps (默认100000bps) |- ! style="border:1px solid #cccccc;text-align:center;padding:5px;" | 级联数量 | style="border:1px solid #cccccc;padding:5px;" | UART接口支持级联多达8个,CAN接口支持级联多达7个 |- ! style="border:1px solid #cccccc;text-align:center;padding:5px;" | 供电电压 | style="border:1px solid #cccccc;padding:5px;" | 3.7~5.2V |- ! style="border:1px solid #cccccc;text-align:center;padding:5px;" | 产品功耗 | style="border:1px solid #cccccc;padding:5px;" | 290mW (UART主动输出,长距模式供电电压5.0V,电流58mA) |- ! style="border:1px solid #cccccc;text-align:center;padding:5px;" | 产品重量 | style="border:1px solid #cccccc;padding:5px;" | 2.7g |- ! style="border:1px solid #cccccc;text-align:center;padding:5px;" | 产品尺寸 | style="border:1px solid #cccccc;padding:5px;" | 35.58 × 12 × 8.05mm (长 × 宽 × 高) |} </div> <div class="sep0px"></div> ===应用场景=== *无人机定高、天花板检测 *机器人避障 *测量与检测 *智能手势控制 *1维手势识别 ==工作原理== TOF是一种绝对距离检测技术,即传感器发出经过调试的近红外光,遇物体后反射,传感器通过计算光线发射和反射时差或相位差,来换算被拍摄景物的距离,以产生深度信息。相比于双目方案与3D结构光方案,TOF具有工作距离远,适用场景广,较远距离精度高等优点。因此常被应用于人员接近检测、机器人避障、照相机自动对焦等场合。室外环境中有来自太阳光的近红外光,会对模块的测量效果产生影响。 [[File:TOF-Laser-Range-Sensor-work.jpg|600px]] ==功能描述== ===【ID | 身份标识】=== *ID是用于区分不同传感器而设定的一个变量,在级联连接时用于识别各个传感器。 ===【Interface & Baudrate | 接口与波特率】=== TOFSense支持配置为UART与CAN两种通信方式:<br /> *UART串口通信波特率设置范围如下: {| class="wikitable" style="padding:5px;" |- ! UART串口波特率 !! 说明 |- | 115200,230400,460800,921600,1000000,1200000,2000000,3000000 || 默认波特率为921600 |} *CAN通信波特率设置范围如下: {| class="wikitable" |- ! CAN波特率 !! 说明 |- | 100000,250000,500000,1000000,2000000,3000000 || 默认波特率为100000 |} 接口数据输出模式设置:<br /> *Active Output | 主动输出: **主动输出模式仅可在单模块时使用,该模式下模块以10Hz的频率主动输出测量信息。 **主动输出模式配置如下图:<br />[[File:TOF-UART-Active-Output-setting.jpg|400px]] [[File:TOF-CAN-Active-Output-setting.jpg|400px]] *Query Output | 查询输出: **查询输出模式可在单模块与级联时使用,该模式下通过控制器向期望查询模块发送包含该模块ID的查询指令,模块即可输出一帧测量信息。 **查询输出模式配置如下图:<br />[[File:TOF-UART-Query-Output-setting.jpg|400px]] [[File:TOF-CAN-Query-Output-setting.jpg|400px]] ===【Distance Status | 距离状态指示】=== 模块可以输出当前距离状态,用户可结合距离状态进行数据处理,距离状态含义如下: {| class="wikitable" style="padding:5px;" |- ! 数值 !! 说明 |- | 0 || 测量距离有效 |- | 1 || 标准差大于15mm |- | 2 || 信号强度低于1Mcps |- | 4 || 相位超出界限 |- | 5 || HW或VCSEL出现故障 |- | 7 || 相位不匹配 |- | 8 || 内部算法下溢 |- | 14 || 测量距离无效 |} ===【Signal Strength | 信号强度】=== *指示当前返回信号的强度,该值越大表明返回信号越强。 ===【FOV | 视场角】=== *FOV视场角的大小决定了TOFSense的视野范围,模块可以更改X方向视场角fov.x、Y方向视场角fov.y、X方向偏移fov.x_offset、Y方向偏移fov.y_offset。<br />X、Y方向视场角设置范围15°~27°,X、Y方向视场角偏移设置范围-6°~ 6°。可通过上位机软件进行设置。 *模块初始视场角参数fov.x=27°、fov.y=27°、fov.x_offset=0°、fov.y_offset=0°。<br />通过设置X方向视场角25°、Y方向视场角15°、X方向偏移1°、Y方向偏移-1°。<br />可以将模块感兴趣区域变为下图所示:<br />[[File:TOF-FOV-show-1.jpg|600px]] ''说明:较小的FOV 可以提高模块狭小空间以及小物体的探测性能,但是FOV视场角的改变也会对模块的最远测距距离产生影响,视场角越小,最远测距距离越小。'' ===【Indicator Light | 指示灯】=== *指示灯共两种闪烁状态,快速闪烁0.1S闪烁一次,慢速闪烁1S闪烁一次。LED状态与含义如下: {| class="wikitable" |- ! 状态 !! 说明 |- | 快速闪烁(间隔0.1S) || 模块启动阶段 |- | 快速闪烁(间隔0.1S) || 模块固件更新 |- | 慢速闪烁(间隔1S) || 模块正常工作 |} ===【Function Key | 功能按键】=== * 用于在CAN通信模式下进行参数配置。按住按键上电直到指示灯慢速闪烁,则强制进入UART输出模式。 ===【CascadeRanging | 级联测距】=== *将多个传感器配置为不同ID并串联起来,通过一个通信接口即可读取到所有传感器的测距信息。连接示意图如下图:<br />[[File:TOF-CascadeRanging-1.jpg|800px]] ''说明:级联测距下,适合UART查询、CAN查询、CAN主动输出三种方式。'' ==协议解析== *协议由 Frame Header(帧头)、Function Mark(功能字)、Data(数据)、Sum Check(校验和)组成。 **其中 Frame Header、Function Mark 为固定不变的数值; **Data 为传输的数据内容; **Sum Check 为 Frame Header、Function Mark、Data 相加求和(即前面所有字节相加)后的最低字节。 *协议组成: Frame Header + Function Mark + Data + Sum Check ''说明:协议包遵循小端模式原则,即低字节在前,高字节在后。'' *TOFSense _UART_Frame: **'''数据来源:''' 将模块连接上位机,配置UART为主动输出模式。 **'''原始数据:''' 57 00 ff 00 9e 8f 00 00 ad 08 00 00 03 00 ff 3a **'''解析表:'''<br /> {| class="wikitable" |- ! Data !! Type !! Length (Bytes) !! Hex !! Result |- style="background:#ddd;" | Frame Header || uint8 || 1 || 57 || 0x57 |- style="background:#ddd;" | Function Mark || uint8 || 1 || 00 || 0x00 |- | reserved || uint8 || 1 || ff || * |- | id || uint8 || 1 || 00 || 0 |- | System_time || uint32 || 4 || 9e 8f 00 00 || 36766ms |- | dis*1000 || uint24 || 3 || ad 08 00 || 2.221m |- | dis_status || uint8 || 1 || 00 || 0 |- | signal_strength || uint16 || 2 || 03 00 || 3 |- | reserved || * || 1 || ... || * |- style="background:#ddd;" | Sum Check || uint8 || 1 || 3a || 0x3a |} *TOFSense _UART_Read_Frame: **'''数据来源:''' 将模块连接上位机,配置为UART查询输出模式,id为0,通过上位机发送下列数据实现数据查询。 **'''原始数据:''' 57 10 FF FF 00 FF FF 63 **'''解析表:'''<br /> {| class="wikitable" |- ! Data !! Type !! Length (Bytes) !! Hex !! Result |- style="background:#ddd;" | Frame Header || uint8 || 1 || 57 || 0x57 |- style="background:#ddd;" | Function Mark || uint8 || 1 || 00 || 0x00 |- | reserved || uint8 || 2 || ff || * |- | id || uint8 || 1 || 00 || 0 |- | reserved || uint8 || 2 || ff || * |- style="background:#ddd;" | Sum Check || uint8 || 1 || 3a || 0x3a |} *TOFSense _CAN_Frame: **'''数据来源:''' 模块配置为CAN主动输出模式,id为1,连接CAN接收设备。 **'''原始数据:''' AD 08 00 00 03 00 FF FF **'''解析表:'''<br /> {| class="wikitable" |- ! Field name !! Part !! Level !! Type !! Length(bits) !! Hex !! Result |- style="background:#ddd;" | Start Of Frame || SOF || || * || 1 || * || * |- style="background:#ddd;" | Arbitration Field || ID || || * || 11 || 0x200+id || 0x201 |- style="background:#ddd;" | Arbitration Field || RTR || || * || 1 || * || * |- style="background:#ddd;" | Control Field || IDE || || * || 1 || * || * |- style="background:#ddd;" | Control Field || r0 || || * || 1 || * || * |- style="background:#ddd;" | Control Field || DLC || || * || 4 || * || * |- | Data Field || dis*1000 || || uint24 || 24 || ad 08 00 || 2.221m |- | Data Field || dis_status || || uint8 || 8 || 00 || 0 |- | Data Field || signal_strength || || uint16 || 16 || 03 00 || 3 |- | Data Field || reserved || || * || 16 || * || * |- style="background:#ddd;" | CRC Field || CRC || || * || 15 || * || * |- style="background:#ddd;" | CRC Field || CRC_delimiter || || * || 1 || * || * |- style="background:#ddd;" | ACK Field || ACK Slot || || * || 1 || * || * |- style="background:#ddd;" | ACK Field || ACK_delimiter || || * || 1 || * || * |- style="background:#ddd;" | End Of Frame || EOF || || * || 7 || * || * |} *TOFSense _CAN_Read_Frame: **'''数据来源:''' 模块配置为CAN查询输出模式,id为1,连接CAN查询设备,配置id_s为2。 **'''原始数据:''' FF FF FF 01 FF FF FF FF **'''解析表:'''<br /> {| class="wikitable" |- ! Field name !! Part !! Level !! Type !! Length(bits) !! Hex !! Result |- style="background:#ddd;" | Start Of Frame || SOF || || * || 1 || * || * |- style="background:#ddd;" | Arbitration Field || ID || || * || 11 || 0x400+id_s || 0x402 |- style="background:#ddd;" | Arbitration Field || RTR || || * || 1 || * || * |- style="background:#ddd;" | Control Field || IDE || || * || 1 || * || * |- style="background:#ddd;" | Control Field || r0 || || * || 1 || * || * |- style="background:#ddd;" | Control Field || DLC || || * || 4 || * || * |- | Data Field || reserved || || uint24 || * || * || * |- | Data Field || id || || uint8 || 8 || 01 || id = 1 |- | Data Field || reserved || || uint16 || * || * || * |- style="background:#ddd;" | CRC Field || CRC || || * || 15 || * || * |- style="background:#ddd;" | CRC Field || CRC_delimiter || || * || 1 || * || * |- style="background:#ddd;" | ACK Field || ACK Slot || || * || 1 || * || * |- style="background:#ddd;" | ACK Field || ACK_delimiter || || * || 1 || * || * |- style="background:#ddd;" | End Of Frame || EOF || || * || 7 || * || * |} ==软件说明== TOF Assistant是TOF激光测距模块配套的调试软件,主要作用为:配置调试、状态显示、功能应用、固件升级: *'''配置调试:'''用于配置节点相关参数,如ID、工作模式、波特率等。 *'''功能应用:'''用于应用开发,如数据导入导出、运动轨迹存储、历史轨迹回放等。 *'''固件升级:'''用于给产品进行有线固件升级。 ==产品尺寸== *[[File:TOF-Laser-Range-Sensor-details-size.jpg|600px]] ==树莓派使用== ===树莓派环境配置=== *树莓派串口配置 由于树莓派串口默认用于终端调试,如需使用串口,则需要修改树莓派设置。执行如下命令进入树莓派配置: sudo raspi-config 选择Interfacing Options ->Serial ->no -> yes,关闭串口调试功能。 [[File:A7600C1-Cat-Hat-OpenSerial.jpg|800px]]<br> 需要重启 sudo reboot 打开/boot/config.txt文件,找到如下配置语句使能串口,如果没有,可添加在文件最后面: enable_uart=1 重启生效 ===模组参数设置=== TOF Laser Range Sensor模块UART波特率需要通过上位机设置成:921600;<br /> 树莓派使用TOF Laser Range Sensor模块的效果如下:<br> [[File:TOF_Laser_Range_Sensor_raspberry1.jpg|800px]] ===硬件连接=== [[File:TOF-Laser-Range-Sensor-Pi-connected.jpg|800px]]<br> ==Jetson Nano使用== ===硬件连接=== [[File:TOF_Laser_Range_Sensor_jetson_connect.jpg|800px]]<br> ===软件设置=== TOF Laser Range Sensor模块UART波特率需要通过上位机设置成:115200;<br /> Jetson nano使用TOF Laser Range Sensor模块的效果如下:<br> [[File:TOF_Laser_Range_Sensor_jetson_Demo.png|800px]] ==Arduino使用== ===硬件连接=== [[File:TOF-setting-1.png|800px]] [[File:TOF-setting-2.png|400px]] [[File:TOF-Laser-Range-Sensor-Arduino-connected.jpg|800px]] [[File:TOF-Arduino-Test.jpg|800px]] ===软件设置=== TOF Laser Range Sensor模块UART波特率需要通过上位机设置成:115200;<br /> </div> <div class="tabbertab" title="资料"> <!--===文档=== *[[File:TOF-Laser-Range-Sensor-Manual|TOF Laser用户手册]] --> ===程序=== *[[File:TOF-Laser-Range-Sensor-Demo.7z|示例程序]] ===软件=== *[[:File:Waveshare_TOFAssistant.zip|TOF Assistant上位机助手 (Windows 7/10 64位机用)]] *[[:File:Waveshare_TOFAssistant_32bit.zip|TOF Assistant上位机助手 (Windows 7/10 32位机用)]] <!-- ===相关资料=== --> </div> <div class="tabbertab" title="FAQ"><br />{{TOF-Laser-Range-Sensor-FAQ}}</div> <div class="tabbertab" title="售后"><br />{{Service15}}</div> </div>
该页面使用的模板:
模板:Note
(
查看源代码
)
模板:Note/styles.css
(
查看源代码
)
模板:Product List
(
查看源代码
)
模板:Service20
(
查看源代码
)
模板:TOF-Laser-Range-Sensor-FAQ
(
查看源代码
)
模板:外围模块
(
查看源代码
)
返回至
TOF Laser Range Sensor
。