MBC 陀螺儀 IMU × EV3 Classroom

三個步驟用 EV3 Classroom 讀陀螺儀

在 EV3 Classroom 裡,陀螺儀 IMU 會被當成樂高的陀螺儀,所以不用匯入函式庫、不用裝擴充,直接用陀螺儀的積木讀。左邊一步一步做,右邊的積木會跟著長出來;這些積木圖是用 EV3 Classroom 1.5.3 拼好後直接從軟體畫面匯出的,跟你在軟體裡看到的一樣。EV3 Classroom 沒有繁體中文介面,所以積木是英文。

1

開始:程式開始+一直重複

讀感應器要一直重複讀。新專案裡已經有黃色的「when program starts」,下面接「forever」(一直重複),裡面放「wait 0.1 seconds」,每 0.1 秒讀一次。

  1. 打開 EV3 Classroom,按「New Project」開一個新專案。
  2. 從「Control」拖出「forever」,接在「when program starts」下面。
  3. 再拖一顆「wait 1 seconds」放進 forever,數字改成 0.1。
2

認識讀值積木(陀螺儀)

陀螺儀 IMU 插在 EV3 上會被當成樂高的陀螺儀(不是紅外線感應器),所以用「Sensors」裡陀螺儀的積木讀,不用裝擴充。積木最前面的數字是孔號,選 1(感應器插 1 號孔)。同一顆積木讀到的意思跟原廠陀螺儀不一樣:

積木讀到的是範圍
「angle」陀螺 3D 航向(轉了幾度)-32768 ~ 32767 度(開機/重置 = 0,右轉變大)
「rate」融合航向(不是每秒幾度)-32768 ~ 32767 度(開機/重置 = 0,右轉變大)
「reset angle」四個航向同時歸零—

一支程式只用同一種模式的積木。EV3 每換一次模式要卡約 0.5 秒。

3

顯示在 EV3 螢幕上

把讀值積木放進「Display」的「write … at line …」,前面用「Operators」的「join」加一個名字(例如 ANGLE),程式一開始先放「clear display」清螢幕。點一個功能,積木和結果會換成它的範例。

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

模擬畫面是示意:數值用畫面上車子的方向和角度換算,不是感應器裡面的演算法。「歸零」按鈕 = 陀螺儀「重置」;俯仰拉桿、搖晃的角速度在這個軟體讀不到(用 Pybricks/clev3r)。

每個功能的積木範例

EV3 Classroom 讀得到的值,每個都有一支可以照著拼的小程式(感應器插 1 號孔)。按「試試看」會切到第 3 步。

EV3 Classroom 讀不到的:陀螺 1D 航向、磁力航向(Classroom 沒有「角度與速率」積木)、轉向角速度、俯仰角、俯仰角速度(韌體 v4.0 新增的模式 2、5、6),要用這些改用 Pybricks 或 clev3r。磁力信任度、朝上的面、九軸原始值、校準命令 EV3 都讀不到(改用 Arduino、mBlock 或 micro:bit)。

使用注意

  1. 感應器插 1 號孔。插別的孔,就把積木上的孔號改成那一孔。EV3 要先開機再插感應器(那一下車子要靜止);數字一直不動時拔掉重插一次。
  2. 「rate」不是每秒幾度:這顆陀螺儀把「rate」拿來放融合航向(開很久也不飄的航向)。要每秒幾度請改用 Pybricks/clev3r 讀模式 2。
  3. 一支程式只用一種模式。EV3 每換一次模式要卡約 0.5 秒,比賽時車子可能失控;「重置」不用換模式。
  4. 拔掉感應器時:EV3 讀不到,數字變成「不是數字」,螢幕顯示 ----,而且每讀一次要等約 1.2 秒;程式不會停,插回去會自動恢復。
  5. 方向:右轉航向變大、左轉變小,轉一圈 = 360,會一直累加。右轉變小就是感應器裝反了(上下顛倒)。
  6. 積木是英文:EV3 Classroom 只有英文和簡體中文介面,本頁用英文介面。
  7. 想看完整的應用範例(轉 90 度、走正方形、走直線……):到 EV3 範例頁,前 5 個範例都有 EV3 Classroom 檔可以下載。