MBC 神攝手 × Pybricks 積木

三個步驟用 Pybricks 積木讀神攝手

積木跟 MicroPython 一樣照這個順序:先在「set up」下面匯入函式庫、選好相機模式,再建立物件、幫相機取名字,最後在「program」下面用這個名字呼叫功能。左邊一步一步做,右邊的積木會跟著長出來;這些積木圖是直接從 Pybricks Code 拼好匯出的,跟你在畫面上看到的一樣。

SPIKE 已上機驗證2026-11-01 用出貨版韌體 v1.0-261101 在實機跑過(Pybricks 函式庫與積木、Pybricks 內建積木、官方 App 教育版與家用版、MBC 積木網站)。

1

匯入函式庫、選相機模式

先確認:Pybricks 的積木模式要授權碼或 Patreon 贊助才能用。沒有授權可以改寫 MicroPython,寫法一模一樣(右邊切到「對應的 MicroPython」就看得到,或看 MicroPython 教學)。

積木程式的第一件事,是在黃色「set up」下面接一塊紅色的「from … import …」積木,告訴 Pybricks 要用神攝手的函式庫。

  1. 下載函式庫(存成檔案,檔名不要改):MBC_UniCam.py;檔名是 MBC_UniCam.py。
  2. 在 Pybricks Code 左邊檔案區按「Import a file」,把它匯入同一個專案,檔名不要改。
  3. 按「+」新增檔案,選用積木(blocks)寫。
  4. 從積木清單拖出紅色的「from … import …」,接在「set up」下面,選 MBC_UniCam 和 UniCam。
  5. 選相機模式:在相機的 MODE 選單選相機模式和子選項,下面點同一個模式編號(模式編號=相機模式 ×10+子選項),第 2 步會填進積木。

不想匯入函式庫?Pybricks 內建的顏色感應器積木(reflection、ambient)也能讀一部分(每個模式 1~2 色/點),排法見 數值對照表的「Pybricks 積木」欄。

2

建立物件:幫相機取名字

再拖一塊紅色的「… is a UniCam」積木接在匯入積木下面:最左邊是你幫相機取的名字,後面三格依序是孔位編號、模式編號、要不要多工。之後每次讀值,都是選這個名字。

相機接在哪個孔?

幫它取名字(Pybricks 裡可以取任何英文名字,這裡用兩個示範):

要不要開啟多工?(積木最後一格綠色的 true/false)

孔位那格填的是編號:SPIKE 1~6 = A~F,3 就是 C 孔。模式那格要跟相機選單一樣(SPIKE 讀不到相機現在的模式,不一樣時數字會亂掉)。

3

使用功能

在「program」下面放紅色的功能積木:第一格選名字 cam,中間選 call,最後一格選功能。功能依相機模式分組,虛線框的功能是別的模式用的,要換模式才能用(點下去會幫你換)。點一個功能,積木和輸出會換成它的範例。

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

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

每個功能的範例

每個功能都有一組可以照著拼的積木(名字 cam、多工 false、C 孔),右上角標它能用的模式。按「試試看」會切到第 3 步(需要的話也幫你換模式)。

完整範例

完整的程式(追色塊轉向、循線)在 MicroPython 教學 和 SPIKE 範例頁;積木版照右邊「對應的 MicroPython」一塊一塊拼就是同一支程式。

使用注意

  1. 函式庫檔要先匯入專案。沒有匯入 MBC_UniCam.py,紅色積木裡選不到 UniCam。
  2. await 和 call 要跟多工一致:多工 true 就選 await,多工 false 就選 call。混著用,程式會在主機上出錯。
  3. 模式編號一定要跟相機選單一樣。用了這個模式沒有的功能會出現 ValueError(訊息會寫要用哪個模式)。
  4. 拔線不會讓程式停。讀不到時回傳上一次讀到的值,從來沒讀到過就回傳 None,電腦畫面印一行提醒;用 sensor_ok 可以知道有沒有接好。
  5. 座標方向:X 0~159 左→右,Y 0~119 上→下(上=小);循線偏移:線在左=負、在右=正(站在車後面往前看)。顏色要在相機上教,程式改不了目標色。
  6. 積木背後就是 MicroPython。Pybricks Code 右邊的程式窗格就是積木產生的程式,跟這頁「對應的 MicroPython」一樣(多工版迴圈開頭多一行 await wait(0),是 Pybricks 自動加的)。「找紅色三角形」這種要 for 迴圈的範例在 MicroPython 教學。