水下超声波测距仪模块。 第二部分

图片

第一部分中,我们描述了开发水下测距仪模块测试版本的过程。 由于我们已经在第一篇文章中实现了建议的更改,因此该共享第二版模块信息的时候到了。

变更#1:临时自动增益控制(GAM)。
在测试模块的第一个版本的过程中,清楚地概述了反射信号从靠近发射器的障碍物滚落的问题。 前一篇文章的一些评论者推荐了VARU。 是的,使用VARU非常合适。 现在,在发送探测脉冲后的最初时刻,可以最小化增益并随时间增加增益。

VARU的实现如方案1所示。

微控制器的DAC产生施加到晶体管Q4的栅极的电压。
对于所施加的晶体管,取决于栅极处的电压,通过实验获得引入的衰减的特性。 根据此特性和用户指定的环境参数,将计算出一个值表,该表通过DMA发送到微控制器的DAC。

实际上,以线性模式工作的晶体管会部分关闭从放大器第一级输出到地的有用信号,从而调节到达放大器后级的信号幅度。

图片

变更#2:升压转换器为输出级供电。
方案编号2。 这里的一切都很简单。 升压转换器使我们可以使发射器有点“大声”。 您可以将输出级的电源电压调整为5至16伏。 对于长距离测量有用的东西。

变更编号3:MEMS陀螺仪/加速度计。
方案编号3。 内置ICM20602芯片。 这将不仅可以获得有关光线路径上物体反射水平的信息,而且可以获得模块此时所处方向(角度)的信息。 对模块进行最简单的扫描(甚至用手转动模块),即可根据激光雷达形成图像的原理获得扫描对象的真实图片。

所做的更改还应包括使用更便宜但不更糟的放大器MCP669-E / ML。 栅极驱动器还选择了最便宜的TPS51604DSGR。
印刷电路板的形状制成圆形,以便更合理地放置在金属外壳内。

为了使副本之间的特性保持紧凑和恒定,变压器是根据平面技术制造的。

铁准备好了。 接下来是什么? 程序员最美好的时刻来了!

尽管基本的底层功能已经在工作中进行了测试(驱动程序管理,与ADC,DAC等的配合使用),但是您仍然需要实现与主机的便捷交互,创建并详细描述可以访问所有模块功能的API。 让我提醒您,出于这些目的,我们选择UART作为物理接口。 这里值得一提的是,团队中对于值得使用的协议类型存在分歧,包括文本或二进制。 一方面,二进制协议速度快,易于在主机端进行处理。 另一方面,文本协议使分析数据交换(甚至在超级终端中)和使用有意义的命令/模块响应变得更加容易。 这是在Putty终端中使用文本命令与模块交互的一个小示例:

图片

通过按TAB键,将显示所有命令的列表。

给出了使用YPR命令的示例,该命令沿三个轴(欧拉角)返回模块方向的当前值。

CHART命令返回探测脉冲路径中物体反射的信号值。 您可以设置测量分辨率(到目前为止,以厘米为单位)和测量数量。

当然,理想的情况是同时支持文本和二进制两种协议版本。 但不幸的是,我们的时间有限,我们希望立即努力为用户提供更可接受的选择。 因此,要求适中:在投票选项中打上标记,这样对您会更方便。

在下一篇文章中,我们将尝试使用模块的全部功能,以便能够扫描水下物体并获得带有这些物体轮廓的图片。

聚苯乙烯
有关团队中第二篇文章的内容的观点有所分歧:干,一点,但现在,既宽敞又精美,但是……“现在”获胜。

我将使用在第二版模块的制造过程中拍摄的一些照片来稀释文本的干燥度。

发射极组件

图片

机加工金属盒

图片

激光打标外壳

图片

组装模块板

图片

Source: https://habr.com/ru/post/zh-CN447868/


All Articles