本文主要是介紹地磁傳感器值的讀取方法,及嘗試與其他元件組合等使用方法的應(yīng)用篇。 怎樣讀取地磁傳感器的值和方向? 首先,確認(rèn)地磁傳感器的值如何變化,慢慢移動(dòng)實(shí)際配置于Arduino的地磁傳感器,并試著確認(rèn)其值。上次使用的樣本程序通過串行監(jiān)視器確認(rèn)時(shí),因小數(shù)點(diǎn)變動(dòng)而不便觀察,所以改為了用整數(shù)型表示以用于確認(rèn)。在動(dòng)畫中,預(yù)先通過使用了GPS或陀螺羅盤的方向檢測(cè)精度較高的應(yīng)用查找正確的北(正北)方,并記載于紙上。我們來看看在地磁傳感器與該方向一致時(shí),程序側(cè)取得的XYZ軸的各值。 在各傳感器的最大值的顯示位置,一邊對(duì)Arduino的串行監(jiān)視器中顯示的數(shù)字進(jìn)行確認(rèn),一邊尋找最大值。 圖1 地磁傳感器的狀態(tài) 圖2 地磁気センサのX軸の最大値 動(dòng)畫中X軸的值成為最大值的位置在此角度。奇怪,正如圖1所示,由于傳感器的值表示地磁強(qiáng)度,因此本來指向正北時(shí)的值就應(yīng)該是最大值…?搞不明白了。 這是怎么回事呢?試著慢慢移動(dòng)傳感器后,發(fā)現(xiàn)Y軸也大致與X軸在相同方向上停止了。 正在進(jìn)行實(shí)驗(yàn)的該房屋內(nèi)或許存在著某種與地球不同的磁場(chǎng)…。 查找Z軸表示最大值的部位時(shí),發(fā)現(xiàn)其如照片1所示了。幾乎顛倒。 照片1 Z軸為最大值時(shí)的狀態(tài) 變得有些令人害怕了,關(guān)于地磁傳感器(看似)設(shè)法指示最大值的傳感器的數(shù)值之謎,我決定通過學(xué)習(xí)地磁傳感器的相關(guān)知識(shí)來解開這一謎團(tuán)。 地磁傳感器的二軸和三軸傳感器的不同 首先,地磁傳感器大致分為兩類,即可使用二軸(XY)和三軸(XYZ)進(jìn)行檢測(cè)的兩種類型。二軸型為XY軸,可簡(jiǎn)單地在水平狀態(tài)下檢測(cè)方向,但在傾斜狀態(tài)等時(shí)不可正常檢測(cè)方向。三軸型與XY軸相結(jié)合,增加了傾斜的Z軸,因此可根據(jù)Z軸的傾斜程度補(bǔ)正XY軸的值,從而檢測(cè)出方向。 本次傳感器評(píng)估套件中的傳感器為三軸傳感器,因此可處理比二軸傳感器更詳細(xì)的數(shù)據(jù),嗯哼。 2.擾亂地磁傳感器的結(jié)構(gòu)~傳感器的值的傾角和偏角是什么呢? 接下來我們深入研究一下傳感器的最大值之謎。 首先,我們來看看究竟什么是地磁!? 的確,雖說我會(huì)使用地磁傳感器,但完全不了解"地磁"本身是什么(羞愧…)。 是地球發(fā)出的磁力?或是磁場(chǎng)嗎?我只有這樣的模糊的概念…。 什么是地磁? 這里,我們將學(xué)習(xí)地磁本身及地磁傳感器的結(jié)構(gòu)。簡(jiǎn)單來說,地磁傳感器是指可感應(yīng)磁鐵發(fā)出的磁力的傳感器。如圖4所示,地球好比一個(gè)巨大的磁鐵,其周圍環(huán)繞著磁力。地磁傳感器如同指南針,是可以檢測(cè)地磁的傳感器。 圖4 地球是一個(gè)巨大的磁鐵 這里我們學(xué)習(xí)一點(diǎn)科學(xué)知識(shí),實(shí)際上手持指南針指向北極點(diǎn)或南極點(diǎn)時(shí),若保持方向不變,則無論何時(shí)都不可能到達(dá)北極點(diǎn)或南極點(diǎn)。這是地球結(jié)構(gòu)暗藏的玄機(jī)。在國土地理院和氣象廳的網(wǎng)站上刊登了淺顯易懂的解說,地磁略偏離了地球中心。因受地球內(nèi)部活動(dòng)等的影響而發(fā)生了變化,根據(jù)2015年的數(shù)據(jù),大約向西偏離了7度(后面詳細(xì)解說)。真是不可思議呀。并且,以數(shù)萬年~數(shù)十萬年為單位,地磁可能發(fā)生反轉(zhuǎn)。若是這樣,即使使用地磁傳感器制造出具有未來可永久保持耐久性的元器件,數(shù)萬年后,也會(huì)因地球自身的軸偏離而必須進(jìn)行補(bǔ)正 圖5 地球的磁鐵與北極點(diǎn)略有偏離 傾角和偏角的存在 實(shí)際上地球地磁的最大值和正北方的偏離角度被稱為"傾角"和"偏角"。地磁的偏離量一般記載為7度,但實(shí)際上該偏離量因計(jì)測(cè)位置的不同而異。該偏離量被稱為偏角。就日本國內(nèi)而言,大致為越向北方偏離越大,越向南方偏離越小。另外,將東西南北視為左右(XY軸)時(shí),上下水平(Z軸)也會(huì)偏離。其被稱為傾角。傾角即為圖4、圖5所示的與地磁流所形成的角度,就東京而言,以陷入地面的形式傾斜了約49度。因此剛才Z軸近乎顛倒成為最大值正是與此相關(guān)的吧? 由此可見,表示正確方向時(shí),由于該傾角和偏角密切相關(guān),因此使用GPS在地球上哪個(gè)位置補(bǔ)正偏離是非常難把握的事情…。理清思路后,發(fā)現(xiàn)使用地磁傳感器等時(shí),若不能明確北是指正北還是磁北,則欲取得的數(shù)值就會(huì)出現(xiàn)錯(cuò)誤。 正北・・・ 地球的最北方 磁北・・・ 電子磁鐵或地磁傳感器所示的北的位置(地磁最大的方向) 3.查找磁力傳感器的最小值和最大值并檢測(cè)方向 下面,我們實(shí)際使用磁力傳感器,通過Arduino來實(shí)現(xiàn)方向的檢測(cè)。 包括地磁傳感器在內(nèi),電子零件傳感器在通常狀態(tài)下電阻值會(huì)發(fā)生變化,因此通過在Arduino側(cè)計(jì)測(cè)基于該電阻變化的電壓值,讀出了傳感器的值。我們?cè)囍鴣聿檎冶敬问褂玫牡卮艂鞲衅鞯腦YZ軸的最小值和最大值。查找的值有水平時(shí)和與水平無關(guān)時(shí)的兩種。由于該數(shù)值因?qū)嶒?yàn)環(huán)境而異,因此實(shí)驗(yàn)時(shí)請(qǐng)將其與傳感器實(shí)際相連。 本次將計(jì)算水平時(shí)的方向。下圖9表示利用從串行監(jiān)視器復(fù)制地磁傳感器旋轉(zhuǎn)一周后的值做成的XY軸的分布圖。形成了一個(gè)漂亮的圓形。其為水平時(shí),可通過使用反正切函數(shù)的公式計(jì)算角度。通過將以中點(diǎn)為軸、欲檢測(cè)角度的點(diǎn)應(yīng)用到公式中,計(jì)算角度。在程序側(cè),預(yù)先確認(rèn)并設(shè)定中點(diǎn)和數(shù)值的范圍后,需要將其寫入Arduino。 圖9 將地磁傳感器的值繪制成圖表 本次,我們嘗試組合地磁傳感器與步進(jìn)電機(jī)制作羅盤。將Arduino和地磁傳感器放置于圓木板上,通過使用步進(jìn)電機(jī)旋轉(zhuǎn)底座,嘗試按照總是指向北方的規(guī)格進(jìn)行實(shí)際安裝。使步進(jìn)電機(jī)顛倒,將裝載Arduino等的底座置于其上。 照片2 成為基座的步進(jìn)電機(jī) 照片3 裝在底座上的Arduino、地磁傳感器等元件 照片4 裝有所有元件及設(shè)備的狀態(tài),使用螺栓抬高地磁傳感器 使用程序檢測(cè)角度,達(dá)到磁北時(shí)停止。若步進(jìn)電機(jī)太快則可能超過磁北,因此在rd變量的if條件句內(nèi)留有一定的余量。 5.總結(jié)本次為了幫助您理解地磁傳感器而介紹了一些理科、數(shù)學(xué)等相關(guān)知識(shí)!另外,雖然僅通過Arduino制作羅盤只能說是車輪的再造,但基于這一基本動(dòng)作,嘗試思考相關(guān)應(yīng)用也是件樂事。
|