Arduino固定雷达LIDAR阵列的制作

电子说

1.2w人已加入

描述

步骤1:工具和零件

Arduino

Arduino

工具

此项目需要以下工具:《

烙铁

助焊双手

杜邦压接工具

1.5mm六角扳手

电线涂层清除工具

剪线钳

热胶枪

镊子

放大镜(手机中的物理或应用)

扁嘴钳

零件

本项目使用以下部件:

10x VL53L0X GY-530分线板

Arduino(Uno,Nano,Mega,Zero,Mini等)

面包板和一些面包板电线

AWG#26不同颜色的电线

AWG#30单芯电线

5x Dupont公连接器

5x单针Dupont外壳

10x 3D打印分线板支架

1x 3D打印圆形框架

10x M2x10平头螺钉

10x 0804 LED(蓝色推荐)

10x SOT-23 AO3400 N通道MOSFET

小电容(10~100uF)

分线板

我使用的VL53L0X分线板是GY-530。还有Adafruit版和Pololu版。如果可行,我建议使用Adafruit或Pololu的产品,因为它们可以制作出色的产品,出色的教程和出色的软件库。我在Adafruit的VL53L0X库上进行了测试,并使用了Pololu的VL53L0X库的修改版本。

杜邦连接器

杜邦连接器用于面包板。您可以使用手头的任何其他类型的连接。

螺丝和3D打印件

M2螺丝,支架和圆形框架用于将传感器放置成圆形排列。您可以使用任何其他方法,例如使用卡板,模型木材,粘土,甚至将热胶粘在罐上。

第2步:黑客攻击板

Arduino

Arduino

Arduino

Arduino

检测锥

我用一个模块绘制检测锥。使用大多数3D打印机器人作为目标。距离显示在LED显示屏上,并粗略测量。测量数据记录到Microsoft Excel文件中,并使用曲线拟合功能。最佳拟合是自然对数曲线,有效距离为3厘米至约100厘米。

在60 cm处,单个传感器的检测曲线约为22 cm。对于20厘米宽的目标,雷达阵列的10~15度的圆形间隔应产生可接受的扫描分辨率。

I2C地址

虽然VL53L0X I2C器件地址是可编程的,但需要通过微控制器完全控制XSHUT引脚。执行此操作的顺序为:

电源应用于AVDD。

通过将 ALL 的XSHUT引脚驱动为低电平,所有VL53L0X芯片都进入Hw待机(复位)状态。

每个芯片一次退出复位状态。引导后的默认I2C地址为0x52。

通过I2C命令将芯片地址更改为新地址。例如,0x52更改为0x53。

对所有芯片重复步骤3和4.

理论上,对于7位地址范围,最多可以在同一总线上驱动126个单元。然而,实际上,微控制器的总线电容和吸收电流限制可能/应该限制最大器件数量。

新的I2C地址未存储在VL53L0X芯片中,以防止掉电或复位。因此,每次加电都必须进行一次该过程。这意味着雷达阵列中的每个单元都需要一个宝贵的引脚。对于具有10+或20+单元的雷达带,这对于布线和引脚消耗来说太不友好了。

如STEP1所述,幸运的是VL53L0X芯片上有一个GPIO1引脚,最初用于中断,可以完成这项工作。

GPIO-XSHUTN菊花链

GPIO输出在启动时处于高阻态,在有效时开漏至低电平。根据数据表中的建议,GPIO和XSHUT引脚被拉高至GY-530分线板上的AVDD。为了可靠地将所有VL53L0X芯片置于Hw待机状态(驱动XSHUT为低电平),我们需要为每个XSHUT引脚提供逻辑非门(反相器)。然后我们将一个芯片(第N个芯片)的GPIO输出连接到下游芯片(N + 1芯片)的XSHUTN(XSHUT-NOT)。

上电后,所有GPIO引脚(无效)被上拉,所有后续XSHUT引脚被NOT门驱动为低电平(XSHUTN引脚连接到微控制器的第一个芯片除外) 。下游芯片的I2C地址更改和XSHUT释放是逐个软件完成的。

如果您使用不同的分线板,则需要确保上拉电阻是否到位,并进行适当的调整。

添加LED

在下一步中,将一个小的0805 SMD LED添加到分线板,从XSHUT焊盘连接到相邻电容的GND端子。虽然LED本身不会影响模块的运行,但它确实为我们提供了XSHUT逻辑电平的良好视觉指示。

将LED与XSHUT引脚上的上拉电阻(我的情况下为10k)串联,会引入电压降。而不是3.3v的高逻辑电平,红色0805 LED的正向压降测量为1.6v。虽然这个电压高于数据表中的高逻辑电平(1.12v),但蓝色LED更适合这种黑客攻击。蓝色LED的正向压降约为2.4V,安全地高于芯片的逻辑电平。

添加N-MOS逆变器(逻辑非门)

小型SOT -23 N沟道MOSFET堆叠在我们添加的LED上。需要在分线板上焊接两个端子(D,S),并使用#26线将剩余端子(G)连接到上游板GPIO引脚。

添加SMD元件的注意事项

在不适合的分线板上焊接SMD元件并非易事。如果你还没有听说过0805,SMD,SOT-23,你可能以前没有焊接那些微小的元件。在手工处理这些微小元件时,很常见的是:

小东西刚刚掉下来,永远消失了,

小东西上的小垫子只是剥去。

小东西上的小腿刚破了。

焊锡刚聚集成一团,无法分开。

还有更多。..

如果你还想制作这种雷达,你可以:

将组件更改为更大的包,例如DIP样式。

获得比实践和消费所需的更多组件。

步骤3:焊接0805 LED

Arduino

Arduino

Arduino

Arduino

焊接0805 SMD LED

在非SMD设计的分线板上手工焊接0805 LED并非易事。以下步骤是我建议焊接LED。

使用辅助手握住分线板。

在SMD电容器边缘和“XSHUT”焊盘上放置一些焊膏。

使用烙铁在电容器边缘添加一些额外的焊料。

在0805 LED的两端涂上一些焊膏。

使用烙铁在0805 LED的两端加一些锡。

使用镊子将LED放置在照片中。阴极端通常有一条标记线。在我的例子中,阴极端有一条绿线。将阴极端放在电容器端。

使用镊子在LED上向电容器添加轻微压力,并通过同时向电容器端加热来将LED焊接到电容器端。不要用力按压LED。它的盖子可能会在高温和过大压力下破裂。焊接后,在侧面添加温和的压力,测试LED是否焊接到位。

现在将LED焊接在XSHUT浸渍垫上。此步骤应该更容易。

注意:图中所示的电容器端是该分线板上的接地端子。并且通过电阻器将上拉焊盘XSHUT上拉。

测试LED

当您接通电源(ex 5V)并接地到分线板时,LED应该亮起。

步骤4:焊接N沟道MOSFET

Arduino

Arduino

Arduino

Arduino

焊接AO3400 N沟道MOSFET

该MOSFET采用SOT-23封装。我们需要将它“堆叠”在LED上,并添加一根电线:

在所有三个端子上放一些焊膏和锡。

使用镊子将MOSFET放置在0805 LED的顶部。 S端子应接触电容器顶部

用电容器端焊接S端子,如图所示。

切割一小段AWG#30单芯线,并去除约1cm的涂层。

使用烙铁从下方熔化XSHUT孔中的焊料,并从上方插入#30线,如图所示。

将导线的上端焊接到MOSFET D端子。

切断多余的电线。

注意:MOSFET S端子连接到电容器端,如图所示。这一端是地面终端。 MOSFET D端子连接到原始XSHUT引脚。

此时端子G未连接。它的位置恰好高于一些上拉电阻。确保它们之间有间隙(N-MOS和电阻)并且彼此不接触。

步骤5:连接传感器阵列

Arduino

Arduino

Arduino

公共总线接线

公共巴士包括:

Vcc电源。照片中的红色。我正在使用具有5v逻辑的arduino nano。分线板具有LDO和电平转换器。因此使用5v作为Vin是安全的。

接地。照片中的黑色。

SDA。照片中的绿色。

SCL。照片中的黄色。

这四行是常见的行。切割适当长度的电线并将它们并联焊接到所有传感器模块。我从arduino到第一个传感器使用了20厘米,之后每个5厘米。

XSHUTN和GPIO接线

20厘米白色线从arduino控制引脚到第一个传感器的XSHUTN引脚。这是使第一个VL53L0X芯片退出复位并更改I2C地址所需的控制线。

每个模块之间的5厘米白线是菊花链控制线。上游芯片(例如芯片#3)GPIO焊盘连接到下游(例如,芯片#4)XSHUTN脚(N沟道MOSFET G端子)。

小心不要制作G端子与下面的电阻器接触。您可以在间隙中添加绝缘胶带。这里可以使用通常随VL53L0X芯片提供的保护衬垫。

使用热风枪粘住控制线。

热胶

正如您在照片中看到的那样,在N-MOS G端子附近的白色控制线上有一团热胶。这一步非常重要,绝对必要。直接焊接到SMD元件腿部的浮动焊接非常薄弱。即使电线上的小压力也可能会使腿部断裂。轻轻地执行此步骤。

测试LED

当您向传感器阵列供电(例如3.3v-5v)和接地时,第一个模块上的LED应响应XSHUTN线逻辑电平。如果将XSHUTN连接到逻辑高电平(例如3.3v-5v),LED应该关闭。如果将XSHUTN线连接到低(接地),则第一个模块上的LED应该亮起。

对于所有后续模块,LED应该关闭。

此测试是在连接到arduino之前进行。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分