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

由乐高组装而成的跳舞者模型。

LEGO® Education SPIKETM Prime Set 是一款 STEAM(科学、技术、工程、艺术和数学)学习工具,适合六年级到八年级(大约 11 到 13 年级)的学生。

SPIKE Prime 将色彩缤纷的乐高建筑元素、简单易用的硬件,以及基于 Scratch 和 Python 的直观拖放式编码语言结合在一起,通过趣味十足的学习活动持续吸引学生,进行批判性思考并解决复杂问题,无论学生的学习水平如何...都能在享受乐趣的同时!

编程经验

学生可以使用图标块、单词块(默认)或 Python 代码来编写他们的模型。编程环境基于 Scratch 编辑器进行了调整,许多已在学校接受 STEAM 早期教育的学生对它非常熟悉。

在两种可视化模式下,学生可以将块拖放到编程画布上,从而将其连接起来。它们通过把不同的块连起来,把它们连起来。

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

更高级的学生可以选择直接使用真正的 Python 代码,该代码带有集成的知识库,可为学生编写代码提供支持。

包含 Python 程序的乐高编程环境。

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

随附硬件

SPIKE Education 套件的大脑是 hub,用于控制传感器和电机等其他各种硬件。该套件包含颜色传感器、距离传感器和力传感器。这种电机也有两种:一个大电机,一个中等电机。集线器通过蓝牙或 USB 连接到计算机。

LEGO SPIKE Education 套件的可编程部件。
大型 hub,三个颜色、距离和力传感器,以及两个电机。

支持的应用

除了平台专用应用之外,乐高还提供了 SPIKE Web 应用,该应用可通过 spike.legoeducation.com 访问。该应用未缓存在浏览器中,因此用户始终需要连接到互联网才能运行 Web 应用。

乐高公司正式支持 Windows 10 和 11 上的 Chrome 浏览器、MacBooks 以及 Chromebook。缓存改进和使应用可安装是计划在未来推出的功能。

连接到 SPIKE Hub

SPIKE Prime hub 和 SPIKE Essential hub 可以通过蓝牙或 USB 连接到计算机。默认情况下,Web 应用会将蓝牙与 Web Bluetooth API 结合使用。

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

LEGO Education SPIKE 应用,提供了 USB 连接说明。

连接后,学生可将其节目上传到大型 hub 的 20 个存储槽中的一个。

LEGO Education SPIKE“Download to Hub”(下载至中心)界面。

如需与 hub 通信,Web Bluetooth API 和 Web Serial API 需要分别使用 BluetoothDeviceSerialPort。这些信息从从实时应用获取的代码段中获取。

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 的原因

目前,乐高不仅维护着 Web 应用,还维护着适用于 Android、macOS/iPadOS 和 Windows 的独立版本应用,此外还维护着针对具体平台应用的旧版。通过在支持 Chrome 中的底层 Web 硬件 API(即 macOS、Windows 和 ChromeOS)的平台(即 macOS、Windows 和 ChromeOS)上推送该 Web 应用,LEGO 开发者可显著减轻其应用的维护负担。

另一个原因是下载大小。Web 应用的总下载大小不到 20 MB,而 macOS 和 iPadOS 应用的总下载大小为 115 MB,Android 应用为 178 MB,Windows 应用的总下载大小为 292 MB。但首次安装时并不包含课堂所需的课程资料。下载此资料后,大小将增加约 1 GB。在 Web 应用中,课程内容是流式传输的,这可让用户始终使用最新版本,并且仅下载他们正在查看的确切课程。

除了这些技术原因之外,课堂的易用性是走向网络优先的另一个重要因素。学生无需安装应用并保持更新。他们只需要点击链接,并始终使用最新版本。乐高公司认为,内容更新始终是可能的,与应用商店审核流程无关。

在线打造乐高应用

乐高始终专注于创造性地组装积木,用户可通过网络浏览器访问 LEGO Education SPIKE,此套件也不例外。

开发者社区已经开始创建可与 SPIKE 对话的代码。例如,PyREPL-JS 由塔夫茨大学的 Gabriel Sessions 启动。PyREPL-JS 为网页提供 MicroPython REPL(读取-评估-输出循环),以便与 SPIKE hub 通信。来自 Tufts 团队的 Ethan Danahy 随后将此 REPL 用于多个适用于 SPIKE Prime 的 Web-Interface,其中一个是同步到音频文件的 breakdancer

该大学举办了使用 SPIKE 进行机器学习的研讨会,并举办了 Robotics Playground 和说明和代码示例。建议从 Hello SPIKE 开始。

跳舞者 LEGO 模型已同步到音频文件。

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

从长远来看,乐高开发者需要维护的应用将减少,这意味着可以降低成本和减少开发工作,从而腾出更多时间来做乐高最有名的事情:释放创造力。