上 次羅姆傳感器評估套件(可點擊查閱)中介紹了地磁傳感器。我想通過上次的內容您應該已經了解了傳感器評估套件的使用便利性,而本次是介紹地磁傳感器值的讀取方法,及嘗試與其他元件組合等使用方法的應用篇。
此次的電子工程配方完成為止的大致時間標準: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度(后面詳細解說)。真是不可思議呀。并且,以數萬年~數十萬年為單位,地磁可能發生反轉。若是這樣,即使使用地磁傳感器制造出具有未來可永久保持耐久性的元器件,數萬年后,也會因地球自身的軸偏離而必須進行補正…
圖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制作羅盤只能說是車輪的再造,但基于這一基本動作,嘗試思考相關應用也是件樂事。下次我將進一步使用傳感器評估套件分享相關知識。
-
步進電機
+關注
關注
150文章
3042瀏覽量
146866 -
地磁傳感器
+關注
關注
1文章
44瀏覽量
18042
發布評論請先 登錄
相關推薦
評論