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

以樂高組裝的街舞者模型。

LEGO® Education SPIKE™ Prime Set 是專為 6 到 8 年級學生 (約 11 到 13 歲) 設計的 STEAM (科學、技術、工程、藝術和數學) 學習工具。

SPIKE Prime 結合色彩繽紛的 LEGO 積木、簡單易用的硬體,以及以 Scratch 和 Python 為基礎的直覺式拖曳式程式設計語言,透過有趣的學習活動,持續吸引學生投入,不論學習程度如何,都能培養批判性思考能力,並解決複雜問題,同時享受樂趣!

程式設計經驗

學生可以使用圖示積木、文字積木 (預設) 或 Python 程式碼,為模型編寫程式。程式設計環境改編自 Scratch 編輯器,許多學生在學校的早期 STEAM 教育中已熟悉這項工具。

在兩種視覺模式中,學生可以將積木拖放到程式設計畫布上,藉此連結積木。他們會連接各種積木,將積木串連起來。

LEGO 程式設計環境,其中包含字詞積木程式。

程度較高的學生可以直接使用 Python 程式碼,並透過整合式知識庫取得支援。

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

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

隨附硬體

SPIKE Education 套件的大腦是中樞,可控制各種其他硬體,例如感應器和馬達。套件內含顏色感應器、距離感應器和力道感應器。此外,還有兩個馬達:一個大馬達和一個中馬達。集線器會透過藍牙或 USB 連接電腦。

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

支援的應用程式

除了平台專屬應用程式,LEGO 也提供 SPIKE 網頁應用程式,網址為 spike.legoeducation.com。這個應用程式不會快取在瀏覽器中,因此使用者必須連上網際網路,才能使用網頁應用程式。

LEGO 正式支援 Windows 10 和 11 的 Chrome 瀏覽器、MacBook 和 Chromebook。我們計畫在未來推出快取改善功能,並讓應用程式可供安裝。

連線至 SPIKE Hub

SPIKE Prime Hub 和 SPIKE Essential Hub 可以透過藍牙或 USB 連接電腦。根據預設,網頁應用程式會使用 Web Bluetooth API 搭配藍牙。

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

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

連結後,學生可將程式上傳至大型中樞的 20 個儲存空間之一。

LEGO Education SPIKE「下載至 Hub」使用者介面。

如要與中樞裝置通訊,Web Bluetooth 和 Web Serial API 分別需要BluetoothDevice和SerialPort。這些值是從即時應用程式擷取的程式碼片段中取得。

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。在網頁應用程式中,課程內容會以串流方式播放,因此使用者一律能取得最新版本,且只會下載正在觀看的課程。

除了上述技術原因外,網頁優先的另一個有力論點是,網頁版 Classroom 簡單易用。學生不必安裝應用程式,也不必保持更新。而是只要點選連結,就能隨時使用最新版本。LEGO 隨時可以更新內容,不受應用程式商店審查程序影響。

在網路上玩 LEGO

樂高一向是透過創意組裝積木,而 LEGO Education SPIKE 可透過網路瀏覽器存取,因此這款套件也不例外。

開發人員社群已開始建立可與 SPIKE 通訊的程式碼。舉例來說,PyREPL-JS 是由塔夫茨大學的 Gabriel Sessions 啟動。PyREPL-JS 提供網頁專用的 MicroPython REPL (讀取-評估-列印迴圈),可與 SPIKE 中樞進行通訊。同樣來自塔夫茨大學的 Ethan Danahy 接著使用這個 REPL,為 SPIKE Prime 建立多個網頁介面,其中一個是與音訊檔案同步的街舞者。

該大學舉辦了使用 SPIKE 進行機器學習的研討會,並提供附有說明和程式碼範例的機器人遊樂場。建議先從「Hello SPIKE」開始。

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

透過 Web Serial 和 Web Bluetooth API,學生可以在瀏覽器中與實體 LEGO 模型通訊,為教育、創意和娛樂應用程式開創無限可能。學生一律會使用最新版本應用程式,不必手動更新。

從長遠來看,LEGO 開發人員需要維護的應用程式會減少,這代表成本降低且開發工作減少,因此有更多時間從事 LEGO 最擅長的工作:激發創意。