LEGO® Education 如何使用网络蓝牙和 Web Serial API

用乐高积木组装的街舞者模型。

LEGO® Education SPIKE™ Prime 套装是一款 STEAM(科学、技术、工程、艺术和数学)学习工具,适合 6-8 年级(约 11-13 岁)的学生。

SPIKE Prime 将色彩鲜艳的乐高积木、易于使用的硬件和基于 Scratch 和 Python 的直观拖放式编码语言融为一体,通过有趣的活动让学生持续参与其中,培养批判性思维,解决复杂问题,无论学生的学习水平如何,都能乐在其中!

编程经验

学生可以使用图标块、文字块(默认)或 Python 代码来为模型编程。编程环境改编自 Scratch 编辑器,许多学生在学校的早期 STEAM 教育中已经熟悉该编辑器。

在两种可视化模式下,学生可以通过将代码块拖放到编程画布上,来连接代码块。它们通过连接各种块来将它们关联起来。

包含字词块程序的乐高编程环境。

程度较好的学生可以选择直接使用真实的 Python 代码,该代码附带集成知识库,可在学生编写代码时提供支持。

包含 Python 程序的 LEGO 编程环境。

学生在 LEGO Education SPIKE 应用中创建程序后,可以通过蓝牙或 USB 连接将程序发送到 LEGO Education Spike Prime 集线器。中枢执行程序并控制 LEGO 模型。

随附硬件

SPIKE 教育套装的核心是集线器,它用于控制各种其他硬件,例如传感器和电机。该套装包含颜色传感器、距离传感器和力传感器。此外,还有两个电机:一个大型电机和一个中型电机。该集线器通过蓝牙或 USB 连接到电脑。

LEGO SPIKE Education 套件的可编程部分。
大型中枢、三个传感器(用于检测颜色、距离和力)和两个电机。

支持的应用

除了特定于平台的应用之外,LEGO 还提供 SPIKE Web 应用,该应用可在 spike.legoeducation.com 上访问。该应用不会缓存在浏览器中,因此用户始终需要连接到互联网才能使用该 Web 应用。

LEGO 正式支持 Windows 10 和 11、MacBook 和 Chromebook 上的 Chrome 浏览器。我们计划在未来推出缓存改进功能,并使应用可安装。

连接到 SPIKE 集线器

SPIKE Prime 集线器和 SPIKE Essential 集线器可以使用蓝牙或 USB 连接到电脑。默认情况下,Web 应用使用 Web Bluetooth API 通过蓝牙进行通信。

或者,当通过 USB 连接时,Web 应用会使用 Web Serial API。在这两种情况下,除了 USB 线缆之外,连接流程几乎完全相同。

包含 USB 连接说明的 LEGO Education SPIKE 应用。

连接后,学生可将程序上传到大型集线器的 20 个存储空间之一。

LEGO Education SPIKE“下载到 Hub”界面。

为了与中枢通信,Web 蓝牙和 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
});

采用 Web 优先方法并使用 Web 硬件 API 的原因

目前,LEGO 为 Android、macOS/iPadOS 和 Windows 维护了独立版本的应用;此外,还维护了旧版的平台专用应用以及 Web 应用。通过在支持 Chrome 中底层 Web 硬件 API 的平台(即 macOS、Windows 和 ChromeOS)上推送 Web 应用,LEGO 开发者可以大幅减轻应用维护负担。

另一个原因是下载大小。Web 应用的总下载量不到 20 MB,而 macOS 和 iPadOS 应用的大小为 115 MB,Android 应用的大小为 178 MB,Windows 应用的大小为 292 MB。不过,初始安装不包含课堂上所需的课程材料。下载此素材后,大小会增加近 1 GB。在 Web 应用中,课程内容以流式传输,这使得用户始终能够获得最新版本,并且仅下载他们正在查看的确切课程。

除了这些技术原因之外,教室使用的简易性也是优先考虑 Web 的另一个有力论据。学生无需安装应用并保持应用处于最新状态。相反,他们只需点击链接,即可始终使用最新版本。从 LEGO 的角度来看,内容更新始终是可能的,与应用商店审核流程无关。

在网页上使用 LEGO 积木进行创意搭建

乐高一直以来都是关于创造性地组装积木,而乐高教育 SPIKE 可通过网络浏览器访问,因此这款套装也不例外。

开发者社区已开始创建可与 SPIKE 对话的代码。例如,PyREPL-JS 是由塔夫茨大学的 Gabriel Sessions 启动的。PyREPL-JS 提供了一个 MicroPython REPL(读取-求值-输出循环),用于让网页与 SPIKE 集线器通信。来自塔夫茨大学的 Ethan Danahy 随后将此 REPL 用于多个 SPIKE Prime 的 Web 界面,其中一个是与音频文件同步的街舞演员。

该大学举办了一场关于使用 SPIKE 进行机器学习的研讨会,并开设了一个机器人游乐场,其中包含说明和代码示例。建议先从 Hello SPIKE 开始。

与音频文件同步的街舞舞者 LEGO 模型。

通过允许学生在浏览器中与实体 LEGO 模型进行通信,Web Serial 和 Web Bluetooth API 为教育、创意和娱乐应用开辟了无限可能。学生将始终使用最新版本的应用,而无需更新。

从长远来看,LEGO 开发者需要维护的应用会更少,这意味着成本和开发工作量会减少,从而有更多时间专注于 LEGO 最擅长的事情:激发创造力。