Web 适合与服务器通信,但不适合与设备通信,目前可以通过 webBLE,WebSerial 和 WebSocket 等方式与外围设备进行连接。

Web Bluetooth

网页通过 Web Bluetooth API 向浏览器申请蓝牙控制的权限

参考示例Web Bluetooth Samples

优缺点

  • 浏览器兼容性问题,只支持 Chrome 45+ 的版本
  • 设备蓝牙兼容性问题
  • 需要向浏览器申请权限请求用户同意

Web Serial API

网页通过向浏览器申请串口的权限,进而和支持串口的设备进行通信

草案地址Draft Community Group Report 22 November 2019

优缺点

  • 该协议目前处于草案阶段,暂不稳定
  • 需要做一个 USB Dongle,协议会比较复杂
  • USB 驱动也可能有兼容性的问题
  • 浏览器兼容问题

介绍

Scratch Link 是 MIT 开发团队 LLK 提出的方案,帮助 Scratch 3.0 web 端与蓝牙外围设备进行连接。Scratch Link 是一个桌面应用,可以运行在 Windows 和 MacOS 平台,起代理的作用,在内部运行了一个 websocket 服务,与网页进行通信,再通过蓝牙服务与外围设备进行通信。

项目地址https://github.com/LLK/scratch-link

优缺点

  • 依赖桌面应用进行代理
  • 轻量、开源,支持 Win/MacOS 系统
  • 暂时只支持乐高 Mindstorm 机器人、Micro:bit 等蓝牙设备
  • 蓝牙兼容性问题

Codelab Adapter

介绍

CodeLab Adapter 是由 CodeLab 构建的基础项目(v2 是最新版本),可以用于连接 Scratch 3.0 和其他设备,无论是软件还是硬件,无论是 AI、开源硬件、现实世界的物体、还是虚拟世界的动画角色,在 CodeLab Adapter 的驱动下,皆可彼此互动。

软件的核心架构与 Scratch Link 类似,是代理软件 CodeLab Adapter 内部是 WebSocket Server 用于与 Scratch3.0 网页通信,然后通过 ZeroMQ 与各个设备之间连接通信,比如机器人、无人机等

架构参考 https://codelab-adapter-docs.codelab.club/dev_guide/Architecture/

项目地址

优缺点

  • 依赖桌面应用进行代理
  • 接入灵活,可以兼容任意的设备
  • 代理软件部署在如树莓派的设备上,可以兼容移动端,比如 iPad 设备

机器人案例