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