Web:Bit 九軸體感偵測

Web:Bit 內建一個 MPU-9250 九軸感測器,除了可以偵測空間內的加速度與旋轉,實作體感偵測、體感遊戲...等應用,更能透過磁力計的輔助偵測,實現偵測姿態角度、指南針...等進階效果。

九軸體感偵測積木清單

九軸體感偵測積木有兩種,一種可偵測指定的動作,另一種則可取得九軸感測器的數值。

Web:Bit 九軸體感偵測

九軸體感偵測積木必須搭配「開發板」積木,選擇模擬器時無法取得九軸體感數值,但可以透過指定動作的按鈕模擬對應動作,選擇 USB,執行後會透過 USB 連線方式控制實體開發板,選擇 Wi-Fi 則可透過 Wi-Fi 指定 Device ID 操控。

Web:Bit 九軸體感偵測

偵測指定的動作

「偵測指定的動作」積木能偵測靜止、晃動、正面朝上、背面朝上、向後向前翻轉、向左向右翻轉、向左向右旋轉、指向東西南北...等 14 種開發板動作。

Web:Bit 九軸體感偵測

下圖的例子,開發板往右旋轉會出現向右的綠色箭頭,開發板往左旋轉會出現向左的藍色箭頭,如果開發板晃動則會出現紅色笑臉。

Web:Bit 九軸體感偵測

如果是使用模擬器,執行後再開發板的右側會出現一排按鈕,並用文字提示正在偵測的指定動作,以上圖的例子而言,表示正在偵測向右旋轉、向左旋轉以及晃動。

Web:Bit 九軸體感偵測

取得九軸感測器的數值

「取得九軸感測器的數值」積木能夠取得加速度、磁力計、陀螺儀以及水平旋轉、前後左右翻轉的數值。( 模擬器無法模擬此塊積木,必須使用實體開發板 )

Web:Bit 九軸體感偵測

加速度計

加速度計主要偵測 x、y 和 z 三軸直線移動時「瞬間」加速度變化,將 Web:Bit 開發板正面朝上,金手指接腳朝向自己,垂直上下的方向為 z 軸 ( 往上為負,往下為正 ),水平左右為 x 軸 ( 往左為負,往右為正 ) 水平前後為 y 軸 ( 往自己的方向為負,遠離自己的方向為正 )

由於偵測的數值為「加速度」,在啟動或停止的瞬間,可能會產生反向的加速度 ( 就如行駛的公車突然煞車或啟動,乘客會往前傾或後仰 ),因此在開發時要透過一些邏輯判斷來排除,或避免瞬間太大的啟動與停止動作。

Web:Bit 九軸體感偵測

由於「取得九軸感測器的數值」積木使用時只會偵測一次,搭配無限重複迴圈便可連續偵測,執行後上下左右揮動 Web:Bit 開發板,就能看見小怪獸講出加速度的數值。

因為所在位置以及感測器初始化校準的不同,每塊 Web:Bit 開發板在啟用加速度偵測時,都會有些微的誤差,Z 通常都會是負一千多 ( 單位為 mg,1 g 通常為一個重力參數 ),X 和 Y 通常會在 200 ~ -200 之間,此時可以拿起 Web:Bit 開發板上下左右揮動,就會看見數值發生變化,由於所偵測的數值為「加速度」,因此當開發板沒有移動或等速移動的時候,加速度會保持在一個穩定的數值區間內。

Web:Bit 九軸體感偵測

陀螺儀

陀螺儀則是偵測旋轉時「瞬間」的角度變化,如下圖所示,將 Web:Bit 開發板正面朝上,金手指接腳朝向自己,繞著 z 軸旋轉為 yaw ( 順時針旋轉為正,逆時針旋轉為負 ),繞著 x 軸旋轉為 roll ( 順時針朝自己旋轉為負,逆時針旋轉為正 ) 繞著 y 軸旋轉為 pitch ( 順時針旋轉為正,逆時針旋轉為負 )

Web:Bit 九軸體感偵測

搭配無限重複迴圈便可連續偵測,執行後轉動 Web:Bit 開發板,就能看見小怪獸講出陀螺儀的數值,因為是瞬間角度變化,所以當我們停止轉動,角度就會回歸啟動時的數值 ( 預設是 0,若數值不為零,請重插開發板 USB 線,重新啟動再試一次 )。

Web:Bit 九軸體感偵測

姿態角度 ( roll、pitch、yaw )

姿態角度主要透過加速度計和陀螺儀的數值,組合成可以偵測 Web:Bit 開發板前後翻轉 ( roll )、左右翻轉 ( pitch ) 和水平旋轉 ( yaw ),將 Web:Bit 開發板正面朝上,金手指接腳朝向自己,繞著 z 軸旋轉為 yaw ( 逆時針旋轉角度遞增,區間為 -180~180 度 ),繞著 x 軸旋轉為 roll ( 順時針旋轉角度遞增,區間為 -180~180 度 ) 繞著 y 軸旋轉為 pitch ( 逆時針旋轉角度遞增,區間為 -180~180 度 )

Web:Bit 九軸體感偵測

搭配無限重複迴圈便可連續偵測,執行後轉動 Web:Bit 開發板,就能看見小怪獸講出姿態角度的數值

Web:Bit 九軸體感偵測

磁力計

磁力計可以偵測所在磁場的變化 ( 主要是針對地球磁場 ),將 Web:Bit 開發板正面朝上,金手指接腳朝向自己,垂直上下的方向為 z 軸 ( 往上為正,往下為下 ),水平左右為 y 軸 ( 往左為正,往右為負 ) 水平前後為 x 軸 ( 往自己的方向為負,遠離自己的方向為正 )

Web:Bit 九軸體感偵測

使用磁力計之前,需要對開發板進行「8 字校正」,將開發板插上電並拿起開發板,在空中畫出 8 的形狀進行校正,若遇到不準確的狀況,進行 8 字校正後就會準確許多。

Web:Bit 九軸體感偵測

搭配無限重複迴圈便可連續偵測,執行後轉動或移動 Web:Bit 開發板,就能看見小怪獸講出磁力計的數值 ( 測試時可以拿磁鐵靠近,會發現顯著的數值變化,但因為磁鐵會干擾磁力計,使用磁鐵後需要重新進行8 字校正還原初始狀態 )。

Web:Bit 九軸體感偵測

電子羅盤

電子羅盤為磁力計的延伸應用,使用前需要對開發板進行「8 字校正」,8 字校正後可以做為指南針,偵測東西南北方位,將 Web:Bit 開發板正面朝上,金手指接腳朝向自己,開發板的頂端指向正北方,正北方角度約為 0,正東方角度約為 90,正南方角度約為 180 或 -180,正西方角度約為 -90

Web:Bit 九軸體感偵測

下圖的範例,除了讓綠色小怪獸講出方位角,更進一步透過邏輯判斷,讓紅色怪獸說出東西南北的方位。

範例下載:指南針 ( 使用滑鼠右鍵另存新檔 )

Web:Bit 九軸體感偵測

Web:Bit 九軸體感偵測