MBC IMU 陀螺儀 × micro:bit(MakeCode)

三個步驟用 micro:bit 讀陀螺儀

在 MakeCode for micro:bit 上,先加入 MBC 擴充,再在「當啟動時」等陀螺儀就緒,最後把讀航向、傾斜的積木放進「重複無限次」。左邊一步一步做,右邊的積木會跟著長出來;這些積木圖是用 MakeCode 自己的渲染器畫的,跟你在編輯器看到的一樣。右上角可以切到 JavaScript,跟 MakeCode 右上的切換一樣。

MakeCode 免費、免登入,用 Chrome 或 Edge 打開就能寫;程式按「下載」存成 .hex,拖進 micro:bit 就會跑。

1

加入 MBC 擴充、接好線

micro:bit 本來不認得這顆陀螺儀(它自己板子上的指南針是另一回事)。加入 MBC 擴充後,積木區會多一個「MBC 感應器」分類,陀螺儀的積木都在「陀螺儀」那一組。先選你的 micro:bit 版本,下面的硬體關卡會跟著換。

你的 micro:bit 是哪一版?(背面有寫 V2 的就是 V2)
  1. 打開 MakeCode,按「新專案」。
  2. 積木區最下面點「進階」→「擴充功能」。
  3. 搜尋框貼上 https://github.com/contactmbcrobot/pxt-mbc-sensors,按 Enter,點 mbc-sensors。
  4. 要中文積木:右上齒輪 →「Language」→ 繁體中文。
2

當啟動時:等陀螺儀就緒

陀螺儀一開機會先判斷怎麼裝的、把航向歸零,這時候車子要靜止。程式一開始先等它:有接好就打勾,沒接好就打叉,馬上知道線有沒有接對。

感應器的 I2C 位址
  1. 從「邏輯」拖「如果…那麼…否則」放進「當啟動時」。
  2. 從「MBC 感應器」→「更多」拖「等位址 … 的裝置就緒,最多 … 毫秒」放進條件,位址選 106(0x6A)、填 3000。
  3. 從「基本」拖兩個「顯示 圖示」,一個選打勾、一個選打叉。
  4. 「重複無限次」裡先放「暫停 100 毫秒」。

3

使用陀螺儀的積木

「MBC 感應器 → 陀螺儀」裡有航向、轉向角速度、俯仰角、朝上的面、九軸原始值、歸零、轉了幾度的事件;磁力信任度、干擾度、校準、改用位址在「更多」裡;「裝置」組是每款 MBC 感應器都有的共用積木。點一個功能,積木和輸出會換成它的範例。

模擬感應器:左邊從上面看(航向),右邊從側面看(俯仰)。拖動拉桿、按按鈕,看右邊的輸出怎麼變

模擬畫面是示意:數值用畫面上車子的方向和角度換算,不是感應器裡面的演算法;實際讀值會有 1 度左右的跳動。「歸零」按鈕 = 「陀螺儀 航向歸零」積木。韌體版本 1.2 是示意值。

每顆積木的範例

陀螺儀的積木和裝置組的積木,每顆都有一組可以照著拼的範例(位址 0x6A)。按「試試看」會切到第 3 步,右邊的積木和輸出會換成這個範例。

使用注意

  1. 拔線不會讓程式停:陀螺儀讀不到時,讀值積木回 0(是/否積木回「否」),也不會印任何訊息。小心:航向 0 看起來像「對著正前方」,拿航向轉彎時要先用「位址 … 的裝置就緒?」確認有接好,不然車子會一直轉。
  2. 方向:右轉航向變大、左轉變小,轉一圈 = 360,會一直累加(兩圈 = 720,也可以是負的)。右轉變小就是感應器裝反了(上下顛倒)。「角速度 Z 軸」是原始陀螺值,平放時右轉為負,跟航向相反;「轉向角速度」跟航向同方向。
  3. 四種航向怎麼選:先用陀螺 3D(任意角度安裝都準);開很久、不想飄就用融合;附近有馬達、鐵製場地時磁力計會被干擾,用陀螺 3D。磁力計航向是相對值(歸零 = 0),不是指北;micro:bit 板子上的指南針跟這顆陀螺儀無關。
  4. 俯仰角速度不是「俯仰角變多快」:它是繞板子 X 軸的陀螺值(從 X 軸前端看逆時針為正)。
  5. JavaScript 進階:mbc.readValue(106, 0x01) 可以直接讀任何一個 I2C 值(沒接好回 −32768);編號看產品網站的 I2C 指令參考。