![由樂高組成的街舞者模型。](https://developer.chrome.com/static/blog/lego-education-spike-web-bluetooth-web-serial/image/the-breakdancer-model-ass-d81f84cd25e2c.png?authuser=8&hl=zh-tw)
LEGO® Education SPIKE™ Prime 套裝組合是一項 STEAM (科學、技術、工程、藝術和數學) 學習工具,適用於 6 年級至 8 年級 (約 11 至 13 歲) 的學生。
SPIKE Prime 結合了色彩繽紛的 LEGO 建構元素、簡單易用的硬體,以及以 Scratch 和 Python 為基礎的直覺式拖曳程式設計語言,無論學生的學習程度為何,都能透過有趣的學習活動持續吸引他們,培養批判性思考能力並解決複雜問題,同時享受學習樂趣!
程式設計經驗
學生可以使用圖示區塊、文字區塊 (預設) 或 Python 程式碼來編寫模型。程式設計環境是根據 Scratch 編輯器改編而成,許多學生在學校接受早期 STEAM 教育時就已熟悉這個編輯器。
在兩種視覺模式中,學生可以將積木拖曳到程式設計畫布上,藉此連結積木。並連結各種區塊。
![樂高程式設計環境,其中包含字詞方塊程式。](https://developer.chrome.com/static/blog/lego-education-spike-web-bluetooth-web-serial/image/the-lego-programming-envi-2b2c79c08c1e4.png?authuser=8&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=8&hl=zh-tw)
在 LEGO Education SPIKE 應用程式中建立程式後,學生就可以透過藍牙或 USB 連線,將程式傳送至 LEGO Education Spike Prime 中樞。中樞會執行程式並控制 LEGO 模型。
隨附硬體
SPIKE Education Kit 的核心是控制器,用於控制感應器和馬達等其他硬體。套件包含色彩感應器、距離感應器和力學感應器。還有兩個馬達:一個大、一個中。中樞會透過藍牙或 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=8&hl=zh-tw)
支援的應用程式
除了特定平台的應用程式外,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 連線操作說明。](https://developer.chrome.com/static/blog/lego-education-spike-web-bluetooth-web-serial/image/lego-education-spike-app-8fc34dbc4fd35.png?authuser=8&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=8&hl=zh-tw)
如要與中樞通訊,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、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 開始。
![與音訊檔案同步的樂高街舞者模型。](https://developer.chrome.com/static/blog/lego-education-spike-web-bluetooth-web-serial/image/the-breakdancer-lego-mode-80c21738e9ace.png?authuser=8&hl=zh-tw)
透過允許學生在瀏覽器中與實體 LEGO 模型進行通訊,Web Serial 和 Web Bluetooth API 為教育、創意和娛樂應用程式開啟了無限可能。學生將一律使用最新版應用程式,無須自行更新。
長期來說,LEGO 開發人員需要維護的應用程式會減少,這表示成本和開發工作量也會減少,讓他們有更多時間從事 LEGO 最擅長的創意發揮。