超声波坐标系2.0
本文的内容:本文描述了我的坐标确定系统的操作原理以及其制造经验。 本文并不是制造导航系统的说明,因为在一篇文章中描述起来并不那么简单。

本文是我上一篇文章的思想的发展:
habr.com/en/post/451408系统结构
坐标确定系统具有以下结构图:

图 图1是用于确定坐标的超声系统的示意图。
让我们更仔细地考虑每个元素。
超声波接收器



图 2-开发超声波接收器(从上到下)。
最初,接收器由一个模块组成,并且房间的覆盖范围很小,在那时,我没有将信号数字化,而只是从传感器接收到常规控制器发出的长度。
然后,为了增加覆盖范围,我决定制作一个由三个传感器组成的模块,同时将这些传感器的数据数字化并传输到PC上,在PC上计算距离和坐标。 测试了三分量接收器之后,我发现如果您自己处理信号,那么一个接收器就足够了。
结果,接收器再次成为一个组成部分,但是由于我当前正在处理信号,因此覆盖范围变得相当大。 数字化后,信号现在在STM32中进行处理,它仅输出到输出的距离。
组成:
- STM32-用于数字化超声信号并计算到发射器的距离;
- HC-SR04-我做了一点修改,现在可以从其输入端接收信号,如图3所示;
- RS485-将发射器的距离传输到PC。

图 3-数字化超声信号。

图 4-上图区域4700-5200中的超声信号。
超声波发射器



图 5-发射器的展开(从上到下)。
从图5中可以看到,起初我只是拉起HC-SR04传感器上的Trig脚,这并不是最好的系统,只是因为我无法确定可以产生多少个超声波,我无法改变其功率,并且这个发射器够大的
然后,我创建了第二个版本,该版本更加繁琐,但我已经可以使用直接连接到超声扬声器的STM32和L293D来调节所有功能。 现在,我不再使用标准的5伏电压,而是施加了17伏电压,这大大增加了工作面积。 我还添加了无线电模块和RS485接口,从而使该模块独立。
经过一系列测试后,由于您在上一张图片中看到的结果,我决定将发射器减小到合适的尺寸,并将其放得更紧。
组成:- STM32-通过无线电通道接收Trig命令(开始测量距离)并发出超声波信号,还将从无线电模块接收的命令发送到RS485(我将其用于移动平台的远程控制);
- RS485-用户的设备信息接口;
- DC-DC升压-将发射器的5V电源转换为17V电源;
- L293D-我用来产生电压为17V的强超声信号;
- nRF24-无线电频道;
- 发射器-从HC-SR04模块中拉出的6个发射器。
基本模块

图 6-基本模块。
组成:- STM32-将Trig发送到发射器和接收器,从PC接收USB命令,以通过无线电通道传输到发射器(又称移动模块);
- nRF24-将Trig发送到发射器并将命令发送到发射器。
PC模块
通过RS485适配器将PC连接到所有超声波接收器,在此接口上,它们从接收器接收所有长度,并计算移动模块的坐标。 它通过USB连接到基本模块,并通过它将控制命令传输到移动模块。
模块在工作区域中的位置
角落放置超声接收器的房间地图如下所示:

图 7-传感器位置的一般概念。

图 8-磅秤的顶视图(带有圆圈的圆圈,其中带有数字,指示传感器)。
超声坐标确定系统的工作算法
- 基本模块向发射器(通过空中)和接收器(通过电线)发送Trig命令。
- 发射器开始发射,接收器开始收听广播。
- 每个接收到超声波信号的接收器都记录了Trig命令和该信号接收时间之间的时间,并将其转换为距离。
- RS485接收器在PC上从发射器向自己发送距离。
- PC计算发射器的坐标。
系统运作
运行所有这些,我们得到对象的坐标,精度取决于房间中的位置。 在最佳位置,误差不会超过几厘米,在最坏的地方……您可以在图9中看到所有内容。

图 9-在房间内移动发射器。
此图中有四组坐标,因为我们有四个接收器,而要确定三维空间中的坐标,我们只需要三个,那么我们就有四个接收器组合。
从图中可以看出,通常,系统正确地确定坐标,但是在不同的地方,误差是不同的。 我将发射器平行于X轴和Y轴移动,在两米之间的线之间有一个间隔,在半米内的某个位置上有移动,可以在图中看到。 最好的精度是在中心,而在边缘则是不好的,因为超声波信号从那里以大角度落在接收器上,这会在数字化信号中产生失真。
过滤并平均四对坐标后,我们得到以下图片:

图 10-平均轨迹。
不是冰,而是冰。
有趣的是,我将向您展示3D的外观,因为我们还有第三个坐标,尽管在我的项目中不需要,因为移动机器人只能在飞机上移动。

图 11-3D轨迹。
正如我们所看到的,所有点都大致位于同一平面上,这是正确的,因为我将发射器沿地面推进而没有将其卸下。
这是一个带有发射器的移动平台未成功通过的示例,其轨迹清晰可见。 根据计划,平台应该沿着矩形路径返回起点,但没有成功,在接下来的文章中,我将告诉您原因。

图 12-移动平台的运动轨迹。
实际问题
我目前有许多紧急问题,如果有人可以提出建议,请在评论中或在VK上写下:
vk.com/b__s__v1.
接收超声信号的最佳方法是什么? 我现在用来接收和放大超声波信号的HC-SR04传感器不是最佳选择。 首先,因为它们始终只接收一个频率的信号,并且您无法将信号源与它们进行频率分离(这对我来说很有趣),而且它们体积太大,我非常依赖它们。
2.
如何消除房间不同角落的坐标变形? 在我画在地板上的网格上,可以看到有时直线开始偏离,尽管我总是平稳地移动移动模块,并且我需要以某种方式摆脱它。
3.
对于nRF24,信号消失。 当模块关闭时,就没有问题了,但是值得一提的是,将它们分散几米并自己站在它们之间,因为消息会通过它们。 我不必在那里重新发送消息,因为我在此通道上传输时钟信号,并且它们应该始终在同一秒内到达。 我有带外部天线的模块,没有天线的基本模块比带天线的模块效果更好。 我什么都不懂,力量最大。
4.
项目推广地点。 如果有人用英语知道像Habr这样的国际站点,请丢弃这些链接,否则我没有发现任何不错的东西,但是stackoverflow,这些只是问题和答案,并不足以发布此类文章。
5.
意见和建议。 如果有人想说出来,我将很高兴提出批评和建议。
尽管时间快要结束了,但这还远远没有结束我的项目,但是如果有兴趣的话,我将写一篇文章,介绍移动机器人如何在我房间的给定坐标下基于该系统运行。