陀螺儀 IMU 九軸感應器
走直線、轉精準角度的關鍵:任意角度安裝都能算對航向,磁力計融合讓長距離也不飄移。
建議售價 NT$2,500
| 支援版本 | EV3 版、SPIKE 版、通用 I2C 版 |
|---|---|
| 供電 | 由主機供電,不需電池 |
| 保固 | 6 個月 |

① 選你的主機
只列出這款產品能用的主機;選好主機再選軟體,之後整頁都只講你的軟體。
EV3樂高 MINDSTORMS EV3 主機(RJ12 接頭)EV3-G 官方軟體・EV3 Classroom・Pybricks・clev3r
ArduinoArduino UNO、Nano、UNO R4、ESP32,用 I2C 接Arduino IDE
mBlockmBot、Ranger、Orion、MegaPi,用 mBlock 5 積木mBlock 5
MATRIXMATRIX Mini R4 主機,用 MATRIXblock 積木MATRIXblock 原廠積木
micro:bitmicro:bit V1/V2,用 MakeCode 積木MakeCode互動教學
不用接主機,先在網頁上點點看:左邊選功能,右邊的程式或積木跟著長出來,還能拖拉模擬感應器看數值。
EV3Pybricks/EV3 MicroPythonclev3rEV3 ClassroomEV3-G 官方軟體
ArduinoArduino IDE
mBlockmBlock 5
MATRIXMATRIXblock
micro:bitMakeCode
產品概述
機器人走直線、轉精準角度,全靠陀螺儀。但一般陀螺儀有兩個老問題:必須水平安裝,以及時間一久航向會慢慢飄移。
MBC 陀螺儀 IMU 結合 6 軸慣性感測(陀螺儀+加速度計)與磁力計,內建三種航向演算法:
- 立體補償航向(Gyro3D):自動偵測安裝方向,任意角度組裝都能算出正確航向,最推薦優先使用。
- 磁力計融合航向(GyroCompass):用磁力計校正陀螺儀的累積誤差,長距離行駛也不飄移。
- 單軸陀螺儀+磁力計航向:傳統單軸航向,以及只靠磁力計算出的航向(相對值:開機或歸零時為 0,不是指北的方位角)。
核心優勢
- 任意角度安裝:自動擷取安裝軸,直放、側放、倒放都能正確計算航向
- 📉 長距離不飄移:磁力計融合航向持續校正陀螺儀誤差
- EV3 直接當原廠陀螺儀用:在 EV3 官方軟體用原本的陀螺儀積木即可讀取
- 🔘 按鍵校準:加速度計與磁力計各有校準按鍵,校準結果存在機身
- 完整九軸資料:角速度、加速度、磁力三軸原始數據都能讀取
EV3 積木對應
在 EV3 官方軟體中,直接使用原廠的陀螺儀積木,各模式對應如下:
| EV3 陀螺儀積木模式 | 對應功能 | 說明 |
|---|---|---|
| 角度 | Gyro3D 立體補償航向 | 優先使用;可任意角度組裝 |
| 速率 | GyroCompass 磁力計融合航向 | 長距離使用不飄移;遇到強磁場干擾時無效 |
| 角度與速率 | 單軸陀螺儀、磁力計航向 | 傳統單軸航向與磁力計航向(相對值,不是指北) |
| 重置 | 所有角度歸零 | 三種航向同時歸零 |
警告
磁力計會受到馬達、鐵製場地、喇叭等磁場影響。在磁場干擾大的環境,請使用 Gyro3D。
注意
EV3 Classroom 的「角度」「速率」積木與上表相同(「速率」讀到的是融合航向,不是每秒幾度)。Pybricks(EV3) 的
GyroSensor.angle()讀到的是「單軸陀螺儀」航向,speed()讀到的是磁力計航向(相對值,不是指北);reset_angle(0)可正常歸零;calibrate()之後約 3.5 秒才讀得到值(原廠陀螺儀也一樣)。要角速度(每秒幾度)請用LUMPDevice讀模式 2(見範例 7)。ev3dev 的speed()讀到的是融合航向。新手範例請看 EV3 新手範例。
提示
原廠 EV3 韌體實測通過(2026-11-02):認成原廠陀螺儀、原廠歸零積木可用、7 個模式讀值正確、切模式 300 次與連續讀不斷線。ev3dev:支援。
插頭一次插到底;EV3 認錯(顯示成 NXT I2C/能量表)就拔掉重插。
羅盤模式(同一塊板子的另一種韌體)
同一塊 IMU 板子還有一版只用磁力計的「羅盤」韌體:EV3 陀螺儀積木的「角度」讀到的是磁方位角 0~359(指北的絕對方向,不是相對開機的角度),「速率」固定為 0。適合只需要「現在朝哪個方向」的應用(例如迷宮回頭、場地定向),不需要歸零。
- 目前只有 EV3 模式;出貨時可指定燒錄「IMU 航向版」或「羅盤版」,之後也可以回廠改燒。
- 磁力計一樣會被馬達、鐵製場地干擾,使用前請先做磁力計校準(按鍵校準,結果存在機身)。
支援平台
| 平台 | 支援方式 |
|---|---|
| LEGO MINDSTORMS EV3 | EV3-G(EV3 Lab,原廠陀螺儀積木)/EV3 Classroom/clev3r:原廠韌體實測通過(2026-11-02);Pybricks v4:實測通過(2026-11-02);ev3dev/EV3 MicroPython v2:支援(模式表與原廠相同) |
| LEGO SPIKE Prime / Robot Inventor | 不提供 |
| LEGO SPIKE Essential | 不支援 |
| Arduino / ESP32 / 樹莓派 | 通用 I2C(位址 0x6A);Arduino Nano 實測通過(2026-11-02) |
| MATRIX Mini R4 | I2C;原廠函式庫實測通過(2026-11-02) |
∿ 通用 I2C 暫存器(位址 0x6A)
0x6A)共通規則與 Arduino 函式請看 MBC 通用 I2C 協議。所有軸向皆為感應器本體座標,航向單位 1°,開機或歸零時 = 0。
- 航向方向: 從上往下看右轉(順時針)數值變大,會一直累加(轉兩圈 = 720),不會繞回 0
359;要 0359 請自己換算((h % 360) + 360) % 360。超過 ±32767 會繞回。三種航向都是相對值(不是指北的羅盤角度)。 - 開機: 放著不動約 0.5 秒,
0x32bit0(就緒)才會變 1;開機時會自動歸零。
提示
不會寫程式也能用: 看 Arduino 範例,每個範例都能直接複製上傳,每一行都有中文說明。
| 暫存器 | 方向 | 長度 | 內容 |
|---|---|---|---|
0x10 |
W | 1 | 0x01 = 航向歸零(寫入後等 30 ms 再讀) |
0x11 |
R | 6 | 航向合併包(= 0x12 ~ 0x14) |
0x12 |
R | 2 | 陀螺單軸航向 int16,度 |
0x13 |
R | 2 | 陀螺立體補償航向 (Gyro3D) int16,度 |
0x14 |
R | 2 | 陀螺+磁力計融合航向 int16,度(相對值,歸零時 = 0) |
0x20 |
W | 1 | 0x01 / 0x02 加速度計校準開始/結束;0x03 / 0x04 磁力計校準開始/結束 |
0x21 |
R | 18 | 九軸合併包(= 0x22 ~ 0x24) |
0x22 |
R | 6 | 角速度 X / Y / Z int16,單位 0.1 °/s(右手定則:從該軸正端看逆時針為正,所以 Z 朝上右轉時為負,跟航向正負相反) |
0x23 |
R | 6 | 加速度 X / Y / Z int16,單位 mg |
0x24 |
R | 6 | 磁力 X / Y / Z int16,單位 mG(已套用校準) |
0x32 |
R | 1 | bit0 就緒、bit1 靜止、bit2 已擷取安裝軸、bit3 安裝過歪、bit4 加速度計校準中、bit5 磁力計校準中、bit6 融合已初始化、bit7 磁力自動校準收斂 |
0x34 |
R | 1 | 磁力計信任度 0 ~ 255 |
0x35 |
R | 1 | 磁場干擾程度(單位 0.01°/次更新,上限 255) |
0x36 |
R | 1 | 朝上的面(0 = +X、1 = +Y、2 = +Z、3 = -X、4 = -Y、5 = -Z) |
// 讀三種航向
uint8_t d[6];
if (iicRead(0x6A, 0x11, d, 6)) {
int16_t gyro1D = (int16_t)(((uint16_t)d[0] << 8) | d[1]);
int16_t gyro3D = (int16_t)(((uint16_t)d[2] << 8) | d[3]); // 建議使用:右轉變大
int16_t fused = (int16_t)(((uint16_t)d[4] << 8) | d[5]); // 融合航向(相對值,不是指北)
}
iicWrite(0x6A, 0x10, 0x01); // 航向歸零
delay(30); // 等歸零生效再讀