5

MicroBlocks ❤️ OctoStudio: 将手机用作 MicroBlocks 的传感器与执行器

 9 months ago
source link: http://wwj718.github.io/post/%E7%BC%96%E7%A8%8B/microblocks-octostudio/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

破解 OctoStudio 过程中,我发现, 在电脑上构建 OctoStudio 信号桥接器,不令人满意,原因有 3 点:

  1. 电脑通常被认为是蓝牙客户端,而不被认为是蓝牙外设(提供某种蓝牙服务), 这导致使用电脑发送蓝牙广播(OctoStudio beam 基于这个原理)会遇到各种烦人问题。
  2. 即便只是将电脑作为蓝牙客户端接收 OctoStudio 发出的信号,依然有不确定的延迟
  3. 无法脱离电脑使用,这限制了在户外使用的可能性。

更好的方向是,在支持蓝牙的微控制器(如 ESP32)上构建 OctoStudio 收发器。

如果你想让电脑上的软件与 OctoStudio 交互,可以让支持蓝牙的微控制器给电脑中转消息,后文会细说。

MicroBlocks 中的 OctoStudio 库

要想在 MicroBlocks 使用 OctoStudio 库,需要先安装为 OctoStudio 定制的固件。

目前提供了 micro:bit V2 和 esp32 的固件

micro:bit V2 固件

下载固件: https://wwj718.github.io/post/img/microbit-OctoStudio-20231202.hex

拖拽到 micro:bit 模拟的 U 盘里。

安装完成后,打开 这个程序,连上板子,开始玩吧!

esp32 的固件

首先将 esp32-octo 固件(https://wwj718.github.io/post/img/esp32-octo-20231113.bin) 刷入 ESP32 板子(我用的是 ESP32 DEVKIT V1, 你也可以在其他 ESP32 板子上使用)。

通过 MicroBlocks(1.2.44及以上版本) 的 显示高级积木 > 从 URL 安装 ESP 固件 来刷入固件:

MicroBlocks-OctoStudio-01.png

安装完成后,打开 这个程序,连上板子,开始玩吧!

通过 MicroBlocks OctoStudio 库,我们可以在编程板与手机之间进行双向通信,可以在离线的情况下使用它. 而且多个手机与多个编程板之间可以任意交互。与朋友一起,带去你们的户外秘密基地里玩吧!

玩些什么呢?一种有助于思考的视角是,将手机看作 MicroBlocks 的传感器与执行器。

提醒: OctoStudio 的"发送/等待信号" 积木不大稳定, 安卓比iOS更不稳定。这个问题有可能会在 OctoStudio 未来版本得到改善,但不确定,如果是手机蓝牙堆栈本身不适合这个使用场景,可能根本的改进是困难的。如果发现收发信号出现问题,重启一下手机上的 OctoStudio 应用。

让电脑与 OctoStudio 通信

这部分仅适用于 esp32(需要板子有wifi功能)

你可能想让 OctoStudio 与电脑程序互动,诸如与 Python 应用互动。

很容易做到这点。

这是个通信问题。既然我们可以在 MicroBlocks 中收发 OctoStudio 信号,只要知道 MicroBlocks 如何与电脑通信,信息就可以在它们之间任意流动。有很多办法做到这点,我最推荐使用 WiFi radio, 你可以通过我之前写的这个Python库(microblocks_wifi_radio)来轻松完成。

简而言之, WiFi radio 库类似 micro:bit radio, 可以给局域网里的设备广播消息。因为基于 WiFi, 所以不只能够在esp32/esp8266 之间广播消息,还可以在 WiFi 编程板与电脑之间传递消息(只需确保它们同个局域网)。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK