|
人类大脑由复杂的结构层构成,这让我们成为地球上的优势物种。例如,大脑中的内嗅皮层可以让您感觉方向,帮助您轻松导航您不熟悉的地方。但与我们不同的是,机器人和无人驾驶飞行器UAV需要一些辅助设备才能获得这种方向感,这样他们就可以在新的地形和风景中自主操纵。不同的机器人使用不同类型的传感器来实现这一点,但常用的是磁力计,它可以通知机器人当前面向的地理方向。这不仅有助于机器人感知方向,还可以以预定义的方向和角度中转弯。
由于传感器可以指示地理位置上的南、北、东和西,我们人类也可以在需要时使用它。因此,在本篇文章中,让我们尝试了解磁力计传感器的工作原理以及如何将其连接到Arduino开发板等微控制器。在文章中,我们将制作一个很酷的数字罗盘,它可以点亮指向北方向的LED灯来帮助我们辨别出方向。这款数字罗盘的PCB是在PCBGOGO网站制作,这样下次我出去的时候就可以随身携带它,并希望在我迷路的时候,可以使用它找到回家的路。让我们开始吧。
所需的组件 ● Arduino Pro mini开发板 ● HMC5883L磁力计传感器 ● 8个LED指示灯 ● 470欧姆电阻 ● FTDI Programmer烧写器 ● PC /笔记本电脑
什么是磁力计?它是如何工作的? 在深入研究电路之前,让我们先了解一下磁力计及其工作原理。顾名思义,Magneto这个词并不是指那个可以通过弹奏钢琴来控制金属疯狂的万磁王。不过,我很喜欢那个很酷的家伙。
磁力计实际上是一种能够感应地球磁极并根据其指向方向的设备。我们都知道地球是一块巨大的球形磁铁,有北极和南极。因此有磁场。磁力计可以感应到这个磁场,并且根据磁场的方向,它可以检测到我们所面对的方向。
HMC5883L传感器模块的工作原理 作为磁力计传感器的HMC5883L也是同样原理。该传感器模块使用的是霍尼韦尔的HMC5883L。该IC内部有3个磁阻材料,放置在轴x、y和z中。流过这些材料的电流量对地球的磁场敏感。因此,通过测量流过这些材料的电流变化,我们可以检测到地球磁场的变化。一旦磁场发生变化,就可以通过I2C协议将值发送到任何嵌入式控制器,如微控制器或处理器。
由于传感器通过感应磁场工作,如果在附近放置金属,输出值将受到很大影响。可以利用这种现象将这些传感器用作金属探测器。应注意不要在此传感器附近放置磁铁,因为磁铁的强磁场可能会触发传感器上的错误值。
HMC5883L和QMC5883L之间的区别 对于许多初学者来说,这些传感器很容易令人混淆。这是因为一些供应商(实际上是大多数)销售的是QMC5883L传感器而不是霍尼韦尔的原装HMC5883L。这主要是因为QMC5883L比HMC5883L模块便宜。可悲的是,这两个传感器的工作略有不同,两者都不能使用相同的代码。这是因为两个传感器的I2C地址不一样。本教程中的代码仅适用于常用的传感器模块QMC5883L。
要想知道您所拥有的传感器型号,您只需要仔细查看IC本身,读取其上面的内容。如果它写的是类似L883那么它就是HMC58836L,如果写的是像DA5883那么它就是QMC5883L IC。两个模块如下图所示。
电路原理图 这款基于Arduino的数字罗盘的电路非常简单,我们只需要将HMC5883L传感器与Arduino连接,并将8个LED连接到Arduino Pro mini的GPIO引脚。完整的电路图如下所示
传感器模块有5个引脚,因为我们在连续模式下操作传感器,因此我们的项目中没有使用DRDY(数据就绪)。 Vcc和接地引脚通过Arduino板上的5V为模块供电。 SCL和SDA是I2C通信总线,分别连接到Arduino Pro mini的I2C引脚A4和A5。由于模块本身在线路上有一个上拉电阻,因此无需在外部添加它们。
为了指示方向,我们使用了8个LED灯,所有这些LED都通过470欧姆的限流电阻连接到Arduino的GPIO引脚。完整电路由9V电池供电。该9V直接提供给Arduino的Vin引脚,使用Arduino上的板载稳压器将其调节至5V。然后,该5V用于为传感器和Arduino供电。
制造数字罗盘的PCB 该电路的想法是将8个LED以圆形方式放置,使得每个Led分别指向所有8个方向,即分别为北、东北、东、东南、南、西南、西和西北。因此,将它们整齐地安排在面包板上并不容易。为此电路开发PCB将使其看起来更整洁,易于使用。所以我使用PCB设计软件,将LED和电阻器放在一个整齐的圆形图案中,并连接了导线连接在一起。完成后,我的PCB设计看起来如下所示。您也可以从给定的链接下载Gerber文件。
我将它设计成双面板,因为我希望Arduino位于PCB的底部,这样它就不会破坏PCB顶部的外观。
现在,我们的设计准备就绪,是时候让它们制作完成了。要完成PCB操作非常简单,只需按照以下步骤操作即可 第1步:进入www.pcbgogo.com,如果这是您第一次访问,请先注册账号。然后,在PCB Prototype选项卡中输入PCB的尺寸、层数和所需的PCB数量。我的PCB是80厘米×80厘米,所以选项卡如下所示
第2步:单击“立即报价”按钮继续。如果需要,您将进入一个页面,在那里设置一些额外的参数,如使用的材料、导线间距等。但大多数默认值都可以。我们在这里唯一需要考虑的是价格和时间。正如您所看到的,制作时间仅为2-3天,我们的PSB仅需5美元。然后,您可以根据您的要求选择首选送货方式。
第3步:最后一步是上传Gerber文件并继续付款。为了确保流程顺利,PCBGOGO会在继续付款之前验证您的Gerber文件是否有效。通过这种方式,您可以确保您的PCB具有制造友好性,并可以按照承诺与您联系。
PCB电路板装配 在订购了这块板之后,几天后就收到一个整齐标记好的包装盒中的快递,并且像PCB的质量令人敬畏。我分享下面几块电路板的图片。
然后我开始组装电路板。由于封装、焊盘、过孔和丝网印刷的形状和尺寸都非常合适,因此组装电路板时没有任何问题。仅仅用了十几分钟,电路板就焊接好了。 焊接后电路板的图片如下所示。
|