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

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

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

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

1

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

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

感應器接在哪個孔?
  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。每一格放的是測距者的一個值,下面每張卡告訴你那一格是什麼、怎麼換算。孔要選跟第 1 步一樣的(I2C1)。點一個功能,積木和輸出會換成它的範例;範例放在「循環」裡、等待的上面。

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

模擬畫面是示意:距離直接用畫面上障礙物的位置換算,實際雷射會有 1 ~ 2 公分的誤差,大約每 0.1 秒才更新一次。120 = 前面沒東西(或超過 120 公分)。

每個讀值的範例

7 個範例,每個都可以照著拼(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 另一款感應器用的,讀不到測距者 2 路)。
  2. 拔線不會停程式:MATRIX 函式庫讀不到感應器時,七格都回 255,程式照樣跑。用「檢查有沒有接好」那張卡判斷;插回去就恢復。
  3. 只有前三格有值:Red = 左、Green = 右、Blue = 較近,都是公分 0 ~ 120;Cyan、Magenta、Yellow、Key 都是 0。毫米、初始化、故障資料 MATRIXblock 讀不到,要用請改 Arduino、mBlock 或 micro:bit。
  4. 讀到 120 有 4 種可能:前面真的沒東西、東西超過 120 公分、剛開機雷射還沒準備好(約 1 ~ 2 秒)、那顆雷射壞了。黑色、亮面、透明的東西比較難量。
  5. 方向:站在車後面往前看,左雷射在左邊、右雷射在右邊(左右以感應器朝前、從背後看為準:左=J5、右=J3)。