你有没有这种“失联感”?写代码时打开Claude,一边等结果一边反复切回窗口,任务到底跑没跑完不确定,审批有没有弹出来也不知道,AI明明在运行,但你却完全“感知不到状态”。这次我们基于ESP32-S3制作了Claude的硬件伴侣,让AI不只是输出结果,而是能被你“看见过程”。
代码全开源
1
把Claude做成一个“有反应的设备”
这次我们复刻的是开源项目claude-desktop-buddy,原版运行在M5StickCPlus。我们将它完整移植到基于ESP32-S3自研的RootMaker开发板。它的核心不是显示器,而是一个理念:让AI的运行状态,从屏幕里“走出来”。现在,它可以像一个小伙伴一样,实时反馈Claude的工作状态。

2
从烧录到连接,快速唤醒
硬件准备:
RootMaker(ESP32S3)开发板
TypeC数据线
3D打印外壳(自由设计)

获取源码方式:
公众号 or B站后台回复「Claude buddy」
基础流程:
1、将源码拉至Arduino

2、选择开发板和端口

3、编译并烧录固件

4、在ClaudeDesktop开启HardwareBuddy→点击Connect连接设备。

5、当连接成功的那一刻,设备会“亮起来”——角色正式被唤醒。

3
AI状态开始“可视化”
真正有意思的部分,从连接后开始。Claude运行过程中,设备会实时同步状态:
开始任务→进入「工作模式」
等待权限审批→立即提醒闪烁
审批完成→给出确认反馈
断开连接→自动进入睡眠状态
你不再需要频繁切屏确认状态,因为设备已经替你“盯着Claude”。

更有趣的是一些互动设计:
摇一摇开发板→角色会“晕”
每累计5万tokens→自动庆祝
支持自定义GIF→蓝牙直接推送,无需重新烧录

4
代码结构与开源实现
从实现角度看,这个项目本质是一个状态机系统。主循环每一帧做四件事:接收蓝牙数据→推导状态→处理输入→渲染画面。通信部分使用BLENUS(NordicUARTService),本质就是“蓝牙串口化”,Claude Desktop通过JSON向设备发送状态信息,例如任务进度或审批请求。
显示与动画部分:
LovyanGFX驱动ST7789屏幕
AnimatedGIF负责逐帧解码动画
LittleFS存储角色资源
交互部分:
LIS2DW12加速度计负责“摇一摇检测”
NeoPixel控制状态灯闪烁提示
当attention状态触发时,LED会周期性闪烁,让状态变化更直观。

5
让AI不只是工具
这个项目的意义不只是“做了一个小硬件”,而是把Claude从屏幕里拆出来,让它变成一个可以被感知的存在:它会醒来、会忙碌、会等待、会庆祝,甚至会“晕”,更多创意案例 尽在ESP32系列开发板。项目已开源,可以直接复刻体验。如果你也想试试让AI不只是工具,而是“有状态的伙伴”,这个项目会是一个很有意思的起点。
全部0条评论
快来发表一下你的评论吧 !