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

为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


收藏 2 评论10 发布时间:2019-2-25 20:14

举报

10个回答
toofree 回答时间:2019-2-25 23:40:59
嗯,不错
首先得有个激光卷尺,然后拆出模块
wo1357997531 回答时间:2019-8-22 09:56:23
请问这测距仪是基于什么原理的  有没有玩过三角激光测距
点点_木木 回答时间:2019-8-22 17:39:21
wo1357997531 发表于 2019-8-22 09:56
请问这测距仪是基于什么原理的  有没有玩过三角激光测距

不太懂你意思,这是用了现成的激光模块
五哥1 回答时间:2019-8-22 22:05:48
激光测距模块可否用其他容易找到的东西替代?比如激光光头加上接收器
wo1357997531 回答时间:2019-8-23 10:09:49
点点_木木 发表于 2019-8-22 17:39
不太懂你意思,这是用了现成的激光模块

噢噢  效果怎么样
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
请问 楼主 有没有搞过激光三角测距
12下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

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