分类:[科技] 标签:[人工智能]、[开源项目]、[大模型]、[硬件开发]


一、引言:没用的东西,却证明了改变正在发生

如果有人问我,花时间、花 Token 去搞一个看似“没用”的硬件玩具到底有没有价值?我的回答是肯定的。最大的意义在于:它证明了 Vibe Coding(AI 辅助自然语言编程)在硬件领域正在快速成长。

数字世界已经到了一定阶段,亟需物理世界来反哺。如果没有发展到今天的 AI Agent,我绝不敢想象自己要在硬件、嵌入式、软件和通信等跨领域知识上花多少时间去摸索。而现在,芯片和基础板卡交给乐鑫这类专业公司去搞,我们只需要负责提出需求、在开发板上验证并做决定。

本文记录了我是如何将 Meta 开源的个人 AI 助手 Muse 固件,塞进乐鑫专为 Coding Agent 设计的模块化开发板 ESP-Mosaico 中的全过程。所有的固件代码均由 Anthropic 的 Claude Code 编写,整个开发就像是一场与 AI 的结对编程。


二、从零跑通:贪吃蛇与基础环境的踩坑

ESP-Mosaico 的主控是 ESP32-S31,自带 480 方屏、喇叭麦克风以及两侧的扩展插槽。它最核心的设计是 Flash 前 2 MB 固化了一套 Vibe Mode 底层固件:装应用、恢复、看日志全走它,不用碰复杂的烧录工具,即使用户把应用写坏了也不会让开发板变砖。

1. 跑通官方剧本:贪吃蛇

拿到板子的第一步,是把官方的一句提示词丢给 Claude Code: Download the code from this repository... Set up the environment and implement a Snake game.

AI 自动完成了环境搭建和基于 Raylib Lite 引擎的贪吃蛇游戏编写。在这个过程中,AI 独立跨过了几个传统嵌入式开发的大坑:

  • ESP-IDF 版本钉死:工作区要求特定的提交版本(6.2.0)。
  • 组件镜像与编译器缺失:AI 自动从官方 API 下载、核对哈希并构建了本地组件库。

实现在 480 方屏上运行流畅、支持触屏滑动转向的贪吃蛇,标志着底层开发环境彻底被 AI 踩通。

2. 为什么又是 ESP32?

从 Claude Desktop Buddy 到这次的 Muse,官方生态和创客玩具几乎无一例外地选择了 ESP32 系列。原因很简单:它足够便宜、省电、资料丰富,且 AI 在互联网上能找到极其庞大的知识库来支撑用户的个性化定制需求。


三、把板子变成 Muse:自由适配与本地化改造

Meta 开源了个人 AI 助手 Muse 的设备端 SDK(Muse Gadgets),官方推荐硬件同样是 ESP32 系列。但要把它的固件搬到 ESP-Mosaico 上,必须解决三个底层痛点:

  1. 开发工具版本不匹配。
  2. 官方默认的刷机方式会冲掉底层的 Vibe Mode。
  3. 官方 API 服务器在国内无法直连。

1. 巧妙的分区与网络代理

我的解决方案是:保留 Vibe Mode 不动,将 Muse 封装成一个标准的 ESP-Mosaico 应用。

  • 分区调整:前 2 MB 留给 Vibe Mode,Muse 的代码和数据住在后面。配对信息、Wi-Fi 密码和设备凭证存放在 64 KB 的 NVS 分区中,换固件绝不丢失。
  • 网络穿透:通过将 Mac Studio 设为旁路由,并利用 TUN 模式接管公网流量与 DNS 查询,完美解决了网络直连超时的问题。

2. 屏幕与中文支持

原版 Muse 的界面基于 LVGL,且原生命名和字体对中文支持极差。

  • 中文字体注入:从思源黑体 CN 中提取了近 7000 个常用汉字,转成 16 px 的二进制字体(884 KB)加载进 PSRAM。
  • 拍个照看看:通过在左槽插上 SC101IOT 摄像头子板,并配合板上 esp_new_jpeg 编码,实现了 Muse 主动调用拍照、查看面前环境的完整闭环。

四、进阶:双向联动与本地语音合成

当板子不再只是被动显示,而是让 Muse 能够反过来“使唤”板子时,真正的智能硬件形态便初现端倪。

1. 赋予硬件能力清单

在连网注册时,我把板子的全部能力(如 voice.say 语音播报、display.show_text 显示文本、lights.set 灯光控制等)打包成一个能力清单上报给 Muse 端。从此,你可以直接对它说:“把灯打开”、“让灯多彩闪烁起来”,大模型便会自主调用底层硬件接口完成执行。

2. 本地离线 TTS 与内存平衡

为了让 Muse 能开口说话,我引入了乐鑫 esp-sr 的中文离线 TTS(小乐音色),并为语音数据单独划分了 3 MB 的分区。 由于 ESP32-S31 的片内 RAM 非常宝贵(Wi-Fi 和 TLS 极度消耗内存),在开发过程中我们经历过多次因为内存耗尽或栈溢出导致的随机重启。最终的工程经验表明:将不涉及 Flash 操作的数据和任务栈安全地腾挪到 PSRAM 中,是保障系统长时间稳定运行的关键。


五、总结与展望:所有硬件都会被 AI 重做一遍

这次历时数天的折腾,不仅让我把 Muse 成功塞进了一块小小的模块化开发板里,更让我深刻验证了几个核心观点:

  1. Vibe Coding 的边界正在向物理世界延伸:通过 Agent 的协助,即使是不懂底层嵌入式的开发者,也能通过高层逻辑编排快速打造出属于自己的 AI 硬件化身。
  2. 硬件将迎来冗余设计时代:未来的 AI 硬件不再追求极致的成本管控,而是需要硬件能力留有冗余,从而填补硬件制造周期与 AI 软件高速发展之间的时间差。
  3. Home Agent 赛道未来可期:从 Meta 的 Muse Gadget 到各大厂商布局的 Home Agent,云端大脑与边缘硬件的结合正在打破传统智能家居的痛点。

硬件的制造已到瓶颈,但 AI 与物理世界的结合才刚刚开始。如果你也有类似的极客想法,不妨拿起手中的工具,去打造那个属于你自己的 Personal Agent 物理化身。