MBC 測距者 8 路 × EV3 clev3r

三個步驟用 clev3r 讀測距者 8 路

clev3r(EV3 BASIC)程式照這個順序:先建立專案、選孔位,再設定感應器的模式,最後才讀值、顯示在 EV3 螢幕上。左邊一步一步做,右邊的程式會跟著長出來;拖動模擬感應器下面的障礙物方向和距離,就能看到 EV3 螢幕會顯示什麼。

1

建立專案、選孔位

clev3r 不用裝擴充,也不用匯入檔案:感應器在 EV3 上會模擬成樂高原廠的紅外線感應器(類型 33),直接用 Sensor 指令讀。第一行 folder 決定程式放在 EV3 的哪個資料夾。

  1. 安裝 clev3r(本站測試的版本是 v1.7.1.0)。
  2. EV3 先開機,再把感應器插進下面選的孔。
  3. 新增一個程式,寫下面這幾行。
  4. 寫好按「編譯並下載」,到 EV3 的檔案選單找 MBC_ 開頭的資料夾執行。
感應器插在哪個孔?

程式裡的第 1 個數字(例如 Sensor.SetMode(1, 0))就是孔位,1~4 對應 EV3 的 1~4 號孔。

2

設定模式

感應器有好幾種「模式」,每種模式一次送回幾個數字。Sensor.SetMode(孔, 模式) 選一種。一個程式只用一種模式:EV3 每換一次模式要等約 1.1 秒。

選一種模式(第 3 步選到別的模式的讀值,這裡會跟著換):

3

讀值、顯示在螢幕上

Sensor.ReadRawValue(孔, 第幾個) 拿目前模式的第幾個數字(從 0 開始數),LCD.Text 把它寫在 EV3 螢幕上。EV3 螢幕只能顯示英文和數字,所以標籤用英文縮寫。點一個讀值,程式和螢幕會換成它的範例。

模擬感應器(從上面看,車頭朝上):拖動障礙物,看右邊的輸出怎麼變

模擬畫面是示意:方向和距離用畫面上的位置簡單換算,實際感應器可能差一兩格。紅色扇形 = 那一路量到東西;灰色扇形 = 讀到 120(那個方向沒有東西)。第 4、5 路都朝正前方。

每個讀值的範例

完整範例


        

!


        

!


        

!

使用注意

  1. 一個程式只用一種模式。EV3 每換一次模式要等約 1.1 秒。避障最常用模式 2:最近的方向 [0]、最近的距離 [1]、最空曠的方向 [2]、最空曠的距離 [3] 一次都拿得到。
  2. 單位要看清楚。模式 0、1、2 的距離是「1 格 = 1.2 公分」(0 ~ 100,100 = 那邊沒東西),公分 = 數字 × 1.2;模式 3、5 是毫米(0 ~ 1200)。
  3. 拔線時讀到 0。clev3r 的 Sensor.ReadRawValue 拿不到資料時回傳 0,程式不會停。0 看起來像「貼得很近」,要小心。要知道有沒有接好,用「感應器有接好嗎」那張卡的 Sensor.GetType。
  4. 方向:站在車後面往前看,左邊是負數、右邊是正數;±8 = 四周沒有東西。EV3 螢幕只能顯示英文和數字,LCD.Text 的標籤用英文縮寫。
  5. clev3r 讀不到的:每一顆開機成功、故障的狀態(只有 SPIKE)、每一顆的毫米距離。模式 3、5(毫米)要感應器韌體 v4.0 以後。