學習目標 : 認識faya電子羅盤模組的功能及使用方式
學習時間 : 40 mins
示範模組 : (1) faya brickNano
(2) faya電子羅盤模組
工具 : (1) 樂高積木 (相容)
(2) 指北針羅盤 (指針式)
====================功能介紹====================
faya電子羅盤模組使用了內部構造複雜的MEMS(Micro-ElectroMechanical)微機電晶片,代號LSM303DLHC,取代了傳統的指北針,利用電子機械的方式量測方位。雖然晶片的內部構造複雜,但是經過包裝後,透過簡單的接線,只要從Arduino的函式下指令,就能讀取北方與模組之間的角度差距(0° ~ 360°),本段僅解釋範例中用到的指令,更多的函示庫指令用法可參考第三方說明。
接下來介紹所使用的指令
- #include <LSM303.h>
使用電子羅盤函示庫,還需要引入I2C 的函示庫。
- #include <Wire.h>
使用I2C介面,需要引入Arduino用的I2C函示庫。
- Wire.begin();
初始化I2C設定,並開啟I2C的通訊。
- LSM303 物件名稱;
此指令建構了電子羅盤的物件,物件名稱 : 可自行命名。
- 物件名稱.init();
初始化電子羅盤的連結與定義。
- 物件名稱.enableDefault();
開啟與電子羅盤之間的通訊連結。
- 物件名稱.m_min = (LSM303::vector<int16_t>){-32767, -32767, -32767};
- 物件名稱.m_max = (LSM303::vector<int16_t>){+32767, +32767, +32767};
這兩行指令是用來校正電子羅盤中的偏差值。
- 物件名稱.read();
讀取電子羅盤中所有的資料。
- 物件名稱.heading();
讀取電子羅盤在水平面上時,電子羅盤晶片方位(北方)與磁北方之間的角度差, 單位為: 度。
====================原理知識====================
磁鐵是一種可以吸引鐵,並產生磁力的物體,磁鐵一端稱為S極或稱為指南極 ,另一端為N極或稱為指北極。
我們所在的地球本身就像一個超大型的磁鐵,會產生磁力線 (或稱磁場),因此藉由這個原理早在古時候就有人製作"指南針"這類型的工具,可藉由地球產生的磁力線方向指出南北邊的方向。(注意:市面上販售的通常稱為指北針)
近代科學家根據磁力(磁場)原理,製作了可以感測磁力的電子IC晶片,我們稱為電子羅盤。電子羅盤所使用的電子材料會隨著外加磁場的變化,改變材料中的電阻值差距,可用來感測磁場的變化,這種現象又稱為磁阻效應。
傳統的指北針和電子羅盤的定位方式是一樣的,都必須旋轉羅盤,讓指針對準北(N)的文字面,完成後,就可以從文字上判斷方位了。
模組的電路圖如下所示,模組使用了一顆降壓IC,將5V的電源降到3.3V,以符合此IC的供電需求!
以下解釋提供給有需要知道背後原理的人:
磁鐵是一種可以吸引鐵,並產生磁力的物體,磁鐵一端稱為S極或稱為指南極 ,另一端為N極或稱為指北極。
我們所在的地球本身就像一個超大型的磁鐵,會產生磁力線 (或稱磁場),因此藉由這個原理早在古時候就有人製作"指南針"這類型的工具,可藉由地球產生的磁力線方向指出南北邊的方向。(注意:市面上販售的通常稱為指北針)
近代科學家根據磁力(磁場)原理,製作了可以感測磁力的電子IC晶片,我們稱為電子羅盤。電子羅盤所使用的電子材料會隨著外加磁場的變化,改變材料中的電阻值差距,可用來感測磁場的變化,這種現象又稱為磁阻效應。
傳統的指北針和電子羅盤的定位方式是一樣的,都必須旋轉羅盤,讓指針對準北(N)的文字面,完成後,就可以從文字上判斷方位了。
模組的電路圖如下所示,模組使用了一顆降壓IC,將5V的電源降到3.3V,以符合此IC的供電需求!
====================範例實作(一)====================
了解模組功能(原理)後,我們用以下範例來展示模組的功能:
目標:
目標:
(1)使用Serial Monitor,查看電子羅盤回傳的角度資料
(2)水平旋轉電子羅盤模組,查看角度的變化量
接線:
Arduino_A5 ===> 電子羅盤模組_SCL
範例程式:
也歡迎大家在底下留言或到我們的粉絲團留言喔!
本程式需要使用LSM303函式庫,請點此下載,解壓縮後置於Arduino下的Library資料夾
備註 :
- Loop裡的程式很容易懂,即讀取和磁北方的夾角,接著列印在終端機上。要注意的是,由於模組上Y的指向是晶片方位的南方,因此晶片方位的北方的指向是-Y。
範例結果:
討論:
備註 :
- Loop裡的程式很容易懂,即讀取和磁北方的夾角,接著列印在終端機上。要注意的是,由於模組上Y的指向是晶片方位的南方,因此晶片方位的北方的指向是-Y。
當模組對準北方後,如果順時針旋轉,數值會從0開始加大,轉一圈後最大值360度,然後歸0。如果逆時針轉,數值會從360往下降,達到原點後為最小值0度。
因此從串列埠監控視窗中,我們看到的數字是介於0~360,當我們旋轉到接近0或360時,代表著模組上的晶片方位-Y方向已經指向磁北了。
- 影片中可以發現,當我們順時針旋轉時,數字漸漸增加,超過360時,又從0開始; ,逆時針旋轉時,數字漸漸減少。當我們讓數字靠近 0 或 360時,對照旁邊的指北針,我們可以發現 -Y的方向會和指北針的方向一致。
也歡迎大家在底下留言或到我們的粉絲團留言喔!
沒有留言:
張貼留言