10分钟搞定 claude-desktop-buddy:M5StickC Plus 固件烧录与 BLE 配对快速入门
【免费下载链接】claude-desktop-buddyReference and an example for the Bluetooth API for makers in Claude Cowork & Claude Code Desktop项目地址: https://gitcode.com/gh_mirrors/cl/claude-desktop-buddy
claude-desktop-buddy是 Claude 官方出品的蓝牙硬件参考示例,教你把M5StickC Plus这块 ESP32 小硬件变成 Claude 桌面端的"桌面宠物":烧录固件、BLE 配对成功后,它会实时显示 Claude 正在做什么,还能直接在设备上批准或拒绝权限请求。全文按"固件烧录 → BLE 配对 → 日常使用 → 进阶玩法"四步展开,新手照着做,10 分钟就能点亮自己的硬件宠物。
一、它能做什么?先认识一下这只"电子宠物"
固件烧录到 M5StickC Plus 后,它会进入 7 种状态,用表情"演"出 Claude 的实时动态:
| 状态 | 触发条件 | 表现 |
|---|---|---|
| 😴 sleep | 未连接 | 闭眼慢呼吸 |
| 👀 idle | 已连接、无任务 | 眨眼、东张西望 |
| 💦 busy | 有会话在跑 | 流汗干活 |
| ⚡ attention | 等待你批准权限 | 警觉 +LED 闪烁 |
| 🎉 celebrate | 每 50K tokens 升级 | 放彩带 |
| 🌀 dizzy | 你晃了晃设备 | 螺旋眼 |
| ❤️ heart | 5 秒内快速批准 | 冒爱心 |
📌 本项目是参考实现:如果你只想自研设备,连这个仓库的代码都不用看,直接读 REFERENCE.md 里的 BLE 通信协议(Nordic UART 服务 + 按行分隔的 JSON)即可。
二、准备工作:硬件与软件清单
烧录前确认你手边有这些东西:
- 硬件:M5StickC Plus × 1(固件依赖 M5StickCPlus 库驱动屏幕/IMU/按键),USB 数据线
- 电脑:macOS 或 Windows,已安装 Claude 桌面端
- 烧录工具:PlatformIO Core(命令行版,按官方说明安装即可)
- 固件工程:platformio.ini 已配好 ESP32 + Arduino 框架,依赖库(M5StickCPlus、AnimatedGIF、ArduinoJson)会在首次编译时自动下载
拉取仓库:
git clone https://gitcode.com/gh_mirrors/cl/claude-desktop-buddy三、固件烧录:一条命令搞定
进入项目目录后,烧录只需一条命令:
pio run -t upload如果是从其他固件切换过来的设备,先擦除再烧录更稳妥:
pio run -t erase && pio run -t upload💡 烧录完成后想清空设备数据,不用连电脑:长按 A 键 → settings → reset → factory reset → 连点两下即可恢复出厂。详见 README.md 烧录章节。
四、BLE 配对:三步连上 Claude 桌面端
⚠️ 前置条件:BLE API 仅在开发者模式下可用(面向 maker 的可选功能)。
第 1 步:开启开发者模式
菜单Help → Troubleshooting → Enable Developer Mode,菜单栏会多出一个Developer菜单。
第 2 步:打开 Hardware Buddy 配对窗口
菜单Developer → Open Hardware Buddy…:
第 3 步:点击 Connect 完成配对
在弹窗里点击Connect,从扫描列表中选择你的 M5StickC Plus;首次连接时 macOS/Windows 会弹出蓝牙权限请求,允许即可。
配对成功后,桥接(bridge)会在双方都唤醒时自动重连,窗口平时可以关掉。
找不到设备?两条排查建议:
- 确认设备是醒着的(随便按一下任意按键唤醒)
- 检查设备设置菜单(长按 A → settings)里bluetooth 已开启
五、配对成功后:按键操作速查表
| 按键 | 普通界面 | 宠物界面 | 信息界面 | 审批界面 |
|---|---|---|---|---|
| A(正面) | 下一页 | 下一页 | 下一页 | ✅批准 |
| B(右侧) | 滚动查看对话 | 翻页 | 翻页 | ❌拒绝 |
| 长按 A | 打开菜单 | 打开菜单 | 打开菜单 | 打开菜单 |
| Power(短按) | 息屏 | — | — | — |
| Power(约 6 秒) | 强制关机 | — | — | — |
| 摇一摇 | 触发 dizzy 状态 | — | — | — |
| 脸朝下放 | 小睡回血 | — | — | — |
屏幕 30 秒无操作自动息屏(审批等待期间保持点亮),任意按键唤醒。完整说明见 README.md 控制章节。
六、进阶玩法:给它换一套 GIF 皮肤
除了内置的 18 只 ASCII 宠物,还可以给设备换上自定义 GIF 角色:把角色包文件夹直接拖到 Hardware Buddy 窗口的拖放区,App 会通过 BLE 流式传输,设备实时切换到 GIF 模式(Settings → delete char 可切回 ASCII)。
角色包 =manifest.json+ 96px 宽的 GIF 集,仓库自带示例 characters/bufo/。两个工具帮你快速出包:
- tools/prep_character.py:自动把任意尺寸 GIF 缩放到 96px 宽,并保证各动画状态下角色比例一致
- tools/flash_character.py:调试角色时跳过 BLE,直接走 USB 烧录(
pio run -t uploadfs)
⚡ 注意:整个文件夹总大小须< 1.8MB,通常用gifsicle --lossy=80 -O3 --colors 64可压缩 40–60%。
七、项目结构速览(想改代码再看)
src/ main.cpp — 主循环、状态机、UI 界面 buddy.cpp — ASCII 宠物分发与渲染 buddies/ — 每种宠物一个文件,各含 7 个动画 ble_bridge.cpp — Nordic UART 服务、收发缓冲 character.cpp — GIF 解码与渲染 data.h — 通信协议、JSON 解析 xfer.h — 文件夹推送接收 stats.h — NVS 统计、设置、宠物选择 characters/ — GIF 角色包示例 tools/ — 图片处理与烧录脚本想自研设备?协议契约就在 REFERENCE.md:服务/特征 UUID、心跳快照 JSON 字段、权限回传命令、安全配对要求(LE Secure Connections 绑定)一应俱全,任何能跑 Nordic UART + JSON 解析的板子(Arduino、nRF52、树莓派 + BLE 蓝牙模块)都能接入。
🎯总结:git clone→pio run -t upload烧录固件 → 开启开发者模式 → Hardware Buddy 窗口点 Connect,四步完成 M5StickC Plus 与 Claude 的 BLE 配对。接下来,看着你的硬件宠物为了每一次批准发光发热吧!
【免费下载链接】claude-desktop-buddyReference and an example for the Bluetooth API for makers in Claude Cowork & Claude Code Desktop项目地址: https://gitcode.com/gh_mirrors/cl/claude-desktop-buddy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考