MBC 測距者 8 路 × MATRIX Mini R4(MATRIXblock)

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

在 MATRIX Mini R4 的 MATRIXblock 軟體裡,測距者 8 路會被當成原廠「顏色感應器」(I2C 位址 0x22),用內建積木就能讀,不用裝函式庫:先在「Mini初始化」的設置裡放顏色感應器初始化,再在循環裡放等待,最後把顏色感應器讀值積木放進循環。左邊一步一步做,右邊的積木會跟著長出來;這些積木圖是用 MATRIXblock 自己的積木程式畫的,跟你在軟體裡看到的一樣。

MATRIXblock 是 MATRIX 原廠的免費積木軟體(預設裝在 C:\matrixblock-r4\)。感應器要買 MATRIX 版,用原廠 4 pin 感應器線接 I2C1 或 I2C2。

1

初始化:測距者 8 路接哪個孔

程式的第一件事,是在藍色「Mini初始化」積木的「設置」裡放一顆「顏色感應器 ○ 初始化」,MATRIX 才會開始跟測距者 8 路說話。

感應器接在哪個孔?
  1. 打開 MATRIXblock。新專案的工作區已經有一顆藍色的「Mini初始化」積木(沒有的話到「Mini Core」類別拖一顆)。
  2. 左邊積木類別點「偵測」,找到「顏色感應器 I2C1 初始化」(不是「顏色感應器V3」)。
  3. 把它放進「設置」,下拉選單選 I2C1,跟感應器線接的孔一樣。
2

在循環裡放等待

「循環」裡的積木會一直重複。先放一顆「等待 100 毫秒」,讓它每 0.1 秒讀一次,資訊窗口的字才不會刷太快。

  1. 從「控制」拖「等待 1000 毫秒」放進「循環」,數字改成 100。

「Mini初始化」上的「序列埠:On」「Baud:9600」不要改:範例用「USB序列埠輸出…並換行」把數值印在資訊窗口(資訊窗口的鮑率也選 9600)。

3

使用讀值積木

「偵測」裡的「顏色感應器 I2C1 Red」積木,下拉選單有 7 格能用:Red、Green、Blue、Cyan、Magenta、Yellow、Key。每一格放的是測距者 8 路的一個值,下面每張卡告訴你那一格是什麼、怎麼換算。孔要選跟第 1 步一樣的(I2C1)。點一個功能,積木和輸出會換成它的範例;範例放在「循環」裡、等待的上面。

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

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

每個讀值的範例

10 個範例,每個都可以照著拼(I2C1 孔),積木放在「循環」裡、等待的上面。按「試試看」會切到第 3 步,右邊的積木和輸出會換成這個範例。

使用注意

  1. 只用七格:「顏色感應器」積木的下拉選單選 Red、Green、Blue、Cyan、Magenta、Yellow、Key(就是 R、G、B、C、M、Y、K),每格 0 ~ 255。不要選 ColorID、Hue、Saturation、Value(那是主機拿 Red、Green、Blue 自己算的,對 MBC 產品沒有意義),也不要用「顏色感應器V3」積木(那是 MATRIX 另一款感應器用的,讀不到測距者 8 路)。
  2. 拔線不會停程式:MATRIX 函式庫讀不到感應器時,七格都回 255,程式照樣跑。用「檢查有沒有接好」那張卡判斷;插回去就恢復。
  3. 開機要等 2 ~ 4 秒:測距者 8 路不用校準,但開機後 8 顆雷射要 2 ~ 4 秒準備,這段時間全部讀到 120。程式開頭可以先在「設置」裡放「等待 3000 毫秒」。
  4. 七格都是公分:由左到右 Red、Green、Blue、Cyan、Magenta、Yellow、Key,Cyan = 正前方(第 4、5 顆取較近)。最近方向、最空曠方向、毫米、故障資料 MATRIXblock 讀不到,要用請改 Arduino、mBlock 或 micro:bit。
  5. 裝的方向:感應器正面朝前、元件面朝上。手放在機器人左邊時,Red 應該變小;變小的是 Key 代表裝反了,左右要對調。