蓝牙设备与Scratch3.0
文章目录
前言
本文的目标是帮助开发者将任意的蓝牙设备接入Scratch3.0,当然前提是你了解该设备的蓝牙协议细节。如果它没有开放协议,你又想接入,需要做些破解工作,这块当然也非常有趣,但不是本文关注的话题,有兴趣的话可以读我之前关于BLE的文章, Bleah是个非常好的攻击工具,值得了解:)
蓝牙
我们讨论两类蓝牙设备:
- 传统蓝牙(2.0)
- 低功耗蓝牙(4.0/5.0)
传统蓝牙(2.0)
对于传统蓝牙,一般使用串口与之通信,连接之后,当作普通串口使用即可。
希望将传统蓝牙设备接入Scratch3.0,推荐使用codelab-adapter。
例子
我们此前使用codelab-adapter将优必选 Alpha系列机器人接入到Scratch3.0中,源码已经开放:extension_ubtrobot
同时支持Windows/MacOS/Linux,Windows支持windows7/windows8/windows10.
如果大家需要将传统蓝牙(2.0)设备接入Scratch3.0,可以参考这个例子。
低功耗蓝牙(4.0/5.0)
我个人非常偏好低功耗蓝牙(BLE)设备,我相信它是教器的未来,席卷而来的bluetooth5.0更是为物联网带来了许多令人振奋的特性。
micro:bit便支持蓝牙4.0, 树莓派3也支持。新设备的蓝牙几乎都是4.0以上了。
将BLE设备接入Scratch3.0,目前的最佳方式是采用官方的Scratch Link。codelab-adapter在未来也可能支持BLE设备(通过一个通用的插件来实现这些),但我们希望等到系统对BLE的支持更好之后来做。
Scratch Link对系统环境要求比较严苛,需要Windows10的某个版本以上,对MacOS的版本也有要求,这不能怪Scratch Link,当前操作系统对BLE的支持程度参差不齐,只能等时间淘汰旧系统。BLE是未来,我相信是很清晰的。
我们假设Scratch Link运行正常,那么要如何通过Scratch Link将BLE设备接入Scratch3.0呢,这块已经有很多例子了:
原理上,你可以把Scratch Link看作Scratch3.0与BLE设备通信的透明代理。
如果你对通信的细节和原理有更多兴趣,可以参考我之前对micro:bit与Scratch3.0通信细节的分析:分析scratch3.0与micro:bit的通信, 理解这些细节后,你就可以做任何改造了。
我的建议
- 推荐使用NRF的调试工具。
- 推荐使用UART Service(micro:bit就是这样做的)
文章作者 种瓜
上次更新 2019-01-22