![由 LEGO 組裝的破裂者模型。](https://developer.chrome.com/static/blog/lego-education-spike-web-bluetooth-web-serial/image/the-breakdancer-model-ass-d81f84cd25e2c.png?authuser=4&hl=zh-tw)
LEGO® Education SPIKETM Prime Set 是一個 STEAM (科學、科技、工程、藝術和數學) 學習工具,適合六至八年級 (約 11 到 13 年) 的學生使用。
SPIKE Prime 結合了色彩繽紛的 LEGO 建構元素、易用硬體,以及以 Scratch 和 Python 為基礎的直覺式拖曳程式語言,透過趣味學習活動持續讓學生進行批判性思考和解決複雜問題,且無論學習程度為何,都能享受學習樂趣!
程式設計體驗
學生會使用圖示區塊、文字區塊 (預設) 或 Python 程式碼來編寫模型。程式設計環境是根據「Scratch 編輯器」進行調整,對於許多在校內 STEAM 教育的學生而言,課程相當熟悉。
在兩種視覺模式中,學生只要將區塊拖曳至程式設計畫布中,即可連結區塊。藉由將多個區塊串連起來,連結出各個區塊。
![採用文字區塊程式的 LEGO 程式設計環境。](https://developer.chrome.com/static/blog/lego-education-spike-web-bluetooth-web-serial/image/the-lego-programming-envi-2b2c79c08c1e4.png?authuser=4&hl=zh-tw)
進階級學生可以選擇直接使用實際的 Python 程式碼,因為我們也整合了整合的知識庫,在學生寫程式時提供支援。
![使用 Python 程式的 LEGO 程式設計環境。](https://developer.chrome.com/static/blog/lego-education-spike-web-bluetooth-web-serial/image/the-lego-programming-envi-ea487623ad88e.png?authuser=4&hl=zh-tw)
在 LEGO Education SPIKE 應用程式中建立程式後,學生會透過藍牙或 USB 連線,將節目傳送到 LEGO Education Spike Prime 中樞。中樞裝置會執行程式並控管 LEGO 型號。
隨附硬體
SPIKE Education 套件的大腦是中樞裝置,用來控制感應器、馬達等其他硬體元件。這個套件包含色彩感應器、距離感應器和力量感應器。目前有 2 個變體: 一個大、一個中型中樞裝置會使用藍牙或 USB 連接至電腦。
![LEGO SPIKE Education 套件中可程式化的部分。](https://developer.chrome.com/static/blog/lego-education-spike-web-bluetooth-web-serial/image/the-programmable-parts-t-d2c503995629.png?authuser=4&hl=zh-tw)
支援的應用程式
除了平台專屬應用程式外,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 應用程式。](https://developer.chrome.com/static/blog/lego-education-spike-web-bluetooth-web-serial/image/lego-education-spike-app-8fc34dbc4fd35.png?authuser=4&hl=zh-tw)
連線後,學生會將程式上傳到大型中樞的 20 個儲存空間運算單元之一。
![LEGO Education SPIKE「Download to Hub」使用者介面。](https://developer.chrome.com/static/blog/lego-education-spike-web-bluetooth-web-serial/image/lego-education-spike-dow-39d0766b86896.png?authuser=4&hl=zh-tw)
如要與中樞通訊,Web Bluetooth 和 Web Serial API 需要分別使用 BluetoothDevice
或 SerialPort
。這些是從目前使用中應用程式的程式碼片段中取得。
網路藍牙 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 模型同步至音訊檔案。](https://developer.chrome.com/static/blog/lego-education-spike-web-bluetooth-web-serial/image/the-breakdancer-lego-mode-80c21738e9ace.png?authuser=4&hl=zh-tw)
Web Serial API 和 Web Bluetooth API 可讓學生在瀏覽器中與實體 LEGO 型號通訊,為教育、創意和娛樂應用程式開創無限可能。學生無需更新應用程式,就能隨時使用最新版應用程式。
長期以來,LEGO 開發人員需要維護的應用程式較少,這意味著降低成本和開發人力,能省下更多時間處理 LEGO 的主要成就:揮灑創造力。