MicroBlocks 蓝牙客户端库
文章目录
前言
MicroBlocks 蓝牙客户端库允许带有蓝牙的板子(esp32/micro:bit v2)作为客户端连接到蓝牙外围设备, 并与其进行通信。
使用场景
一些典型使用场景包括:
- 连接并驱动乐高全家桶(LEGO wedo2, LEGO remote…), 以及各种有趣的蓝牙设备: toio、Kano Wand、anki overdrive…
- 让一个 MicroBlocks 板子作为蓝牙客户端(之前我们总是在电脑上运行蓝牙客户端), 给另一个 MicroBlocks 板子发消息。诸如一个作为手柄(客户端), 一个作为小车。 由于一切都基于 BLE, 可以带到户外去玩,
- MicroBlocks 板子连接多个蓝牙设备, 板子充当消息中转站, 连接的蓝牙设备因此得以彼此交换消息, 交互逻辑使用 MicroBlocks 编写, 例如使用 kano wand 驱动 toio。CodeLab Adapter 的大量演示项目都可以这样实现。完全无需电脑和配置!适合演示。
- 扫描周围的蓝牙设备信息,用于设备或人员(借助随身携带的手机)的存在检测或接近检测。
开始使用
为了使用蓝牙客户端库, 需要刷入特殊的固件, 整个过程都在 MicroBlocks 图形化环境中完成, 不用有心理负担。
固件更新
如何为 esp32 刷入固件参考下文.
- esp32
- 固件 url:
https://wwj718.github.io/post/img/esp32-bleclient-20240113.bin
- 固件 url:
- m5atom(@yinxi & toio)
- 固件 url:
https://wwj718.github.io/post/img/m5atom-bleclient-20240113.bin
- 固件 url:
如何刷入 esp32 固件?
在线刷入固件:
如何使用
MicroBlocks 蓝牙客户端库(BLE client)是一个通用的积木库, 它允许用户基于它构建各种蓝牙驱动库, 以下是我目前构建的即可蓝牙驱动库:
- MicroBlocks(BLE) client
- toio
- Scratch micro:bit
- LEGO Remote Control
MicroBlocks(BLE) client
从这里开始 MicroBlocks(BLE) client
基于这个库,应该可以很容易制作蓝牙手柄之类的库。
toio
从这里开始 toio client
可以连接多个 toio!
toio 的蓝牙协议完全开放, 你可以基于协议构建新的积木, 从而解锁更多 toio 功能。 coreCube.ts 也是很好的参考资料,可以将其视为 toio 蓝牙协议的 TypeScript 实现。
Scratch micro:bit
你需要 2 块板子:
- 一块 micro:bit(v1 或 v2), 刷入 Scratch micro:bit 固件
- 一块 esp32, 刷入文章开头分享的固件
然后你就可以将这个 esp32 板子作为蓝牙客户端连接 micro:bit, 仿佛 Scratch 客户端那样对它进行编程。 值得注意的是在此, MicroBlocks 蓝牙客户端起到的功能与 Scratch 客户端相似。
从这里开始 Scratch micro:bit client
参考 scratch3_microbit 插件, 可以在 MiroBlocks 中构建更多积木来驱动 Scratch micro:bit.
LEGO Remote Control
从这里开始 LEGO remote client
FAQ
如何扫描周围蓝牙设备的信息
参考这个例子(目前仅支持 esp32, microbit v2 参考下文): scan and print
目前扫描的结果包含四个信息:
- deviceName
- deviceAddress
- serviceUUID
- deviceRSSI
microbit v2
目前蓝牙客户端库与 microbit v2 存在兼容性问题, 问题还在调查中。
如果你想用 microbit v2 来扫描蓝牙设备,可使用这个固件
参考这个例子。这个例程也适用刷了这个固件(https://wwj718.github.io/post/img/esp32-scan-and-print-20241114.bin
)的 esp32 .
可能的应用场景
蓝牙扫描在可编程空间的一个用例: 存在检测和接近检测,当用户选择打开手机蓝牙时(每个设备都有唯一标识),可以被环境监测到是否处在环境中,这比摄像头的隐私问题更少,而且用户可以自主选择是否允许手机被检测,主动权在用户。
似乎也可以用于野外藏宝活动。由于蓝牙的低功耗特性, 5A 电池可以在野外很轻松运行个几天。 esp32 C3 很便宜,即使不小心被发现被拿走, 成本大约就 10 块钱。
参考
- MicroBlocks 无线编程
- toio 的蓝牙协议
- toio coreCube.ts 也是很好的参考资料
文章作者 种瓜
上次更新 2024-01-09