LEGO® Education 如何使用網路藍牙和 Web Serial API

由樂高組成的街舞者模型。

LEGO® Education SPIKE™ Prime 套裝組合是一項 STEAM (科學、技術、工程、藝術和數學) 學習工具,適用於 6 年級至 8 年級 (約 11 至 13 歲) 的學生。

SPIKE Prime 結合了色彩繽紛的 LEGO 建構元素、簡單易用的硬體,以及以 Scratch 和 Python 為基礎的直覺式拖曳程式設計語言,無論學生的學習程度為何,都能透過有趣的學習活動持續吸引他們,進行批判性思考並解決複雜問題,同時享受學習樂趣!

程式設計經驗

學生可以使用圖示區塊、文字區塊 (預設) 或 Python 程式碼來編寫模型。程式設計環境是根據 Scratch 編輯器改編而成,許多學生在學校接受早期 STEAM 教育時就已熟悉這個編輯器。

在兩種視覺模式中,學生可以將積木拖曳到程式設計畫布上,藉此連結積木。並連結各種區塊。

樂高程式設計環境,其中包含字詞方塊程式。

進階程度較高的學生可以選擇直接使用實際的 Python 程式碼,該程式碼內建知識庫,可在學生編寫程式時提供支援。

使用 Python 程式的 LEGO 程式設計環境。

在 LEGO Education SPIKE 應用程式中建立程式後,學生就可以透過藍牙或 USB 連線,將程式傳送至 LEGO Education Spike Prime 中樞。中樞會執行程式並控制 LEGO 模型。

隨附硬體

SPIKE Education Kit 的核心是控制器,用於控制感應器和馬達等其他硬體。套件包含色彩感應器、距離感應器和力學感應器。還有兩個馬達:一個大、一個中。中樞會透過藍牙或 USB 連接至電腦。

LEGO SPIKE Education 套件可編程的零件。
大型中樞、三個感應器 (分別用於偵測顏色、距離和力道) 和兩個馬達。

支援的應用程式

除了特定平台的應用程式,LEGO 也提供 SPIKE 網頁應用程式,網址為 spike.legoeducation.com。由於應用程式不會在瀏覽器中快取,因此使用者必須隨時連上網際網路,網頁應用程式才能運作。

LEGO 官方支援 Windows 10 和 11、MacBook 和 Chromebook 上的 Chrome 瀏覽器。我們預計在日後推出改善快取功能和讓應用程式可供安裝的功能。

連線至 SPIKE Hub

SPIKE Prime 中樞和 SPIKE Essential 中樞可透過藍牙或 USB 連線至電腦。根據預設,網頁應用程式會使用藍牙和 Web Bluetooth API

或者,如果使用者透過 USB 連線,網路應用程式會使用 Web Serial API。在兩種情況下,除了 USB 傳輸線外,連線流程幾乎相同。

LEGO Education SPIKE 應用程式,內含 USB 連線操作說明。

連線後,學生可將課程上傳至大型中樞的 20 個儲存空間中。

LEGO Education SPIKE 的「Download to Hub」使用者介面。

如要與中樞溝通,Web Bluetooth 和 Web Serial API 分別需要 BluetoothDeviceSerialPort。這些資訊會在從實際應用程式擷取的程式碼片段中取得。

Web Bluetooth API 連線

(X.next = 4),
  navigator.bluetooth.requestDevice({
    filters: [
      {
        namePrefix: 'GDX',
      },
    ],
    optionalServices: ['d91714ef-28b9-4f91-ba16-f0d9a604f112'],
  });

Web Serial API 連線

const v = yield navigator.serial.requestPort({
  filters: [{
    usbVendorId: Zt.SerialVendorId.LEGO // 1684
  }]
});
yield v.open({
  baudRate: 115200
});

採用以網路為優先的做法並使用網路硬體 API 的原因

目前,LEGO 會維護 Android、macOS/iPadOS 和 Windows 適用的獨立版本應用程式,以及舊版版本的特定平台應用程式,此外還有網頁應用程式。在 Chrome 中支援底層網路硬體 API 的平台 (即 macOS、Windows 和 ChromeOS) 上推送網頁應用程式後,LEGO 開發人員就能大幅減少應用程式維護負擔。

另一個原因是下載大小。網頁應用程式下載檔案總大小不到 20 MB,而 macOS 和 iPadOS 應用程式大小為 115 MB,Android 應用程式大小為 178 MB,Windows 應用程式大小則為 292 MB。不過,初始安裝作業不包含教室所需的教材。下載這項素材後,大小會增加近 1 GB。在網頁應用程式中,課程內容會以串流方式提供,讓使用者隨時都能取得最新版本,並只下載他們正在觀看的課程。

除了這些技術層面的理由之外,在教室中使用網路應用程式也相當簡單,這也是另一個採用網路優先策略的強力理由。學生不必安裝應用程式,也不必保持應用程式更新。而是直接點選連結,並一律使用最新版本。從 LEGO 的角度來看,內容更新一向是獨立於應用程式商店審查程序的。

在網路上動手打造樂高積木

LEGO 一直以來都是以創意組合積木,而 LEGO Education SPIKE 可透過網路瀏覽器存取,因此這個套件也不例外。

開發人員社群已開始建立與 SPIKE 互動的程式碼。舉例來說,PyREPL-JS 是由塔夫斯大學的 Gabriel Sessions 所發起。PyREPL-JS 提供 MicroPython REPL (讀取-評估-列印迴圈),讓網頁與 SPIKE 中樞通訊。Ethan Danahy 也是 Tufts 的學生,他使用這個 REPL 為多個 SPIKE Prime 的網路介面提供服務,其中一個是與音訊檔案同步的 breakdancer

該大學舉辦了「使用 SPIKE 進行機器學習」工作坊,並提供機器人遊樂場,提供操作說明和程式碼範例。建議您從 Hello SPIKE 開始。

與音訊檔案同步的樂高街舞者模型。

透過允許學生在瀏覽器中與實體 LEGO 模型進行通訊,Web Serial 和 Web Bluetooth API 為教育、創意和娛樂應用程式開啟了無限可能。學生將一律使用最新版應用程式,無須自行更新。

長期來說,LEGO 開發人員需要維護的應用程式會減少,這代表成本和開發工作量也會減少,讓他們有更多時間從事 LEGO 最擅長的創意活動。