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

由 LEGO 組裝的破裂者模型。

LEGO® Education SPIKETM Prime Set 是一個 STEAM (科學、科技、工程、藝術和數學) 學習工具,適合六至八年級 (約 11 到 13 年) 的學生使用。

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

程式設計體驗

學生會使用圖示區塊、文字區塊 (預設) 或 Python 程式碼來編寫模型。程式設計環境是根據「Scratch 編輯器」進行調整,對於許多在校內 STEAM 教育的學生而言,課程相當熟悉。

在兩種視覺模式中,學生只要將區塊拖曳至程式設計畫布中,即可連結區塊。藉由將多個區塊串連起來,連結出各個區塊。

採用文字區塊程式的 LEGO 程式設計環境。

進階級學生可以選擇直接使用實際的 Python 程式碼,因為我們也整合了整合的知識庫,在學生寫程式時提供支援。

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

在 LEGO Education SPIKE 應用程式中建立程式後,學生會透過藍牙或 USB 連線,將節目傳送到 LEGO Education Spike Prime 中樞。中樞裝置會執行程式並控管 LEGO 型號。

隨附硬體

SPIKE Education 套件的大腦是中樞裝置,用來控制感應器、馬達等其他硬體元件。這個套件包含色彩感應器、距離感應器和力量感應器。目前有 2 個變體: 一個大、一個中型中樞裝置會使用藍牙或 USB 連接至電腦。

LEGO SPIKE Education 套件中可程式化的部分。
大型中樞,包含三個用於色彩、距離和力量的感應器,以及兩部馬達。

支援的應用程式

除了平台專屬應用程式外,LEGO 還提供 SPIKE 網頁應用程式,可透過 spike.legoeducation.com 存取。應用程式不會在瀏覽器中快取,因此使用者一律必須連上網際網路才能運作。

LEGO 正式支援 Windows 10 和 11、MacBooks 和 Chromebook 上的 Chrome 瀏覽器。我們計劃在未來推出快取改善功能,以及讓使用者可安裝應用程式。

連線至 SPIKE 中心

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

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

顯示 USB 連線操作說明的 LEGO Education SPIKE 應用程式。

連線後,學生會將程式上傳到大型中樞的 20 個儲存空間運算單元之一。

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

如要與中樞通訊,Web Bluetooth 和 Web Serial API 需要分別使用 BluetoothDeviceSerialPort。這些是從目前使用中應用程式的程式碼片段中取得。

網路藍牙 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 那一刻起,開發人員隨時都可以更新內容,不受應用程式商店審查程序。

Tinker 在網頁上與 LEGO 互動

LEGO 向來致力於發揮創意,組成磚塊,而 LEGO Education SPIKE 可透過網路瀏覽器存取,因此這套套件也不例外。

開發人員社群已開始建立與 SPIKE 通訊的程式碼。舉例來說,PyREPL-JS 的起源於塔夫斯大學的 Gabriel Sessions 中。PyREPL-JS 提供 MicroPython REPL (讀取–eval-print 迴圈) 功能,可讓網頁與 SPIKE 中樞通訊。此外,Tufts 的 Ethan Danahy 隨後將這個 REPL 用於多個 SPIKE Prime Web-Interfaces,其中一個是與音訊檔案同步的破裂節

該大學舉辦了一場使用 SPIKE 進行機器學習的研討會,並代管 Robotics Playground,當中包含操作說明和程式碼範例。建議您先使用 Hello SPIKE 開始。

已將斷行 LEGO 模型同步至音訊檔案。

Web Serial API 和 Web Bluetooth API 可讓學生在瀏覽器中與實體 LEGO 型號通訊,為教育、創意和娛樂應用程式開創無限可能。學生無需更新應用程式,就能隨時使用最新版應用程式。

長期以來,LEGO 開發人員需要維護的應用程式較少,這意味著降低成本和開發人力,能省下更多時間處理 LEGO 的主要成就:揮灑創造力。