MBC 神攝手 × MATRIX Mini R4(Arduino IDE)

三個步驟用 MATRIX Mini R4 讀神攝手

對 MATRIX Mini R4 來說,神攝手就是一台 mVision 攝影機:每次收到一包 10 格資料(CamData[0]~CamData[9]),用「解碼小幫手」拆成色塊位置、色相、循線值。這一頁用 Arduino IDE 寫文字程式。照順序做:先接線、貼小幫手、選相機模式,再在 setup() 開始 mVision,最後在 loop() 讀一包、解碼。

v1 尚未上機驗證數值排法已定案並通過電腦端測試,實機數值(fps、循線門檻、I2C 腳位)上機後可能調整。

1

接線、貼小幫手、選相機模式

mVision 只送 10 個數字,每個模式排法不一樣,所以要先貼「解碼小幫手」:開頭幾行(CamData、結構)放最上面,函式放最下面。

  1. 接線:相機接 Mini R4 給 mVision 攝影機用的串口(Serial1,115200)。相機螢幕左上角綠色=連線中。
  2. Arduino IDE 裝「Arduino UNO R4 Boards」和函式庫「MatrixMiniR4」,開發板選 Arduino UNO R4 WiFi。
  3. 把右邊標 ① 的程式貼上(小幫手在最下面,按「顯示小幫手」看全部;「複製程式」一定是完整的)。小幫手原文在 MBC_UniCam_v1_Host_Libraries.zip(matrix 資料夾)。
  4. 選相機模式:在相機的 MODE 選單選相機模式和子選項,下面點同一個模式編號。
2

setup():開始 mVision

setup() 開始 Mini R4、序列埠監控視窗(看結果用)和 mVision 串口。MATRIX 讀不到相機現在的模式,也不能用程式切,相機選單一定要切到第 1 步選的模式。

3

在 loop() 讀一包、解碼

每圈先 SmartCamReader(CamData) 讀一包(最多等 0.5 秒),讀到才解碼。功能依相機模式分組,虛線框的功能是別的模式用的,要換模式才能用(點下去會幫你換,程式的 MODE 跟著改,相機選單也要換)。

模擬相機畫面:拖動畫面裡的東西,看右邊的輸出怎麼變

模擬畫面是示意:數值直接用畫面上的位置換算(X 0~159 左→右、Y 0~119 上→下、面積 %=寬×高÷整個畫面),色相碼是那張色紙/積木本來的顏色(紅 0、黃 40、綠 80、藍 160、紫 200、白桌面 244、黑膠帶 252),不是相機裡面的算法;實際數值會因光線差一些。顏色追蹤假設相機上已經教了 4 色:色 1 紅、色 2 綠、色 3 藍、色 4 黃。物體偵測的形狀是你直接選的(不是相機判斷的),物體 1、2…照面積由大到小排,X、Y 是形狀的質心(白點)、虛線框是外框,角度就是你轉的角度。

每個功能的範例

每個功能都有一段放在「讀到一包之後」的範例,右上角標它能用的模式。按「試試看」會切到第 3 步。

完整範例

更多範例在 MATRIX 範例頁(也有 MATRIXblock 積木的拆格說明)。

色 1~3 在哪裡(模式 13)

        

!相機選單切到模式 13、先教目標 1~3 的顏色。按「複製」拿到的是完整程式。

循線讀值(模式 41 黑線)

        

!偏移線在左=負。整台循線小車(M1、M2 馬達、路口停車)在 MATRIX 範例頁。

使用注意

  1. 收不到資料時 CamStatus 是負數(−1 等太久、−2 不完整、−3 檢查碼錯),CamData 還是上一包的數字,所以一定先判斷 CamStatus > 0。在右邊勾「拔掉感應器」看看。
  2. 相機選單的模式要跟程式的 MODE 一樣。MATRIX 讀不到也不能切相機的模式;不一樣時解碼出來的數字沒有意義。
  3. MATRIX 給多少:顏色追蹤 16/10/5/3 色、座標取色 20/10/6 點、照順序 18 塊、循線 14 個值。模式 11 的位置是 8×6 格的格子中心(±10 像素);模式 12 只有位置。找到幾色只有模式 11、14 有。
  4. 座標方向:X 0~159 左→右、Y 0~119 上→下(上=小),0=沒看到。循線偏移:線在左=負、在右=正。紅色的色相碼是 0,照順序給色號要看總塊數。
  5. MATRIXblock 積木也能讀:「mVision 資料 0~9」就是 CamData[0]~CamData[9],用除法、取餘數積木拆(見 MATRIX 讀值教學)。不要用「資料 10」。