该项目描述了我关于廉价“X-40”激光卷尺的逆向工程电子器件(激光测距仪模块)的工作。
我创建了自己的固件,允许将此模块用于 DIY 目的。
支持的模块类型有:“512A”和“701A”。 “703A”的工作已由“Damian”确认:链接。
UPD 11/2019:注意:发现较新的“x-40”激光卷尺配有“M88B”模块。 MCU 附近的 PCB 上标记为“88B”。该模块基于STM32F0 MCU(具有QFN-32封装)。我的固件不支持该模块!
UPD 06/2022:添加了对基于 STM32F0 MCU 的较新 U85A/U85B 模块的支持。请参阅 Code/CortexM0 文件夹。
UPD 10/2024:添加了对基于 STM32G0 MCU 的较新 B2A 模块的支持。请参阅 Code/CortexM0_STM32G0 文件夹。
“701A”模块尺寸:25x13x50 毫米。
“U85/B2A”模块尺寸:17x7x41mm,重量:~4g
请参阅 Github 维基了解更多信息!
俄语大文章:https://habr.com/post/327642/
谷歌翻译:链接。
另一个项目页面:https://hackaday.io/project/25515-cheap-laser-tape-measure-reverse-engineering
我已经完成的步骤:
视频(测试测距仪模块):https://youtu.be/bJaUrZ7ZMj4
激光测距模块的主要部件有STM32F100C8T6 MCU、Si5351双PLL、APD(未知型号)、激光二极管、电源。
激光卷尺结构示意图:
关于将激光测距仪模块连接到Arduino的文章:
https://www.hackster.io/iliasam/making-a-cheap-laser-rangefinder-for-arduino-4dd849
视频:https://youtu.be/FA4mfvgpOQQ
UART 数据示例(“Firmware_dist_calculation_fast”):
DIST;01574;AMP;0993;TEMP;1343;VOLT;082rn
DIST - 到物体的距离(以毫米为单位)。
AMP——信号幅度。 TEMP - APD 温度(原始 ADC 值)。
VOLT - APD 电压。字符串长度是恒定的。
距离数据连续传输。
UART 波特率 - 256000。
UART 命令(“Firmware_dist_calculation_fast”):
“E”-启用激光和测量过程。
“D”- 禁用激光和测量过程。
“C”-开始零距离校准。首次启动时需要进行零距离校准。校准前,将任何白色物体放置在距激光带 > 10 厘米的位置。
距离测量速度 - 接近 60 Hz。
距离测量精度在 1 至 10 毫米之间变化,具体取决于距离和表面类型。
为了获得更好的结果,带有 APD 的小板必须远离外部光线。