測距者 8 路 (TOF8) × SPIKE × 樂高官方 App

互動教學SPIKE

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

這一頁只講 樂高官方 App(SPIKE 3、Robot Inventor):在 SPIKE Prime/Robot Inventor 上用它讀測距者 8 路 (TOF8)的安裝步驟、每個值怎麼讀、能用的命令與範例。要換產品、主機或軟體,用上方的切換列。

安裝與設定

你需要

  • 感應器:測距者 8 路 (TOF8)(SPIKE 版)。每個平台是不同的出廠版本,EV3 版插在 SPIKE 上不會被認出來。
  • 主機:SPIKE Prime(教育版,黃色主機)或 Robot Inventor(家用版,藍綠色主機)。
  • 連接線:產品內附的標準連接線,或樂高原廠線。
  • 軟體:教育版用 LEGO Education SPIKE App(本站範例是 SPIKE 3);家用版用 LEGO MINDSTORMS Robot Inventor App。
  • 主機韌體:樂高原廠韌體就好,不用換 Pybricks。

安裝軟體

  1. 教育版:到 LEGO Education 下載頁 安裝 SPIKE App。
  2. 家用版:安裝 LEGO MINDSTORMS Robot Inventor App。
  3. 主機如果刷過 Pybricks,先用 SPIKE App 換回樂高原廠韌體,官方 App 才連得上。

注意

教育版和家用版的讀法不一樣:家用版 App 有些積木的數值被限制在 0 ~ 126,「顏色」最大只到 10。下面的讀值以你用的那一版為準。

讓軟體認得感應器

不用裝擴充、不用裝驅動程式。感應器插上主機,官方 App 會把它當成樂高原廠感應器(多數產品是 SPIKE 顏色感應器),直接拉那個感應器的積木就能讀。

  • 官方積木一次只拿一個數,產品的資料被編碼塞在「顏色」「反射光」「原始紅/綠/藍」這幾格裡,每一格代表什麼看下面的讀值。
  • 打開範例檔:下載 .llsp3(家用版是 .lms)→ 打開 App → 左上「檔案」→「開啟」→ 選檔案。

接線

  1. 用連接線把感應器插在主機的 C 孔(A~F 任一孔都可以,程式裡選同一個孔)。
  2. 接頭有方向性,卡榫朝上,輕輕推進去就好,不要用力硬插。
  3. 主機開機後,感應器上的燈會亮起來。

開機要等 2~4 秒

測距者 8 路不用校準,插上去就能用;開機後要等 2~4 秒讓 8 顆雷射準備好,這段時間全部讀到 120(公分)。程式開頭先等幾秒再讀距離。

第幾路 1 2 3 4 5 6 7 8
朝哪裡 正左邊 左前 60° 左前 30° 正前方 正前方 右前 30° 右前 60° 正右邊

上表是感應器正面朝前、元件面朝上的裝法。手放在機器人左邊,範例 1 應該顯示負的方向;顯示正的代表裝反了,範例裡的「左轉」「右轉」也要對調。

警告

官方 App 的讀法是依照感應器韌體推算的,還沒有用實機逐一確認。家用版(Robot Inventor)讀到的格式不一樣,本頁的官方 App 範例不適用。如果官方 App 版範例 1 不管手放哪裡都顯示 -7 或怪怪的數字,請先改用 MBC 積木網站或 Pybricks,並跟我們回報。

第一次測試

  1. 主機用 USB 或藍牙連上 App。
  2. 打開本頁的範例 1,按執行。
  3. 用手或場地移動感應器前方的東西,數字跟著變就是接好了。

常見問題

  • 插上去沒反應? 依序檢查:連接線兩端插緊 → 換主機的另一個孔 → 換一條線 → 換另一台主機測試。
  • 不同 App 讀到的數值不一樣? 教育版(黃色主機)和家用版(藍綠色主機)的回傳格式不同,請確認你用的是哪一版,再看對應的讀值。
  • 需要轉接板或驅動程式嗎? 不需要。接頭和通訊協議跟樂高主機孔位相同,插上就會自動辨識。
  • 範例 6 在官方 App 打不開? 標「只有 Pybricks 版」的範例,用的是 2026-10 以後韌體的新模式,官方 App 的積木讀不到。

讀值

官方 App 會把感應器顯示成「顏色感應器」。用「更多感應器」分類裡的顏色、反射光、原始紅/綠/藍積木讀,再照表換算。

第 1~8 顆距離 cm distCm

第 1~8 顆距離 cm
範圍 意思
0~120 cm 第 18 顆各自的距離 0120 cm(第 1 顆正左、第 4、5 顆正前、第 8 顆正右,每顆隔 30°);120 = 那個方向沒東西/那顆失效;編號 10~17
主機 值 積木(更多感應器 → 顏色感應器) 換算
SPIKE Prime(教育版) 第 1 組 「顏色」 讀到的數
SPIKE Prime(教育版) 第 2 組 「反射光」 讀到的數
SPIKE Prime(教育版) 第 3 組 「原始紅」 讀到的數 ÷ 256 取餘數
SPIKE Prime(教育版) 第 4 組 「原始紅」 讀到的數 ÷ 256 取整數(無條件捨去)
SPIKE Prime(教育版) 第 5 組 「原始綠」 讀到的數 ÷ 256 取餘數
SPIKE Prime(教育版) 第 6 組 「原始綠」 讀到的數 ÷ 256 取整數(無條件捨去)
SPIKE Prime(教育版) 第 7 組 「原始藍」 讀到的數 ÷ 256 取餘數
SPIKE Prime(教育版) 第 8 組 「原始藍」 讀到的數 ÷ 256 取整數(無條件捨去)
Robot Inventor(玩具版) 第 1 組 「反射光」 讀到的數
Robot Inventor(玩具版) 第 2 組 「顏色」 讀到的數

韌體備註:16 B = [第 1~8 顆, 0×8]:App 顏色 = 第 1 顆、反射光 = 第 2 顆、原始紅 = 第 3+256×第 4 …;byte0/1 = 第 1、2 顆 ×10/120(0~10);byte2~7 = 第 3~8 顆兩顆一組 4-bit 再查表編碼(spikeEncodeU8,INO:259-284)

這個軟體讀不到:最近距離 cm、最近方向、最空曠距離 cm、最空曠方向、正前方 cm、最近距離 mm、初始化位元圖、故障位元圖、正前方距離 mm、第 1~8 顆距離 mm。要用這些值請改用 MBC 積木網站/Pybricks。

範例

範例 1:最近的東西在哪個方向

這個範例會做什麼:主機螢幕顯示最近的東西在哪個方向(-7 ~ 7)。手放左邊顯示負的、放正前方顯示 0、放右邊顯示正的;四周都沒東西顯示 ✕。

要準備什麼

  • SPIKE 主機 1 台
  • 測距者 8 路 1 個
  • 你的手(或一本書)

怎麼接:測距者 8 路插 C 孔。

下載程式

樂高官方 App
ex01_nearest_direction.llsp3
🟨 樂高官方 App 的積木

範例 1 官方 App 積木

一步一步看懂程式

  1. 一直重複:下面的積木會一直做,直到你按停止。
  2. 讀最近的距離和方向:MBC 積木網站和 Pybricks 直接有「最近目標距離」「最近目標方向」。 官方 App 要自己做,分 3 段:
    • 讀 8 路:照上面的表,把 5 個積木拆成「第1路」~「第8路」8 個變數。
    • 一路一路比:先假設「最近距離」是 120、「最近第幾路」是 0;然後從第 1 路比到第 8 路,如果這一路比「最近距離」還近,就把它記下來。比完以後,「最近第幾路」就是最近的那一路(都沒東西的話還是 0)。
    • 換成方向:方向=第幾路 × 2 - 9(第 1 路 → -7、第 4 路 → -1、第 5 路 → 1、第 8 路 → 7)。
  3. 如果 沒東西(MBC 積木網站和 Pybricks:最近距離 ≥ 120;官方 App:最近第幾路 = 0)→ 顯示 ✕。
  4. 否則 → 螢幕顯示方向。MBC 積木網站和 Pybricks 也會在電腦畫面印出方向和距離。

跑起來應該看到什麼

  • 四周沒東西:✕。
  • 手放在正左邊 30 公分:**-7;左前方:-5** 或 -3。
  • 手放在正前方:0(官方 App 版會是 -1 或 1,因為它只挑一路,第 4、5 路都朝正前方)。
  • 手放在右邊:正的數字。

常見問題

  • 左右相反? → 你的感應器裝法跟表上相反(例如上下顛倒),後面範例的左右轉也要對調。
  • 一直顯示 ✕? → 剛開機要等 2~4 秒;或手太遠(超過 120 公分)、東西是黑色/透明的。
  • MBC 積木網站顯示偶數(例如 -6、-2)? → 正常。手剛好在兩路中間、兩路都看到時,方向會取平均。
  • 手放哪裡都顯示同一個數字? → 可能有一路壞了或被擋住,一直讀到很小的數字。用 MBC 積木網站的「第 N 路正常」積木或 Pybricks 的 laser8.is_ok(1)~is_ok(8) 檢查。

範例 2:有東西靠近就變燈號

這個範例會做什麼:8 個方向任何一個有東西靠近,主機燈號會變:50 公分內亮黃燈,20 公分內亮紅燈並嗶嗶叫,都沒有就亮綠燈。像倒車雷達一樣。

要準備什麼:同範例 1。

怎麼接:測距者 8 路插 C 孔。

下載程式

樂高官方 App
ex02_near_light.llsp3
🟨 樂高官方 App 的積木

範例 2 官方 App 積木

一步一步看懂程式

  1. 讀最近的距離:官方 App 用範例 1 那段「讀 8 路+一路一路比」積木;另外兩種直接讀「最近目標距離」。
  2. 如果 最近距離 < 20 → 紅燈+嗶一聲。
  3. 否則,如果 最近距離 < 50 → 黃燈。
  4. 都不是 → 綠燈。
  5. 等 0.1 秒再檢查一次。

跑起來應該看到什麼:手從遠處慢慢靠近,燈號從綠 → 黃 → 紅(嗶嗶叫)。手從左邊、右邊靠近也一樣會變。

常見問題

  • 為什麼要先檢查 < 20,再檢查 < 50? → 15 公分同時也「小於 50」。如果先檢查 < 50,就永遠不會亮紅燈了。條件要從最嚴格的開始寫。
  • 手貼到感應器上反而變綠燈? → 貼太近(幾公分以內)雷射可能量不到,會讀成 120。留一點距離就好。
  • 放在桌上一直是黃燈? → 側邊那幾路量到了桌上的其他東西,或感應器裝太低量到桌面。

範例 3:轉頭朝向最近的東西

這個範例會做什麼:機器人原地轉,讓車頭對準最近的東西(60 公分內)。手在左邊就往左轉、在右邊就往右轉,對準了就停。

要準備什麼

  • 範例 1 的東西,再加上
  • 兩輪小車(兩顆馬達當輪子)

怎麼接

  • 測距者 8 路插 C 孔,裝在車頭,第 4、5 路朝正前方,離地至少 5 公分
  • 左輪接 E、右輪接 F

下載程式

樂高官方 App
ex03_turn_to_nearest.llsp3
🟨 樂高官方 App 的積木

範例 3 官方 App 積木

一步一步看懂程式

  1. 告訴主機輪子接在哪裡:官方 App 是「set movement motors to E+F」,速度 20%;MBC 積木網站和 Pybricks 是「移動底盤 左輪 E、右輪 F」。
  2. 讀最近的距離和方向(官方 App 是「最近第幾路」)。
  3. 如果 最近距離 > 60 → 太遠或沒東西 → 停著等。
  4. 否則,如果 東西在左邊(方向 < -1;官方 App:第 1~3 路)→ 原地左轉。
  5. 否則,如果 東西在右邊(方向 > 1;官方 App:第 6~8 路)→ 原地右轉。
  6. 都不是(正前方)→ 停。

跑起來應該看到什麼:手放在機器人左邊,它會轉過來面對你的手;手繞著它慢慢走,它會一直轉頭跟著你。

常見問題

  • 轉過頭、在手的兩邊晃來晃去? → 轉太快了。MBC 積木網站和 Pybricks:把「90」改小(例如 60);官方 App:把速度 20% 改小(例如 15%)。
  • 轉的方向相反、越轉越遠? → 回到範例 1 確認左右;或是馬達裝法相反(看範例 4 的常見問題)。
  • 一直轉不停? → 旁邊的牆、桌腳比你的手還近,它就會去找牆。在空曠的地方玩。

範例 4:避障,往最空曠的地方走

這個範例會做什麼:機器人一直往前走。正前方 30 公分內有東西就停下來,看看哪一邊比較空曠,往那邊轉 45 度,再繼續走。

要準備什麼:同範例 3,再找一塊空地、放幾個盒子當障礙物。

怎麼接:測距者 8 路插 C 孔、裝在車頭;左輪接 E、右輪接 F。

下載程式

樂高官方 App
ex04_avoid_open_side.llsp3
🟨 樂高官方 App 的積木

範例 4 官方 App 積木

一步一步看懂程式

  1. 設定輪子和速度:官方 App 速度 30%;另外兩種是每秒 150 mm。
  2. 一直重複:看正前方的第 4 路或第 5 路有沒有小於 30 公分。
  3. 如果 有 → 停車,然後找最空曠的方向:
    • MBC 積木網站和 Pybricks 直接讀「最空曠方向」:負的(左邊比較空)→ 左轉 45 度,否則右轉 45 度。
    • 官方 App 用跟範例 1 一樣的「一路一路比」,只是改成找最遠的那一路:第 1~4 路 → 左轉,第 5~8 路 → 右轉。官方 App 的轉 45 度是「以轉向 -100(或 100)移動 0.25 圈」,樂高標準小車大約轉 45 度。
  4. 否則 → 往前走。

跑起來應該看到什麼:小車往前走,快撞到盒子時停下、往比較空的那邊轉,再繼續走。走到牆角也會一直轉,直到找到出路。

常見問題

  • 撞上去才停? → 太快了,或障礙物是黑色、透明的。把速度調低,或把「30」改大。
  • 擦到旁邊的東西? → 這個範例只看正前方兩路。想更安全,可以把第 3、6 路也加進「或」裡面一起檢查。
  • 轉的方向跟空曠的那邊相反? → 回到範例 1 確認左右;左右相反的話,把左轉、右轉對調。
  • 小車往後退、方向相反? → 馬達的裝法跟樂高標準小車相反。官方 App:請照樂高「標準驅動底盤」的方向裝馬達;MBC 積木網站:「移動底盤」積木裡左右輪的「正轉」方向都換成另一個;Pybricks:左輪改成 Direction.CLOCKWISE、右輪改成 Motor(Port.F, Direction.COUNTERCLOCKWISE)。
  • 某一路壞了會怎樣? → 壞掉的那一路一直讀 120,會被當成「最空曠」,機器人可能往障礙物轉。用範例 1 的常見問題檢查每一路。

範例 5:跟著手走

這個範例會做什麼:機器人跟著你的手走,並且保持 15~25 公分的距離:手在遠一點(25~60 公分)就一邊往前走、一邊轉向手;剛剛好就停;太近(小於 15 公分)就後退;手拿走(超過 60 公分)就停。

要準備什麼:同範例 3。

怎麼接:測距者 8 路插 C 孔、裝在車頭;左輪接 E、右輪接 F。

下載程式

樂高官方 App
ex05_follow_hand.llsp3
🟨 樂高官方 App 的積木

範例 5 官方 App 積木

一步一步看懂程式

  1. 讀手(最近的東西)的距離和方向(官方 App 用範例 1 那段積木)。
  2. 依照距離分 4 種情況,從上往下檢查:
    • > 60 公分 → 看不到手 → 停。
    • < 15 公分 → 太近 → 後退(MBC 積木網站和 Pybricks:每秒 80 mm)。
    • > 25 公分 → 有點遠 → 往前走,並且手偏多少就轉多少:MBC 積木網站和 Pybricks 每秒轉「方向 × 15」度;官方 App 的轉向是「方向 × 10」(方向一樣是第幾路 × 2 - 9)。
    • 剩下的(15~25 公分) → 剛剛好 → 停。

跑起來應該看到什麼:手放在機器人前面 40 公分,它會往前走;手往左移,它會邊走邊左轉;手停住,它也在 20 公分左右停下來;手往前推,它會往後退。

常見問題

  • 一直前後抖動? → 「剛剛好」的範圍太窄。把 15 改成 12、25 改成 30。
  • 轉彎太猛/太慢? → 改「× 15」(官方 App 是「× 10」)那個數字:大一點轉得快、小一點轉得慢。
  • 跟著牆走,不跟手? → 旁邊的東西比你的手還近。在空曠的地方玩,手要是最近的東西。
  • 官方 App 版不會後退? → 請確認「start moving(開始移動)」積木的方向是「往後」的箭頭。

注意

下面這些範例沒有這個軟體的版本:範例 6(進階):最近的東西有幾毫米

其他問題

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

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

下載

本頁依據

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