循行者 8 路 (Line8) × SPIKE × MBC 積木網站

互動教學SPIKE

第一次用?先跟著互動教學在網頁上做一遍,再照下面的步驟接主機。

這一頁只講 MBC SPIKE 積木網站:在 SPIKE Prime/Robot Inventor 上用它讀循行者 8 路 (Line8)的安裝步驟、每個值怎麼讀、能用的命令與範例。要換產品、主機或軟體,用上方的切換列。

安裝與設定

你需要

  • 感應器:循行者 8 路 (Line8)(SPIKE 版)。
  • 主機:SPIKE Prime 或 Robot Inventor。
  • 電腦:用 Chrome 瀏覽器打開網站,不用安裝軟體。
  • 主機韌體:要先換成 Pybricks 韌體(下面第 2 步,網站上就能燒)。

安裝軟體

  1. 打開 MBC SPIKE 積木網站(中文積木,不用安裝)。
  2. 換韌體:上方選單「SPIKE 主機 → 安裝/更新 Pybricks 韌體」,照畫面做,約 3 分鐘。網站燒的是 Pybricks v4.1.0。
  3. 之後想回到樂高官方 App,用 SPIKE App 就能換回樂高原廠韌體。

讓軟體認得感應器

不用裝函式庫:MBC 感應器的積木已經內建在網站裡,每個數值一顆中文積木。

  • 打開範例檔:上方選單「檔案 → 開啟」(或按 Ctrl+O)→ 選下載的 .abp。
  • 積木網站讀得到的資料比官方 App 多(不用自己拆數字),但標「只有 Pybricks 版」的範例 6 用的新模式,積木網站也讀不到。

接線

  1. 用連接線把感應器插在主機的 C 孔(A~F 任一孔都可以,積木裡選同一個孔)。
  2. 接頭卡榫朝上,輕輕推進去。
  3. 主機開機後,感應器上的燈會亮起來。

先校準(只要做一次)

循行者要先「認識」你場地上的黑色和白色,數值才會準。校準完會記在感應器裡,重新開機也還在(除非換場地)。

  1. 感應器插好、主機開機(感應器的燈亮起來)。
  2. 按住感應器上的校準按鈕約 0.5 秒再放開(不要一直按著,按著不放會一直重新校準)。
  3. 綠色校準指示燈(靠近校準按鈕)亮起後,5 秒內把感應器在黑線和白色地面之間來回掃幾次,8 個感應點都要掃過最黑的黑線和最白的白色區域。
  4. 掃的時候感應器離地 3~12 mm,太高會讀不準。
  5. 綠燈熄滅=校準完成,數值自動存進感應器。

怎麼知道校準好了? 放在白色地面時「線寬」是 0,壓在一般黑線上是 2~3。

第一次測試

  1. 網站連上主機(主機要是 Pybricks 韌體)。
  2. 開啟本頁的範例 1 的 .abp,按執行。
  3. 數字跟著感應器前方的東西變化,就是接好了。

常見問題

  • 網站連不上主機? 主機還是樂高原廠韌體:先做「安裝軟體」第 2 步換成 Pybricks 韌體。
  • 換回官方 App 後連不上? 主機現在是 Pybricks 韌體:用 SPIKE App 換回樂高原廠韌體。
  • 插上去沒反應? 依序檢查:連接線插緊 → 換孔 → 換線 → 換主機測試。

讀值

主機要先換成 Pybricks 韌體。MBC 積木網站的感應器積木讀的是感應器的模式 9(一次讀完全部數值)。

線位置 linePos

線位置
範圍 意思
-8~+8 線在哪一路:−8(最左)~+8(最右),0 = 正中間;站在車後往前看,負 = 線在左

在 MBC 積木網站加入這款感應器的積木,用「線位置」積木讀;積木在主機上執行的是下面這段 Pybricks 程式(模式 9):

from pybricks.iodevices import PUPDevice
from pybricks.parameters import Port

dev = PUPDevice(Port.A)   # 感應器插 A 孔

w = dev.read(9)[4]
linePos = (w & 0xFF) - 8   # 線位置(低 byte)

細位置 linePosFine

細位置
範圍 意思
-100~+100 線位置的細分:−100 ~ +100,0 = 正中間,負 = 線在左(與線位置同號)

在 MBC 積木網站加入這款感應器的積木,用「細位置」積木讀;積木在主機上執行的是下面這段 Pybricks 程式(模式 9):

from pybricks.iodevices import PUPDevice
from pybricks.parameters import Port

dev = PUPDevice(Port.A)   # 感應器插 A 孔

w = dev.read(9)[5]
linePosFine = (w & 0xFF) - 100   # 細位置(低 byte)

線寬 lineWidth

線寬
範圍 意思
0~8 路 壓到線的路數 0~8,0 = 找不到線

在 MBC 積木網站加入這款感應器的積木,用「線寬」積木讀;積木在主機上執行的是下面這段 Pybricks 程式(模式 9):

from pybricks.iodevices import PUPDevice
from pybricks.parameters import Port

dev = PUPDevice(Port.A)   # 感應器插 A 孔

w = dev.read(9)[4]
lineWidth = ((w >> 8) & 0xFF)   # 線寬(高 byte)

線段數 groupCount

線段數
範圍 意思
0~4 看到幾段線:0 丟線、1 一條線、2 以上 = 分岔/十字

在 MBC 積木網站加入這款感應器的積木,用「線段數」積木讀;積木在主機上執行的是下面這段 Pybricks 程式(模式 9):

from pybricks.iodevices import PUPDevice
from pybricks.parameters import Port

dev = PUPDevice(Port.A)   # 感應器插 A 孔

w = dev.read(9)[5]
groupCount = ((w >> 8) & 0xFF)   # 線段數(高 byte)

壓線位元圖 bitmap

壓線位元圖
範圍 意思
0~255 bit bit0 = 第 1 路(最左)… bit7 = 第 8 路,1 = 那一路在線上

在 MBC 積木網站加入這款感應器的積木,用「壓線位元圖」積木讀;積木在主機上執行的是下面這段 Pybricks 程式(模式 9):

from pybricks.iodevices import PUPDevice
from pybricks.parameters import Port

dev = PUPDevice(Port.A)   # 感應器插 A 孔

w = dev.read(9)[6]
bitmap = (w & 0xFF)   # 壓線位元圖(低 byte)

第 1~8 路光值 light

第 1~8 路光值
範圍 意思
0~100 第 18 路校準後光值 0100(第 1 路最左);編號 10~17

在 MBC 積木網站加入這款感應器的積木,用「第 1~8 路光值」積木讀;積木在主機上執行的是下面這段 Pybricks 程式(模式 9):

from pybricks.iodevices import PUPDevice
from pybricks.parameters import Port

dev = PUPDevice(Port.A)   # 感應器插 A 孔

words = dev.read(9)[0:4]
light = []
for w in words:
    light.append(w & 0xFF)          # 奇數路
    light.append((w >> 8) & 0xFF)   # 偶數路

這個軟體讀不到:最後離線方向、二值化門檻、校準完成次數。要用這些值請改用 Arduino/mBlock/micro:bit。

命令

這個軟體送不了命令(官方 SPIKE App 3、Pybricks 內建 ColorSensor 積木都不行)。要下命令請用 Pybricks+MBC 函式庫;校準也可以用感應器上的按鈕。

範例

範例 1:看見黑線

這個範例會做什麼:主機螢幕一直顯示線的位置(-8 ~ 8)。把黑線從左邊慢慢移到右邊,數字會從負的變成正的。

要準備什麼

  • SPIKE 主機 1 台
  • 循行者 8 路 1 個(已校準)
  • 一張白紙畫一條黑線(或比賽地圖)

怎麼接:循行者插 C 孔。

下載程式

MBC 積木網站
ex01_show_position.abp
🟦 MBC 積木網站的積木

範例 1 MBC 積木網站積木

一步一步看懂程式

  1. 一直重複:下面的積木會一直做,直到你按停止。
  2. 讀線位置:官方 App 是「反射光 減 8」;MBC 積木網站和 Pybricks 直接有「線位置(-8~8)」。
  3. 顯示在螢幕上:官方 App 用「write(寫字)」,MBC 積木網站用「螢幕顯示數字」,Pybricks 用 hub.display.number()。
  4. 等 0.2 秒:讓數字停一下,眼睛才看得清楚。

跑起來應該看到什麼

  • 線在感應器正下方:螢幕顯示 0(-1、1 也算中間)。
  • 把黑線往左移:數字變成 負的,越左越接近 -8。
  • 往右移:變成 正的,越右越接近 8。

常見問題

  • 數字一直是 0,不會變? → 先看「線寬」是不是 8(每一點都以為是黑色):代表還沒校準,回到上面「先校準」。
  • 左右相反? → 感應器裝反了(元件那一面要朝下、朝向地面)。
  • 官方 App 顯示 8 而不是 0? → 忘了「減 8」。

範例 2:黑線警報

這個範例會做什麼:有看到黑線,主機中間的燈亮綠色;找不到線,燈變紅色並且嗶嗶叫。

要準備什麼:同範例 1。

怎麼接:循行者插 C 孔。

下載程式

MBC 積木網站
ex02_line_alarm.abp
🟦 MBC 積木網站的積木

範例 2 MBC 積木網站積木

一步一步看懂程式

  1. 讀線寬:官方 App 用「color(顏色)」積木,讀到的就是線寬。
  2. 如果 線寬 > 0 就…:有任何一個感應點踩到黑線 → 亮綠燈。
  3. 否則…:線寬是 0,代表一點都沒踩到 → 亮紅燈、嗶一聲。
  4. 等 0.1 秒再檢查一次。

跑起來應該看到什麼

  • 感應器放在黑線上:綠燈。
  • 移到白色地面:紅燈+一直嗶嗶叫。

常見問題

  • 一直是綠燈,放在白紙上也是? → 還沒校準(每一點都被當成黑色)。
  • 官方 App 的燈號顏色怎麼選? → 點「set Power Button light to」積木上的顏色圓點就能換。

範例 3:線在哪一邊

這個範例會做什麼:主機螢幕用箭頭告訴你線在哪裡:線在左 → ⬅,線在右 → ➡,在中間 → ⬆,找不到線 → ✕。

要準備什麼:同範例 1。

怎麼接:循行者插 C 孔。

下載程式

MBC 積木網站
ex03_which_side.abp
🟦 MBC 積木網站的積木

範例 3 MBC 積木網站積木

一步一步看懂程式

  1. 先讀線位置和線寬,存進兩個「變數」(變數=有名字的盒子,可以放一個數字)。
  2. 如果 線寬 = 0 → 顯示 ✕(找不到線,這時線位置不準,所以要最先檢查)。
  3. 否則,如果 線位置 < -1 → 顯示左箭頭。
  4. 否則,如果 線位置 > 1 → 顯示右箭頭。
  5. 都不是(-1、0、1)→ 顯示上箭頭,代表在中間。

跑起來應該看到什麼:慢慢把線從左移到右,箭頭依序變成 ⬅ → ⬆ → ➡;把感應器拿離開線,變成 ✕。

常見問題

  • 為什麼中間是 -1 ~ 1,不是只有 0? → 線有寬度,稍微偏一點點也算在中間,箭頭才不會一直跳來跳去。
  • 官方 App 的圖案要怎麼改? → 點「turn on」積木上的小方格圖,就能自己點亮想要的格子。

範例 4:最簡單的循線

這個範例會做什麼:機器人自己沿著黑線走。線在左邊就往左轉、在右邊就往右轉、在中間就直走。

要準備什麼

  • 範例 1 的東西,再加上
  • 兩輪小車(兩顆馬達當輪子)
  • 一圈黑線(寬約 2 公分,轉彎不要太急)

怎麼接

  • 循行者插 C 孔,裝在車頭、離地約 0.5~1 公分
  • 左輪接 E、右輪接 F

下載程式

MBC 積木網站
ex04_simple_follow.abp
🟦 MBC 積木網站的積木

範例 4 MBC 積木網站積木

一步一步看懂程式

  1. 告訴主機輪子接在哪裡:官方 App 是「set movement motors to E+F」;MBC 積木網站和 Pybricks 是「移動底盤 左輪 E、右輪 F」。
  2. 設定速度:官方 App 速度 30%;另外兩種是每秒 100 mm。先慢慢來,成功了再加快。
  3. 一直重複:讀線位置。
  4. 如果 線位置 < -1(線在左)→ 一邊走一邊左轉。
  5. 否則如果 線位置 > 1(線在右)→ 右轉。
  6. 否則 → 直走。

跑起來應該看到什麼:小車沿著線走,走起來會左右搖擺(這是正常的,範例 5 會改善)。

常見問題

  • 一開就往外衝、離線越來越遠? → 轉彎方向反了:把左右兩個轉彎的數字正負對調(官方 App:-40 和 40 對調;另外兩種:-60 和 60 對調)。
  • 小車往後退? → 馬達的裝法跟樂高標準小車相反。官方 App:請照樂高「標準驅動底盤」的方向裝馬達;MBC 積木網站:「移動底盤」積木裡左右輪的「正轉」方向都換成另一個;Pybricks:左輪改成 Direction.CLOCKWISE、右輪改成 Motor(Port.F, Direction.COUNTERCLOCKWISE)。
  • 轉彎太急衝出去? → 把速度調低。

範例 5:平順循線+路口停車

這個範例會做什麼:用「偏多少就轉多少」的方法循線,走得比範例 4 平順;遇到十字路口(整排感應點都踩到黑色)就停車並嗶一聲。

要準備什麼:同範例 4,黑線上要有一個十字路口。

怎麼接:循行者插 C 孔;左輪接 E、右輪接 F。

下載程式

MBC 積木網站
ex05_smooth_follow_stop.abp
🟦 MBC 積木網站的積木

範例 5 MBC 積木網站積木

一步一步看懂程式

  1. 讀細的線位置(-100 ~ 100):官方 App 是「raw red(原始紅色)減 100」。
  2. 讀線寬。
  3. 如果 線寬 ≥ 6(官方 App 寫成「線寬 > 5」,意思一樣)→ 十字路口:停車 → 嗶一聲 → 結束程式。
  4. 否則 → 轉彎的力道=線位置 × 一個數字(官方 App 乘 0.5,另外兩種乘 1.5)。偏得越多轉得越大,偏一點點就只轉一點點,所以不會左右亂晃。

跑起來應該看到什麼:小車順順地沿線走,到十字路口停下來嗶一聲。

常見問題

  • 還是左右搖晃? → 把「乘的數字」調小一點(例如 0.5 → 0.3)。
  • 轉彎跟不上、衝出線外? → 「乘的數字」調大一點,或把速度調低。
  • 還沒到路口就停了? → 線太粗或感應器離地太近,把「6」改成 7。
  • 官方 App 找不到「raw red」積木? → 開檔後會自動加上「更多感應器(More Sensors)」積木區;如果沒有,點左下角積木區的「+」加入「More Sensors」。

其他問題

  • 主機認不到感應器? 拔掉重插一次,等 2 秒;換一個孔試試。官方 App 會把它顯示成「顏色感應器」,這是正常的。
  • 可以同時用官方 App 和 Pybricks 嗎? 一次只能裝一種韌體:Pybricks 與 MBC 積木網站用 Pybricks 韌體,官方 App 用樂高原廠韌體;隨時可以用 SPIKE App 換回原廠韌體。

還有問題?到 聯絡我們 附上你用的軟體和程式截圖。

下載

本頁依據

  • 主機與軟體清單:_build/guides.json
  • 值與命令:_build/protocol/line8.json(單一真相來源)
  • 安裝與設定:_build/guides/software/spike-mbcblocks.zh.md、_build/guides/product/line8/spike-mbcblocks.zh.md
  • 範例:sensors/line8/spike-examples.md
LINE 詢價選購指南