打印

从零开始,电子工程超入门(地磁传感器应用篇)

[复制链接]
3513|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 21ic大掌柜 于 2017-2-16 15:00 编辑

此次的电子工程配方  完成为止的大致时间标准:60分钟
必要零件:
▲Arduino主体(Arduino UNO R3 或者 Arduino UNO SMD Rev3)
▲罗姆传感器评估套件
▲42mm 步进电机 12V 2相
▲L6470 步进电机驱动器套件
▲木板、螺钉
怎样读取地磁传感器的值和方向?

首先,确认地磁传感器的值如何变化,慢慢移动实际配置于Arduino的地磁传感器,并试着确认其值。上次使用的样本程序通过串行监视器确认时,因小数点变动而不便观察,所以改为了用整数型表示以用于确认。在动画中,预先通过使用了GPS或陀螺罗盘的方向检测精度较高的应用查找正确的北(正北)方,并记载于纸上。我们来看看在地磁传感器与该方向一致时,程序侧取得的XYZ轴的各值。BM1422GMV的显示程序

在各传感器的最大值的显示位置,一边对Arduino的串行监视器中显示的数字进行确认,一边寻找最大值。

图1:地磁传感器的状态

图2:地磁传感器X轴的最大值
X轴的值成为最大值的位置在此角度。奇怪,正如图1所示,由于传感器的值表示地磁强度,因此本来指向正北时的值就应该是最大值…?搞不明白了。 这是怎么回事呢?试着慢慢移动传感器后,发现Y轴也大致与X轴在相同方向上停止了。 正在进行实验的该房屋内或许存在着某种与地球不同的磁场…。

查找Z轴表示最大值的部位时,发现其如照片1所示了。几乎颠倒。果真是从地面释放出了某种神秘的地磁吗

照片1:Z轴为最大值时的状态

变得有些令人害怕了,关于地磁传感器(看似)设法指示最大值的传感器的数值之谜,我决定通过学习地磁传感器的相关知识来解开这一谜团。

地磁传感器的二轴和三轴传感器的不同

首先,地磁传感器大致分为两类,即可使用二轴(XY)和三轴(XYZ)进行检测的两种类型。二轴型为XY轴,可简单地在水平状态下检测方向,但在倾斜状态等时不可正常检测方向。三轴型与XY轴相结合,增加了倾斜的Z轴,因此可根据Z轴的倾斜程度补正XY轴的值,从而检测出方向。

本次传感器评估套件中的传感器为三轴传感器,因此可处理比二轴传感器更详细的数据,嗯哼。

2.扰乱地磁传感器的结构~传感器的值的倾角和偏角是什么呢?

接下来我们深入研究一下
传感器的最大值之谜。
首先,我们来看看究竟什么是地磁!?
的确,虽说我会使用地磁传感器,但完全不了解"地磁"本身是什么。
是地球发出的磁力?或是磁场吗?我只有这样的模糊的概念…。

什么是地磁?这里,我们将学习地磁本身及地磁传感器的结构。简单来说,地磁传感器是指可感应磁铁发出的磁力的传感器。如图4所示,地球好比一个巨大的磁铁,其周围环绕着磁力。地磁传感器如同指南针,是可以检测地磁的传感器。

图4: 地球是一个巨大的磁铁

这里我们学习一点科学知识,实际上手持指南针指向北极点或南极点时,若保持方向不变,则无论何时都不可能到达北极点或南极点。这是地球结构暗藏的玄机。在国土地理院和气象厅的网站上刊登了浅显易懂的解说,地磁略偏离了地球中心。因受地球内部活动等的影响而发生了变化,根据2015年的数据,大约向西偏离了7度(后面详细解说)。真是不可思议呀。并且,以数万年~数十万年为单位,[url=]地磁可能发生反转[/url]。若是这样,即使使用地磁传感器制造出具有未来可永久保持耐久性的元器件,数万年后,也会因地球自身的轴偏离而必须进行补正…


图5: 地球的磁铁与北极点略有偏离

另外,此处还可使用国土地理院的电子国土Web(日文网页)查看偏离程度。

图6: 东京的磁北线

东京站刚好偏离了7.0°!


图7:宗谷岬的磁北线

哎呀,日本最北端的稚内并非7.0°,而是9.8°????
那么,南部又如何呢…


图8:那霸市的磁北线

冲绳那霸市并非7.0°,而是4.4°
真搞不明白,这到底是怎么回事呀…

这样,图正中央标记的红色数值表示偏离程度,东京站为7度,而日本最北端宗谷岬为9.8度,冲绳那霸市为4.4度,可以发现各值之间存在较大差异。
然而,这些偏离数值仅仅是告诉了我们偏离因地点的不同而异的现实。谜团更深了…。

倾角和偏角的存在

实际上地球地磁的最大值和正北方的偏离角度被称为"倾角"和"偏角"。地磁的偏离量一般记载为7度,但实际上该偏离量因计测位置的不同而异。该偏离量被称为偏角。就日本国内而言,大致为越向北方偏离越大,越向南方偏离越小。另外,将东西南北视为左右(XY轴)时,上下水平(Z轴)也会偏离。其被称为倾角。倾角即为图4、图5所示的与地磁流所形成的角度,就东京而言,以陷入地面的形式倾斜了约49度。因此刚才Z轴近乎颠倒成为最大值正是与此相关的吧?

由此可见,表示正确方向时,由于该倾角和偏角密切相关,因此使用GPS在地球上哪个位置补正偏离是非常难把握的事情…。理清思路后,发现使用地磁传感器等时,若不能明确北是指正北还是磁北,则欲取得的数值就会出现错误。

  • 正北 ・・・ 地球的最北方
  • 磁北 ・・・ 电子磁铁或地磁传感器所示的北的位置(地磁最大的方向)

3.查找磁力传感器的最小值和最大值并检测方向
下面,我们实际使用磁力传感器,通过Arduino来实现方向的检测。

包括地磁传感器在内,电子零件传感器在通常状态下电阻值会发生变化,因此通过在Arduino侧计测基于该电阻变化的电压值,读出了传感器的值。我们试着来查找本次使用的地磁传感器的XYZ轴的最小值和最大值。查找的值有水平时和与水平无关时的两种。由于该数值因实验环境而异,因此实验时请将其与传感器实际相连。


本次将计算水平时的方向。下图9表示利用从串行监视器复制地磁传感器旋转一周后的值做成的XY轴的分布图。形成了一个漂亮的圆形。其为水平时,可通过使用反正切函数的公式计算角度。通过将以中点为轴、欲检测角度的点应用到公式中,计算角度。在程序侧,预先确认并设定中点和数值的范围后,需要将其写入Arduino。

图9: 将地磁传感器的值绘制成图表

4.尝试与步进电机组合制作罗盘

下面,我们尝试使用该公式
通过Arduino进行实际安装!

本次,我们尝试组合地磁传感器与步进电机制作罗盘。将Arduino和地磁传感器放置于圆木板上,通过使用步进电机旋转底座,尝试按照总是指向北方的规格进行实际安装。使步进电机颠倒,将装载Arduino等的底座置于其上。


照片2: 成为基座的步进电机


照片3:装在底座上的Arduino、

地磁传感器等元件
最初考虑采用一台步进电机的底座,但实际安装时检测出步进电机的磁力干扰地磁传感器的数值,因此拧入螺栓抬高至消除干扰的高度。

照片4:装有所有元件及设备的状态,使用螺栓抬高地磁传感器

使用程序检测角度,达到磁北时停止。若步进电机太快则可能超过磁北,因此在rd变量的if条件句内留有一定的余量。


这样,总是指向磁北的罗盘制作完成!为了使其更准确地指向正北方,要遵守先对偏角、倾角等的值进行调整的流程。

5.总结

本次为了帮助您理解地磁传感器而介绍了一些理科、数学等相关知识!另外,虽然仅通过Arduino制作罗盘只能说是车轮的再造,但基于这一基本动作,尝试思考相关应用也是件乐事。下次我将进一步使用传感器评估套件分享相关知识。

相关帖子

沙发
ankeseng| | 2017-2-17 13:10 | 只看该作者
赞一个,学习。

使用特权

评论回复
板凳
stackdog| | 2017-2-17 13:39 | 只看该作者
学习了

使用特权

评论回复
地板
cgd| | 2017-2-23 13:10 | 只看该作者
顶!

使用特权

评论回复
5
huangyongbo81| | 2017-2-23 14:06 | 只看该作者
有点深奥啊。看不懂。

使用特权

评论回复
6
ningling_21| | 2017-2-23 14:11 | 只看该作者
赞一个

使用特权

评论回复
7
BruceLee1987| | 2017-2-24 12:48 | 只看该作者
长知识啦

使用特权

评论回复
8
yzqok| | 2017-2-27 11:16 | 只看该作者
点赞一个

使用特权

评论回复
9
zhangrian| | 2017-3-1 12:13 | 只看该作者
楼主动手能力太强大了!

使用特权

评论回复
10
sh357601878| | 2017-3-6 10:39 | 只看该作者
写的好深入,赞一个

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:资深FAE工程师顾问群:499391543;微信公众号:融创芯城

120

主题

219

帖子

18

粉丝