你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

为Arduino制作便宜的激光测距仪

[复制链接]
木木&点点 发布时间:2019-2-25 20:14
您的Arduino项目需要快速便宜的激光测距仪吗?您可以使用激光卷尺!
1.jpg
硬件组件
Arduino Nano R3          ×     1      
Elecrow OLED 0.96''128x64   ×  1      
X-40激光卷尺     ×  1      
LM2596 DC-DC模块    ×   1      
软件应用程序和在线服务
手动工具和制造机器
烙铁(通用)         
ST-LINK程序员
介绍
您的Arduino项目需要快速便宜的激光测距仪模块吗?
当然,您可以使用专门的模块来完成这项任务,但其中大部分都有很高的价格。VL53L0X / VL53L1X模块价格便宜,但它们具有非常大的视野。
所以我找到了一个解决方案:使用便宜的“X-40”激光卷尺作为激光测距仪。这些设备售价20美元甚至更低,它们可以测量距离达40米,精度约为3毫米。但是有两个问题 - 无法从磁带读取数据并且测量速度很慢 - 小于1 Hz。
为了解决这些问题,我对激光测量仪进行了逆向工程,并为激光测距仪模块的STM32 MCU编写了自己的固件。测量速度对我来说很重要,我可以达到~60 Hz,但最大距离减少到~6 m。
距离测量精度可在1 mm到10 mm之间变化,具体取决于目标颜色和距离。
模块尺寸:25x13x50 mm。
重要通知:您将丢失原始固件,因此该设备不能用作激光胶带测量!
请注意,“X-40”激光卷尺可以对激光测距仪模块进行不同的修改,我的固件仅支持其中一些!
“X-40”并不是使用这种模块的激光卷尺的唯一名称 - 我知道存在几种不同的中国激光卷尺和合适的模块。
1步:拆卸激光卷尺
让我们拆开激光卷尺,从中获取激光测距仪模块。
2.jpg
这就是激光卷尺拆卸前的样子
你需要从机壳上拧下7个螺丝:
3.jpg
请注意,贴纸下面是一个螺钉
拆卸激光卷尺:
4.jpg
激光测距仪模块标记为蓝色
您可以在设备的外壳内看到小型激光测距仪模块。您需要从模块断开带状电缆并从外壳中卸下模块:
5.jpg
激光测距仪模块
请注意,模块标记为“701A”。我的固件仅支持“512A”和“701A”模块版本。我知道存在“703A”版本,现在不支持(我没有测试过)!
如果支持您的模块,则需要从模块中拆除电源线。
2步:编程激光测距仪模块
您需要将专用固件写入模块的MCU以获得所需的功能。
1.首先,你需要焊接一些电线来编程MCU。Pinout如图所示:
6.jpg
电线连接
连接键盘连接器的引脚7-8 - 需要上电。
线路“GND”和“Vbat”必须连接到电源。电源电压范围为+2.7 ... + 3.3V。当为模块供电时,“Vdd”线路上必须有+3.5 V电压。
必须将“GND”,“SWDIO”,“SWCLK”,“NRST”线连接到ST-LINK编程器。“NRST”线非常重要 - MCU的原始固件被锁定,因此需要该线进入MCU进入编程模式。
有些程序员有这条线,有些(便宜)不行,但这个问题有一个解决方法。
另外,一些程序员(如原版“ ST-LINK /V2 ”)需要“Vbat”线与编程器的“VCC / TVCC”线连接。
连接示例(该程序员没有“NRST”行):
7.jpg
ST-Link连接到激光测距仪模块
2.将“ST-LINK实用程序”安装到PC。如果您没有使用该软件的经验,那么Web中有很多教程。
您需要配置实用程序(目标 - >设置):
8.jpg
设置标记值
如果您的程序员有“NRST”输出,您只需打开电源并按下该实用程序上的“目标 - >连接”。
如果它没有这样的行,则需要执行以下步骤:
·  打开电源。
·  将模块的“NRST”线连接到GND。
·  按下公用设施上的“目标 - >连接”。
·  快速断开“NRST”线与GND的连接。
·  实用程序必须显示连接
Yon必须得到这样的图片:
9.jpg
正常连接
3. MCU闪存被锁定以进行读取,因此您需要禁用“读出保护”。您将在此步骤中丢失原始固件!
打开目标 - >“选项字节”菜单。必须有这样的设置:
10.jpg
选项字节菜单
将“读取保护”切换为“已禁用”并按“取消全选”按钮,然后按“应用”按钮。尝试重启模块(断开电源)。
按目标 - >连接。在日志窗口必须有关于成功连接的信息,您必须看到内存内容 - 填充0xFF。现在您可以将自定义固件加载到MCU。
为您的模块选择合适的HEX文件,并使用“ST-LINK实用程序”将其下载到MCU闪存。
步骤3:将激光测距仪模块连接到Arduino
您需要将电线或某个连接器焊接到电路板上的TX焊盘:
11.jpg
701A模块引出线
请参见下面的连接示意图。
首先,您需要检查测距仪模块是否正常工作。在此步骤中,您无需将OLED显示器连接到Arduino - 只需将激光测距仪模块的TX线连接到Arduino的TX线,将模块的电源线连接到+ 3V电源。
创建空草图并将其加载到Arduino。在Arduino IDE中打开“Serial Monitor”。选择波特率:25600
如果测距仪模块工作正常,您将获得相同的数据:
DIST; 01937; AMP; 0342; TEMP; 1223; VOLT;115 DIST; 01937; AMP; 0343; TEMP; 1223; VOLT; 115 DIST; 01938; AMP; 0343; TEMP;1223; VOLT; 115 DIST; 01938; AMP ; 0343; TEMP; 1223; VOLT; 115
其次,您需要组装完整的原理图和显示。
将激光测距仪模块的TX线连接到Arduino的RX线(在加载程序到Arduino时需要断开该线)。
如果一切正常,您将得到相同的结果:
12.jpg
组装的面包板
您可以看到带有3个数字的显示:
·  “COUNT” - 收到的值的计数器
·  “AMPL” - 信号的幅度。下面的符号条(“<--->”)以图形方式显示幅度(以对数标度表示)。
·  最大的价值 - 以米和毫米为单位的距离。
4步:零校准
首次启动后,需要校准激光测距仪模块。
您需要在距模块一定距离处放置一些白色物体。到此对象的距离将变为测距仪模块的零距离。要开始校准过程,您需要从激光卷尺连接键盘并按下最低按钮。模块将发出两次哔声 - 在校准开始时和结束时(校准持续时间接近10秒)。
13.jpg
校准过程
现在您可以使用此激光测距仪模块。
原理图
14.png

0 A  ?. Y7 }$ @
" P9 C+ a. Z1 @+ y
收藏 2 评论12 发布时间:2019-2-25 20:14

举报

12个回答
七哥 回答时间:2019-2-25 23:40:59
嗯,不错
: C5 h: g" K" o$ N2 `首先得有个激光卷尺,然后拆出模块
wo1357997531 回答时间:2019-8-22 09:56:23
请问这测距仪是基于什么原理的  有没有玩过三角激光测距
木木&点点 回答时间:2019-8-22 17:39:21
wo1357997531 发表于 2019-8-22 09:56
; b; S% U- u) d6 F: O1 [请问这测距仪是基于什么原理的  有没有玩过三角激光测距

5 w1 }: `! X' J- o* u不太懂你意思,这是用了现成的激光模块
五哥1 回答时间:2019-8-22 22:05:48
激光测距模块可否用其他容易找到的东西替代?比如激光光头加上接收器
wo1357997531 回答时间:2019-8-23 10:09:49
点点_木木 发表于 2019-8-22 17:39
3 y# `; y" F, e; |不太懂你意思,这是用了现成的激光模块

% O; v6 A. r9 t' g0 ^3 J0 n噢噢  效果怎么样
generalcircuits 回答时间:2019-8-24 09:57:54
看起来很不错,不知道效果咋样
木木&点点 回答时间:2019-8-24 20:00:16
实践出真知
木木&点点 回答时间:2019-8-24 20:01:47
大家感兴趣的话,动手试一试
wo1357997531 回答时间:2019-9-5 09:59:05
请问 楼主 有没有搞过激光三角测距
唐英tcy 回答时间:2019-9-5 12:30:54
学习学习
呵呵wo 回答时间:2021-1-6 10:02:46
好有创意的
呵呵wo 回答时间:2021-1-6 10:03:17
这个测距仪在哪里买的? 我买的另外一个牌子,拆开不是这样的

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版