惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
Microsoft Security Blog
Microsoft Security Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Vercel News
Vercel News
Application and Cybersecurity Blog
Application and Cybersecurity Blog
C
Check Point Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
The Hacker News
The Hacker News
L
LINUX DO - 热门话题
T
Tenable Blog
Hugging Face - Blog
Hugging Face - Blog
Google Online Security Blog
Google Online Security Blog
博客园 - Franky
P
Proofpoint News Feed
H
Hacker News: Front Page
P
Privacy & Cybersecurity Law Blog
月光博客
月光博客
P
Proofpoint News Feed
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
The GitHub Blog
The GitHub Blog
云风的 BLOG
云风的 BLOG
博客园_首页
www.infosecurity-magazine.com
www.infosecurity-magazine.com
C
CERT Recently Published Vulnerability Notes
Forbes - Security
Forbes - Security
I
InfoQ
Stack Overflow Blog
Stack Overflow Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Attack and Defense Labs
Attack and Defense Labs
N
News and Events Feed by Topic
博客园 - 叶小钗
T
Threat Research - Cisco Blogs
aimingoo的专栏
aimingoo的专栏
D
Darknet – Hacking Tools, Hacker News & Cyber Security
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Hacker News - Newest:
Hacker News - Newest: "LLM"
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
O
OpenAI News
G
Google Developers Blog
Martin Fowler
Martin Fowler
罗磊的独立博客
S
SegmentFault 最新的问题
T
Tor Project blog
量子位

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟 从Python转向Pharo https://blog.just4fun.site/post/iot/iot-open-source-projects/ Python异步编程笔记 https://blog.just4fun.site/post/iot/iot-open-source-hardware-community/ 万物积木化开发者社区 CodeLab ❤️ Blender Scratch3技术分析之云变量 API(第7篇) [译]对管道(Pipes)的偏爱 [译]提出正确的问题比得到正确答案更重要 蓝牙设备与Scratch3.0 创建你的第一个Scratch3.0 Extension Scratch3技术分析之项目内部数据(第6篇) Scratch3技术分析之社区 API(第5篇) Scratch3技术分析之User API(第4篇) Scratch3技术分析之项目主页API(第3篇) Scratch3技术分析之静态资源API(第2篇) Scratch3.0、micro:bit与Windows7 https://blog.just4fun.site/post/iot/zerynth-vs-micropython/ 核聚变、方所与半宅空间 可视化编程为何是个糟糕的主意 codelab.club周末聚会 关于codelab.club '下一件大事'是一个房间 Hungry Robot - Eat everything 编程作为一种思考方式 今日简史 史蒂夫·乔布斯传 罗素自选文集 https://blog.just4fun.site/post/edx/tianjin-scratch-ai/ https://blog.just4fun.site/post/edx/richie-cms-openedx/ 徒步武功山 WebUSB与micro:bit 积木化编程与3D场景 夜宿武功山顶 scratch3-adapter接入优必选Alpha系列机器人 https://blog.just4fun.site/post/edx/video-migration-note/ scratch3-adapter重构笔记 https://blog.just4fun.site/post/edx/edx-community-members/ 两种硬件编程风格的比较 使用micro:bit自制PPT翻页笔 柏拉图对话集 scratch3.0 + micro:bit 七月电影放映计划 非营利组织的管理 Screenly--用树莓派让任何屏幕变为可编程的数字标牌 以最佳实践开始你的Django项目 micro:bit与事件驱动 为Scratch3.0设计的插件系统(上篇) OCR应用一例 近两年读过的一些好书 blockly开发之使用python驱动浏览器中的turtle(2) 牛顿新传 文学理论入门 逻辑的引擎 人生的意义 blockly开发之生成并运行js代码(1) blockly开发之hello world(0) micro:bit使用笔记 神器之Termux https://blog.just4fun.site/post/iot/micropython-notes/ Cozmo what is this Scratch的前世今生 下段旅程 我行在远方 爆裂 途中杂记 https://blog.just4fun.site/post/edx/open-edx-startup/ cozmo系列之入门 - 有性格且可编程的机器人 PaperWeekly开发笔记 创业二三事
MicroBlocks 蓝牙客户端库
种瓜 · 2024-01-09 · via 夜行人

文章目录

前言

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
  • esp32(v2)
    • 固件 url: https://wwj718.github.io/post/img/esp32-ble-client-vm335.bin
  • m5atom(@yinxi & toio)
    • 固件 url: https://wwj718.github.io/post/img/m5atom-bleclient-20240113.bin

如何刷入 esp32 固件?

在线刷入固件:

如何使用

MicroBlocks 蓝牙客户端库(BLE client)是一个通用的积木库, 它允许用户基于它构建各种蓝牙驱动库, 以下是我目前构建的即可蓝牙驱动库:

MicroBlocks(BLE) client

从这里开始 MicroBlocks(BLE) client

基于这个库,应该可以很容易制作蓝牙手柄之类的库。

toio

从这里开始 toio client

可以连接多个 toio!

toio 的蓝牙协议完全开放, 你可以基于协议构建新的积木, 从而解锁更多 toio 功能。 coreCube.ts 也是很好的参考资料,可以将其视为 toio 蓝牙协议的 TypeScript 实现。

Scratch micro:bit

你需要 2 块板子:

然后你就可以将这个 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 块钱。

参考