MBC Servo6 舵機擴充器(適用 SPIKE™) × SPIKE × Pybricks

互動教學SPIKE

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

這一頁只講 Pybricks(Python):在 SPIKE Prime/Robot Inventor 上用它讀MBC Servo6 舵機擴充器(適用 SPIKE™)的安裝步驟、每個值怎麼讀與範例。要換產品、主機或軟體,用上方的切換列。

安裝與設定

你需要

  • 感應器:MBC Servo6 舵機擴充器(適用 SPIKE™)(SPIKE 版)。
  • 主機:SPIKE Prime 或 Robot Inventor。
  • 電腦:Chrome 瀏覽器,打開 code.pybricks.com 就能寫,不用安裝。
  • 主機韌體:要先換成 Pybricks 韌體 v4.1(code.pybricks.com 正式版是 v4.1.1;MBC SPIKE 積木網站燒的 v4.1.0 也可以)。本站範例都照 v4.1 寫。
  • 函式庫:``(要用「匯入函式庫」的寫法才需要)。自己寫新程式只要匯入 MBC_sensors.py,一個檔適用全部 MBC 感應器。

注意

Pybricks 3.6.1 版的函式庫與範例已不再更新(2026 年新款 SPIKE Prime 也不能用 3.6.1)。還沒升級的主機,舊檔放在下載專區的「舊版(不再更新)」。

安裝軟體

  1. 用 Chrome 打開 code.pybricks.com。
  2. 主機換成 Pybricks 韌體:最簡單的方法是到 MBC SPIKE 積木網站 上方選單「SPIKE 主機 → 安裝/更新 Pybricks 韌體」,約 3 分鐘。
  3. 之後想回到樂高官方 App,用 SPIKE App 就能換回樂高原廠韌體。

讓軟體認得感應器

Pybricks 有兩種讀法,挑一種就好:

  1. 內建指令(不用函式庫):直接用 Pybricks 內建的感應器指令讀,不用載入額外檔案,最快上手。
  2. 匯入函式庫:下載 ,拿到高解析位置、全部通道等更多資料。

匯入函式庫的步驟:

  1. 在 code.pybricks.com 左邊檔案區按「Import a file(匯入檔案)」。
  2. 範例檔和 `` 兩個都要匯入,放在同一個專案列表裡。
  3. 點開範例,按 ▶ 執行。

重要

新專案用 MBC_sensors.py;舊專案只換掉原本那一個檔。 MBC_sensors.py 一個檔適用全部 MBC 感應器(EXP6、Servo6 擴充器的函式庫另外下載),寫法是 from MBC_sensors import MBC_LINE8,類別名稱跟舊檔名裡的一樣。舊檔名(例如本頁範例用的 ``)保留給舊程式:用新版的同名檔換掉原本那個檔就好,程式不用改。但每個舊檔名都是整份共用檔,一個程式匯入 3 個以上舊檔名,會超過 SPIKE 程式槽約 51 KB 的上限;要混用多款感應器,就只匯入 MBC_sensors.py。

提示

檔名要跟程式裡 import 的名字完全一樣,函式庫才載得進來,否則會出現 ImportError。本站下載的函式庫檔名都沒有版本字尾,不用改名。

提示

函式庫建立物件時大多有 multitask 參數:填 False 是一般模式,一行一行執行;填 True 是多工模式,每個呼叫前要加 await,可以同時做很多件事。

接線

  1. 用連接線把感應器插在主機的 A 孔(A~F 任一孔都可以)。
  2. 程式裡的孔要選同一個:內建指令用 Port.A~Port.F;函式庫的 port 參數多半是 1~6,對應 A~F。
  3. 接頭卡榫朝上,輕輕推進去。

注意

Servo6 即將推出:已完成電路與韌體,正在做最後的主機實測,規格以正式上市版本為準。只支援 SPIKE Prime(不支援 Robot Inventor 與 EV3)。

接線與供電

  1. 主機通訊線:把擴充器的 SPIKE 連接線插進主機任一孔(Port A~F)。
  2. 接舵機:舵機 3 線插頭依板上標示(訊號/VCC/GND)插到 CN1~CN6,可接 SG90、MG996R 這類 500~2500 µs 訊號的舵機。
  3. 不用接電池:主機握手完成後會自動把電池電壓送到擴充器,綠燈由快閃轉為恆亮。舵機電源總電流上限約 0.75 A,大扭力舵機請先確認工作電流。

提示

剛上電時擴充器不會輸出任何脈衝,舵機不會亂跳;收到第一個角度指令時會直接到位(不套速度斜坡),之後的指令才會用你設定的速度慢慢轉。

放進函式庫

  1. 主機要是 Pybricks 韌體 v4.0 以上。
  2. 下載 Pybricks 函式庫+範例(.zip),把 MBC_servo6_Lib.py 放進 Pybricks 專案(跟主程式同一層),就能 import。

第一次執行要按 Y

函式庫用 UARTDevice(port, 115200, power_pin=1) 主動要求主機把電池電壓送到擴充器。第一次執行主控台會出現:

Custom electronics may damage your LEGO hub ... Press Y to proceed.

按 Y(只需一次,主機會記住)。按 N 的話舵機不會有電。

from pybricks.tools import wait
from MBC_servo6_Lib import MBC_SERVO6
sv = MBC_SERVO6(1, False)      # 擴充器插在 Port A(1=A … 6=F),False = 一般模式
sv.servo_angle(1, 90)          # CN1 轉到 90°
wait(1000)
sv.stop_all()                  # 程式結束前放鬆所有舵機

提示

擴充器沒有看門狗,程式結束後舵機會維持最後位置;要放鬆請在程式最後呼叫 stop_all()(多工寫法用函式庫版 run_task 會自動做)。堵轉自動放鬆後,再送同一個角度不會重新上力,請先送不同角度或先 servo_release()。

第一次測試

  1. 主機開機,在 code.pybricks.com 連上主機。
  2. 匯入並打開本頁的範例 1,按 ▶。
  3. 主控台印出的數字跟著感應器前方的東西變化,就是接好了。

常見問題

  • 出現 ImportError? 函式庫沒有匯入到同一個專案,或檔名跟 import 的名字不同。把檔名改成 `` 再匯入一次。
  • 範例跑不起來、指令不認得? 主機韌體太舊:本站範例照 Pybricks v4.1 寫,先把主機更新到 v4.1。3.6.1 已不再更新,舊版檔案在下載專區。
  • 感應器拔線(或線鬆了)怎麼辦? 程式不會停下來:函式庫會回傳上一次讀到的值,並在主控台印一次提醒(中英並列:MBC: Port C 讀不到感應器,先回傳上一次的值 / no sensor, using the last value);開機時就沒接上的話回傳 None。要在程式裡檢查,用物件的 sensor_ok():最近一次有讀到是 True,讀不到是 False(多工模式要寫 await)。插回去後函式庫會繼續讀;如果是開機時就沒接上、又用多工模式,要重新執行程式。
  • 標「只有 Pybricks 版」的範例讀到怪數字? 那個範例用的是感應器 2026-10 以後韌體的新模式,舊韌體讀到的會是別的數字。
  • 換回官方 App 後連不上? 主機現在是 Pybricks 韌體:用 SPIKE App 換回樂高原廠韌體。

範例

這個軟體的範例程式還在準備中,會跟產品一起上線;需要的話請先 聯絡我們。

其他問題

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

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

下載

本頁依據

  • 主機與軟體清單:_build/guides.json
  • 安裝與設定:_build/guides/software/spike-pybricks.zh.md、_build/guides/product/servo6/spike-pybricks.zh.md
  • 範例:sensors/servo6/spike-examples.md
LINE 詢價選購指南