MBC 循行者 16 路 × 樂高官方 SPIKE App

三個步驟用樂高官方 SPIKE App 讀循行者 16 路

在樂高官方 SPIKE App(教育版 SPIKE 3)裡,循行者 16 路會被當成顏色感應器,所以不用匯入函式庫,直接用顏色感應器的積木讀,再換算成線的位置和線寬。左邊一步一步做,右邊的積木會跟著長出來;這些積木圖是直接從官方網頁版 App(spike.legoeducation.com)拼好匯出的,跟你在 App 裡看到的一樣。

1

開始:程式開始+一直重複

讀感應器要一直重複讀。先放黃色的「when program starts」,下面接「forever(一直重複)」,裡面放「wait 0.1 seconds」,每 0.1 秒讀一次。

  1. 打開樂高官方 SPIKE App,新增專案,選「Word Blocks(文字積木)」。
  2. 從「Events」拖出「when program starts」,從「Control」拖出「forever」接在下面。
  3. 再拖一顆「wait 1 seconds」放進 forever,數字改成 0.1。
2

認識三顆讀值積木,選對孔

官方 App 用顏色感應器的三顆積木讀循行者 16 路,每顆積木最前面都有孔的下拉選單,要選循行者插的那個孔。讀到的數字要換算才是線的位置:

循行者插在哪個孔?
官方積木讀到的是換算
reflected light(反射光,在 Sensors)線位置(粗)+16讀到的數字 減 16 → -16 ~ 16
color(顏色,在 Sensors)線寬(有幾路踩在線上)直接用 → 0 ~ 16,0 = 看不到線
raw red(原始紅色,在「More Sensors」擴充)線位置(細)+100讀到的數字 減 100 → -100 ~ 100

要用 raw red,先按 App 左下角的擴充按鈕,加入「More Sensors」。

3

存進變數、使用

在「Variables」新增一個變數(例如「線位置」),用「set … to …」把換算好的值存進去,等於幫這個值取名字;之後顯示、判斷都用這個變數。點一個功能,積木和結果會換成它的範例。

模擬感應器(從車子後面往前看):拖動黑線,看右邊的結果怎麼變

模擬畫面是示意:數值換算簡化過,實際感應器可能差一兩格。圓圈越黑 = 那一路看到越黑;紅框 = 那一路判斷在線上。

每個功能的積木範例

官方 App 能讀到的功能,每個都有一組可以照著拼的積木(C 孔)。按「試試看」會切到第 3 步。

官方 App 讀不到的功能:官方 App 只讀感應器的「組合資料」,所以循行者 16 路的 線段數、每一路的光值(原始綠/藍裡只有粗略的 0 ~ 3,要拆位元,不適合新手)、踩在線上的是哪幾路、感應器身分、韌體版本、感應器有接好 這些讀不到。要用這些功能,改用 MBC SPIKE 積木網站或 Pybricks(主機要換 Pybricks 韌體)。

使用注意

  1. 官方 App 的感應器積木選「顏色感應器」那一組。循行者 16 路對官方 App 來說就是一顆顏色感應器,不用另外裝東西。
  2. 一定要換算。反射光要減 16、原始紅要減 100,才是線的位置;忘了換算,數字會一直是正的(線在正中間時反射光是 16)。
  3. 判斷「有沒有線」看線寬。線寬 = 0 就是看不到線。線完全離開時,線位置會停在最後離開的那一側(-16/16)。
  4. 十字路口:線寬 11 以上(整排都踩到),範例寫成「線寬 > 10」。這頁是教育版(SPIKE 3);家用版(Robot Inventor)的「顏色」最多只到 10,十字路口要改成「線寬 > 9」(2026-10 實測)。教育版上機(2026-10-29)時,線寬超過 10「顏色」會顯示 NaN,16 路積木的十字路口停車還在重測;要確定會停車,先用官方 App Python。
  5. 方向:站在車後面往前看,線在左邊是負數、右邊是正數;第 1 路在最左邊。