掌控者 PS4/PS5 × SPIKE × 樂高官方 App

互動教學SPIKE

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

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

安裝與設定

你需要

  • 感應器:掌控者 PS4/PS5(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. 主機開機後,感應器上的燈會亮起來。

配對手把(第一次用或要換手把)

  1. 接收器接好、主機開機。插上去的時候不要按住接收器上的按鍵(會進入燒錄模式,接收器就不會動作;放開按鍵、拔掉重插就好)。
  2. 第一次使用:接收器還沒記住任何手把時,一開機就會自動開放 30 秒配對(綠燈快速閃)。要換手把、或 30 秒已經過了:按一下接收器上的按鍵(Reset),會清掉舊的手把、重新開放 30 秒。
  3. 在這 30 秒內讓手把進入配對模式,直到手把的燈條快速閃爍:PS4 手把同時長按 SHARE+PS;PS5 手把同時長按 建立(Create)+PS。
  4. 連上之後接收器會記住這支手把,也不會再連別人的手把。之後開機,只要按手把的 PS 鍵就會自動連上。
接收器的綠燈 意思
快速閃 正在等手把配對
一直亮 沒有連上手把(按手把 PS 鍵重新連線)
熄掉 已經連上手把

提示

比賽現場請在自己的位置完成配對,避免 30 秒內有別隊手把也在配對模式。綁錯手把就再按一次 Reset 重新配對。

範例程式

這兩個範例的接收器插 D 埠、馬達插 A、B 埠(本頁的新手範例是 C 埠,接線不一樣)。

注意

本頁的新手範例用的是教育版(SPIKE 3)。家用版(Robot Inventor)的「顏色」積木讀法不一樣,新手範例不適用,請用上面的家用版範例。

第一次測試

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

常見問題

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

讀值

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

十六鍵 buttons16

十六鍵
範圍 意思
0~65535 bit 全部按鍵一個 16 bit(PSX 排列):bit0 SELECT(SHARE)、1 L3、2 R3、3 START(OPTIONS)、4 上、5 右、6 下、7 左、8 L2、9 R2、10 L1、11 R1、12 ▲、13 ●、14 ✕、15 ■;1 = 按下;未連線 = 0
主機 值 積木(更多感應器 → 顏色感應器) 換算
SPIKE Prime(教育版) 十六鍵 「原始藍」 讀到的數(按住 ■ 時讀到負數,先加 65536)

韌體備註:PSX 排列(#65 已改,原本是 Bluepad32 排列)

方向鍵 dpad

方向鍵
範圍 意思
0~15 bit 上 1、右 2、下 4、左 8,同時按相加(0~15)
主機 值 積木(更多感應器 → 顏色感應器) 換算
SPIKE Prime(教育版) 方向鍵 「反射光」 讀到的數 ÷ 16 的餘數
Robot Inventor(玩具版) 方向鍵 「反射光」 讀到的數 ÷ 16 的餘數(按住 ■ 時讀到負數,只按 ■ = −128:先加 256 再算)

韌體備註:低 nibble;高 nibble = 形狀鍵;低 nibble;高 nibble = 形狀鍵

形狀鍵 shapeKeys

形狀鍵
範圍 意思
0~15 bit ▲ 1、● 2、✕ 4、■ 8,同時按相加(0~15)
主機 值 積木(更多感應器 → 顏色感應器) 換算
SPIKE Prime(教育版) 形狀鍵 「反射光」 讀到的數 ÷ 16 取整數(無條件捨去)
Robot Inventor(玩具版) 形狀鍵 「反射光」 讀到的數 ÷ 16 取整數(無條件捨去)(按住 ■ 時讀到負數,只按 ■ = −128:先加 256 再算)

韌體備註:高 nibble;高 nibble

肩鍵 shoulderKeys

肩鍵
範圍 意思
0~15 bit L2 1、R2 2、L1 4、R1 8,同時按相加(0~15)
主機 值 積木(更多感應器 → 顏色感應器) 換算
SPIKE Prime(教育版) 肩鍵 「顏色」 讀到的數 ÷ 16 的餘數(按住 OPTIONS 時讀到負數,只按 OPTIONS = −128:先加 256 再算)
Robot Inventor(玩具版) 肩鍵 「原始藍」 讀到的數 ÷ 16 的餘數
Robot Inventor(玩具版) 單鍵編號 「顏色」 讀到的數=單鍵編號:L2 1、R2 2、L1 3、R1 4、SHARE 5、L3 6、R3 7、OPTIONS 8,沒按 0(同時按好幾個只回編號最小的那個)

韌體備註:低 nibble;高 nibble = 功能鍵;原始藍 = 肩 | 功能<<4(0~255);單鍵編號(L2=1 R2=2 L1=3 R1=4 SELECT(SHARE)=5 L3=6 R3=7 START(OPTIONS)=8,沒按 0;同時按只回編號最小的那個)

功能鍵 funcKeys

功能鍵
範圍 意思
0~15 bit SELECT(SHARE) 1、L3 2、R3 4、START(OPTIONS) 8,同時按相加(0~15)
主機 值 積木(更多感應器 → 顏色感應器) 換算
SPIKE Prime(教育版) 功能鍵 「顏色」 讀到的數 ÷ 16 取整數(無條件捨去)(按住 OPTIONS 時讀到負數,只按 OPTIONS = −128:先加 256 再算)
Robot Inventor(玩具版) 單鍵編號 「顏色」 讀到的數=單鍵編號:L2 1、R2 2、L1 3、R1 4、SHARE 5、L3 6、R3 7、OPTIONS 8,沒按 0(同時按好幾個只回編號最小的那個)
Robot Inventor(玩具版) 功能鍵 「原始藍」 讀到的數 ÷ 16 取整數(無條件捨去)

韌體備註:高 nibble;單鍵編號 1~8(掃 功能鍵<<4|肩鍵 的 bit0→7:1 L2 2 R2 3 L1 4 R1 5 SELECT(SHARE) 6 L3 7 R3 8 START(OPTIONS));原始藍 = 肩 | 功能<<4(0~255)

搖桿 1~4 軸 stick

搖桿 1~4 軸
範圍 意思
1~9(5 = 中間) SPIKE 讀到的是換算值 1~9(5 = 中間)。I2C 暫存器:10 LX、11 LY、12 RX、13 RY:−100 ~ +100,0 = 中間,右/上為正;未連線 0
主機 值 積木(更多感應器 → 顏色感應器) 換算
SPIKE Prime(教育版) 左搖桿 LX、LY 「原始紅」 讀到的數=LX×10+LY:÷ 10 取整數=LX、÷ 10 的餘數=LY(各 1~9,5=中間)
SPIKE Prime(教育版) 右搖桿 RX、RY 「原始綠」 讀到的數=RX×10+RY:÷ 10 取整數=RX、÷ 10 的餘數=RY(各 1~9,5=中間)
Robot Inventor(玩具版) 左搖桿 LX、LY 「原始紅」 讀到的數=LX×10+LY:÷ 10 取整數=LX、÷ 10 的餘數=LY(各 1~9,5=中間)
Robot Inventor(玩具版) 右搖桿 RX、RY 「原始綠」 讀到的數=RX×10+RY:÷ 10 取整數=RX、÷ 10 的餘數=RY(各 1~9,5=中間)

韌體備註:LX×10+LY(各 1~9,5 = 中間);byte 4~5 = RX×10+RY;原始紅 = LX×10+LY、原始綠 = RX×10+RY(各 1~9,5 = 中間)

這個軟體讀不到:已連線、電量、L2 類比、R2 類比、系統鍵、手把類型。要用這些值請改用 Pybricks。

命令

SPIKE 接頭是唯讀的,這個軟體不能送命令:校準用感應器上的按鈕,切黑白線、門檻等設定改用 Arduino I2C、mBlock 或 micro:bit。

範例

範例 1:按鍵測試

這個範例會做什麼:主機螢幕一直顯示「按鍵的數字」。按不同的鍵,數字就不一樣,可以用來確認每一個鍵都正常。

要準備什麼

  • SPIKE 主機 1 台
  • 掌控者 PS4/PS5 接收器+PS4 或 PS5 手把(已配對,見上面)

怎麼接:接收器插 C 孔。

下載程式

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

範例 1 官方 App 積木

一步一步看懂程式

  1. 一直重複:下面的積木會一直做,直到你按停止。
  2. 讀按鍵:官方 App 用「反射光」,讀到方向鍵和圖形鍵;MBC 積木網站和 Pybricks 用「全部按鍵」,16 個鍵都讀得到。
  3. 顯示在螢幕上:數字會在螢幕上捲過去(按住按鍵,等它捲完)。
  4. 等 0.1 秒再讀下一次。

跑起來應該看到什麼

常見問題

  • 一直是 0,按什麼都沒反應? → 手把還沒連上:看接收器的綠燈。一直亮=按手把 PS 鍵重新連線;快速閃=還在等配對,照上面「配對手把」做。
  • 手把一直連上又斷掉? → 接收器記住的是別支手把:按一下接收器的按鍵(Reset),重新配對。
  • 主機說找不到感應器、或數字怪怪的? → 接收器可能是 EV3 版韌體,要用 SPIKE 版。

範例 2:搖桿數值

這個範例會做什麼:主機螢幕顯示左搖桿上下的位置(1 ~ 9)。放開是 5,往上推變大、往下拉變小。

要準備什麼:同範例 1。

怎麼接:接收器插 C 孔。

下載程式

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

範例 2 官方 App 積木

一步一步看懂程式

  1. 讀左搖桿上下:
    • 官方 App:「原始紅色」讀到的是 X×10+Y(例如 59=左右在中間 5、往上推到底 9),所以用「除以 10 的餘數」把 Y 拿出來(59 → 9)。
    • MBC 積木網站:直接選「左搖桿 Y(1~9)」。
    • Pybricks:pad.stick('LY')。
  2. 顯示在螢幕上。MBC 積木網站和 Pybricks 也會在電腦畫面印出數字(Pybricks 4 個方向都印)。
  3. 等 0.1 秒再讀下一次。

跑起來應該看到什麼

  • 放開搖桿:5。
  • 慢慢往上推:6、7、8、9。
  • 慢慢往下拉:4、3、2、1。

常見問題

  • 一直是 5,推了也不會變? → 手把沒連上時搖桿也是 5:看接收器的綠燈有沒有熄掉(熄掉才是連上)。
  • 想看右搖桿或左右方向? → MBC 積木網站:把下拉選單換成「右搖桿 Y」或「左搖桿 X」;官方 App:右搖桿用「原始綠色」,左右方向用「除以 10 取整數」;Pybricks:把 'LY' 換成 'RY'、'LX'、'RX'。

範例 3:按鍵控制燈和聲音

這個範例會做什麼:按 ▲ 主機燈變綠色、按 ● 變紅色、按 ✕ 變藍色、按 ■ 變粉紅色(跟 PS4 手把上符號的顏色一樣),都沒按就關燈。按 L1 嗶一聲低音、按 R1 嗶一聲高音。

要準備什麼:同範例 1。

怎麼接:接收器插 C 孔。

下載程式

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

範例 3 官方 App 積木

一步一步看懂程式

  1. 先把按鍵讀進「變數」(變數=有名字的盒子,可以放一個數字):官方 App 用兩個盒子,「按鍵」放反射光(方向鍵+圖形鍵)、「肩鍵」放顏色(L1、R1…)。MBC 積木網站和 Pybricks 不用自己存,直接問「某個鍵有沒有被按下」。
  2. 如果 ▲ 有按 → 綠燈。
  3. 否則,如果 ● 有按 → 紅燈;否則如果 ✕ → 藍燈;否則如果 ■ → 粉紅燈。
  4. 都不是 → 關燈。
  5. 另外兩個「如果」:L1 有按 → 嗶低音(官方 App 音符 60、另外兩種 262 Hz,都是「Do」);R1 有按 → 嗶高音(音符 72/523 Hz,高八度的 Do)。
  6. 官方 App 判斷「▲ 有按」的寫法:(按鍵 ÷ 16) 取整數,除以 2 的餘數 = 1。● 換成 32、✕ 換成 64、■ 換成 128;L1 是 (肩鍵 ÷ 4)、R1 是 (肩鍵 ÷ 8)。

跑起來應該看到什麼

  • 按住 ▲:綠燈;放開:燈熄。
  • 同時按 ▲ 和 ●:綠燈(上面的「如果」先成立就不看下面的)。
  • 按住 L1:一直嗶嗶嗶低音。

常見問題

  • 官方 App 按 L1、R1 沒聲音? → 肩鍵是用「顏色」積木讀的(本頁依韌體和官方範例整理,尚未逐一上機確認)。先跑範例 1 確認方向鍵、圖形鍵正常;再把範例 1 的「反射光」換成「顏色」,按 L1 應該顯示 4、R1 顯示 8。
  • 燈的顏色怎麼換? → 官方 App:點「set Power Button light to」積木上的顏色圓點;MBC 積木網站:點「主機燈號設為」的下拉選單;Pybricks:把 Color.GREEN 換成 Color.YELLOW 之類。

範例 4:方向鍵開車

這個範例會做什麼:按住方向鍵,車子就往那個方向走;放開就停。上=前進、下=後退、左=原地左轉、右=原地右轉。

要準備什麼

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

怎麼接

  • 接收器插 C 孔
  • 左輪接 E、右輪接 F

下載程式

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

範例 4 官方 App 積木

一步一步看懂程式

  1. 告訴主機輪子怎麼裝:左右兩顆馬達是面對面裝的,所以左輪要「反過來轉」才會往前。
    • MBC 積木網站:「E 接 樂高 馬達 馬達正轉 逆時針」(F 是順時針);Pybricks:Direction.COUNTERCLOCKWISE。這樣設好之後,兩輪都給正的數字就是往前。
    • 官方 App 的馬達積木沒有這個設定,所以左輪 E 的數字要加負號:往前是 E -50、F 50。
  2. 一直重複:讀按鍵。
  3. 如果 上 有按 → 兩輪都往前(功率 50%)。
  4. 否則如果 下 → 兩輪都往後。
  5. 否則如果 左 → 左輪往後、右輪往前 → 原地左轉(功率 30%,轉慢一點比較好控制)。
  6. 否則如果 右 → 原地右轉。
  7. 都沒按 → 兩輪功率 0,停下來。
按住 官方 App(E, F)
上 -50, 50
下 50, -50
左 30, 30
右 -30, -30
沒按 0, 0

跑起來應該看到什麼:按住上,車子往前走;放開,車子停。

常見問題

  • 按上卻往後退? → 馬達的裝法跟樂高標準小車相反:MBC 積木網站把 E、F 的「正轉」方向對調;Pybricks 左輪改成 Direction.CLOCKWISE、右輪改成 Motor(Port.F, Direction.COUNTERCLOCKWISE);官方 App 把所有數字的正負號都對調。
  • 按上卻原地打轉? → 只有一邊的方向反了:只改那一顆馬達的正負號(或正轉方向)。
  • 手把沒電或走太遠斷線了? → 接收器超過 0.3 秒收不到手把,就會把按鍵全部放開、搖桿回到中間,車子會自己停下來。

範例 5:雙搖桿坦克開車

這個範例會做什麼:像開坦克一樣:左搖桿管左輪、右搖桿管右輪。兩支都往前推=前進、都往後拉=後退、一前一後=原地轉彎。推越多跑越快,放開就停。

要準備什麼:同範例 4。

怎麼接:接收器插 C 孔;左輪接 E、右輪接 F。

下載程式

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

範例 5 官方 App 積木

一步一步看懂程式

  1. 開始前的保護:先「等到」兩支搖桿都在中間(4 ~ 6)才開始,然後亮綠燈。這樣一開機搖桿剛好被碰到時,車子不會突然衝出去。
  2. 一直重複:讀左搖桿上下(Y)和右搖桿上下(Y)。官方 App 是「原始紅色」和「原始綠色」除以 10 的餘數。
  3. 死區:搖桿在 4 ~ 6 就把功率設成 0。手放開時搖桿不一定剛好回到 5,有了死區車子才會乖乖停住。
  4. 否則:功率=**(搖桿 − 5) × 25**。推到 7 是 50%、推到底 9 是 100%;拉到 3 是 -50%、拉到底 1 是 -100%。
  5. 把功率給馬達:左輪 E 用左搖桿的功率、右輪 F 用右搖桿的功率。官方 App 的左輪要 × -1(原因同範例 4)。

跑起來應該看到什麼

  • 程式一開始:放開搖桿就亮綠燈,車子不動。
  • 兩支搖桿一起往前推:前進,推越多越快。
  • 左搖桿往前、右搖桿往後:原地右轉。
  • 放開:停車。

常見問題

  • 按了執行,一直沒亮綠燈? → 搖桿沒在中間:兩支搖桿都放開,就會亮綠燈開始。
  • 推一點點車子不會動? → 這是死區,推到 7 以上(或拉到 3 以下)才會動。想要更靈敏,可以把「4 ~ 6」改成「5 ~ 5」,但放開時車子可能會慢慢滑。
  • 太快不好控制? → 把「× 25」改成「× 15」(推到底變 60%)。
  • 前後顛倒或原地打轉? → 同範例 4 的常見問題。

注意

下面這些範例沒有這個軟體的版本:範例 6(進階):連線狀態與電量

其他問題

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

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

下載

本頁依據

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