MBC EXP6 六路馬達擴充器 × MBC SPIKE 積木網站

三個步驟用 MBC 積木網站控制 EXP6

在 MBC SPIKE 圖控編程網站 上,EXP6 不用自己匯入函式庫:先在「開機時執行一次」裡告訴網站 EXP6 接哪個埠,再放主迴圈,最後把讀值積木和動作積木放進去。左邊一步一步做,右邊的積木會跟著長出來;這些積木圖是直接從網站拼好匯出的,跟你在網站上看到的一樣。

網站免費、免登入;主機要裝 Pybricks 韌體(網站「SPIKE 主機」選單可以幫你燒)。EXP6 只能接 SPIKE Prime,而且要接上 EXP6 自己的電池,馬達才會動。

1

設定:哪個埠接 EXP6

程式的第一件事,是在黃色「開機時執行一次」下面接一塊「○ 埠 接 MBC EXP6六路馬達擴充」,網站才知道那個埠接的是 EXP6。

EXP6 的 Host 線插在主機哪個埠?
  1. 打開 MBC SPIKE 圖控編程網站,按「+」開一個新程式。
  2. 左邊積木類別點「MBC 感應器」→「EXP6六路馬達擴充」,第一顆就是「○ 埠 接 MBC EXP6六路馬達擴充」。
  3. 把它接在「開機時執行一次」下面,下拉選單選 C。
2

放主迴圈

讀感應器、控制馬達常常要一直重複,所以要有黃色的「主迴圈(一直重複)」。裡面先放一顆「等待 100 毫秒」,讓它每 0.1 秒跑一圈。

  1. 從「控制」拖出「主迴圈(一直重複)」,放在設定積木下面空白的地方(不用接在一起)。
  2. 再拖一顆「等待 100 毫秒」放進主迴圈。

網站產生的程式會自動放進多工架構(async),也會自動用 EXP6 函式庫的 run_task:背景一直跟 EXP6 打招呼,等待直接用「等待」積木就好,程式結束時馬達自動停。

3

使用讀值積木和動作積木

「MBC 感應器 → EXP6六路馬達擴充」裡有 7 顆讀值積木(圓角)和 9 顆動作積木(方塊)。每顆中間的埠要選跟第 1 步一樣的埠(C);後面的「擴充孔 1」是 EXP6 上的孔,填板子上印的 1~6。點一個功能,積木和輸出會換成它的範例。

模擬 EXP6(從上面看):選每個擴充孔接什麼,看馬達怎麼轉、右邊印出什麼

一開始孔 1、2 接馬達,孔 4 顏色、孔 5 超音波、孔 6 力量感應器,跟範例程式用的孔一樣。模擬畫面是示意:馬達速度 1% 當成每秒 10 度(實際要看馬達型號),感應器的數值也簡化過;紅色指針是轉軸的朝向,↻ = 順時針。拔掉擴充板時馬達會停,讀到的值都變成 0(不是上一次的值)。網站的程式有主迴圈、不會自己結束,馬達會照最後一個指令一直做,按主機的停止鍵才會停。

每顆積木的範例

16 顆積木(7 顆讀值、9 顆動作),每顆都有一組可以照著拼的範例(EXP6 接 C 埠)。轉角度、停止這類只做一次的動作放在「開機時執行一次」裡;一直重複的放進主迴圈。按「試試看」會切到第 3 步,右邊的積木和輸出會換成這個範例。

使用注意

  1. 設定積木只要一顆。同一個埠只能設定一次;讀值、動作積木中間的埠要跟設定積木一樣,選錯埠網站會在下載前提醒。
  2. 兩種孔號不要搞混:積木中間的「C 埠」是主機的埠(EXP6 的 Host 線插的地方);後面的「擴充孔 1」是 EXP6 上的孔。EXP6 只能接樂高馬達和樂高的顏色、超音波、力量感應器,MBC 的感應器請直接插主機。
  3. 不用下載函式庫、不用管心跳。網站下載程式時會自動把 EXP6 的函式庫一起傳到主機,背景也會一直跟 EXP6 打招呼,「等待」積木直接用。轉角度送出就往下做、不會等轉完,後面要接「等待」;剛開機時馬達大約 1 秒才準備好,範例先用「等待直到 裝置代碼 = 5」。
  4. 網站還沒有積木的功能(要用請改 Pybricks):馬達朝向(get_motor_abs_angle)、顏色代碼與紅綠藍/色相(get_color_color、get_color_rgb、get_color_hsv、get_color_red/green/blue、get_color_hue/sat/val)、兩輪一起停(drive_stop,可以用「全部馬達停止」代替)、調修正力道(motor_set_pid)、原始數值與回傳格式(get_port_raw、set_port_mode)、手動送心跳(keep_alive、keep_alive_wait,網站會自動處理)、是否連線(connected)。
  5. 拔掉擴充板不會讓程式停:讀到的值變成 0(不是上一次的值),終端機每秒最多印一行提醒,插回去自己重新連線。在模擬 EXP6 勾「拔掉擴充板」可以看到這個情形。