正文:
**你做了个什么**
把 AI Passport 刷成了一个随身的小智 AI 语音助手:按住按键跟它说话,它开口回答,屏幕上的表情还会跟着情绪实时变化——夸它就眯眼大笑,怼它就撇嘴难过,想事情时眼神上飘装深沉。
“有情绪"不是修辞。小智服务端的 LLM 每句回话都会附带一个情绪 emoji(![]()
![]()
…),胸牌收到后切换 5 种表情状态:待机微笑 / 开心 / 思考 / 说话 / 难过。它是真的在"表现情绪”。
更重要的是:它不是刷完晒个图就吃灰的一次性固件。换上表盘、挂上天气,它就是一块每天能戴出门的智能胸牌——会聊天,也真的能看时间、看天气。
**它能怎么玩**
-
**情绪表情系统**:AI 回话自带情绪 emoji,胸牌实时切换表情、嘴形和眼神。对话过程中边说边变,不是贴图轮播。
-
**3 个角色皮肤随时换**:呆萌圆脸(渐变圆脸+粉腮红)、皮卡丘(黄耳黑尖+电气袋)、可达鸭(三呆毛+呆滞眼)。皮肤只管长相,情绪动画(上下浮动、随机眨眼、说话时嘴巴开合)由共享层统一驱动。
-
**语音对话**:按键说话,AI 语音回答;主页同步滚动对话气泡,随时回看它刚才说了什么。
-
**6 种表盘,一键换戴**:呆萌圆脸 / 皮卡丘 / 可达鸭(大时钟 + 表情 + 状态气泡)、表情时钟(自绘模拟表盘、盘心嵌表情)、大数字时钟(巨号数字 + 天气)、黑底双眼(全黑盘 + 一对会眨眼、会瞟来瞟去的眼睛)。UP/DOWN 键环形切换,选好的表盘写进 NVS,关机再开还是它。
-
**实时天气,抬手就看**:联网后 IP 定位 + Open-Meteo 拉取,主页表盘直接显示天气图标和气温——出门前瞄一眼,比掏手机快。
-
**全中文配网门户**:手机连上胸牌热点自动弹出配置页(captive portal),选 WiFi、填密码一次搞定;密码错 / 找不到网络 / 连接超时会分开提示,不再是一句笼统的"连接失败"。
-
**两段式配网**:手机提交的凭证先由设备试连验证,验证通过后还要在胸牌屏幕上按"确认"才会真正保存——换网、重配都安心,不会存进一个连不上的凭证。
-
**支持自建服务**:门户高级选项里可以直接填自建 xiaozhi-esp32-server 的地址,不依赖官方服务。
-
**完整设置页**:表盘切换、音量、亮度、重新配网,都在胸牌上直接操作。
**它现在长什么样**
【视频】强烈建议附一段 15-30 秒演示:怼它一句 → 表情变难过 → 夸它一句 → 眯眼大笑。情绪是动态的,视频比图片有说服力得多(规则允许"1-3 张图或一段演示视频")。
**我是怎么用 TRAE 把它做出来的**
这个固件从零到能日常用,全程在 TRAE 里完成。举两个印象最深的:
1. **串口日志驱动的真机调试**:重新配网功能一度让设备莫名重启,靠 TRAE 持续监听串口日志抓到了 panic 现场——配网门户的启动调用链太深,把 12KB 栈的任务栈撑爆了。改成投递到 24KB 的 worker 任务执行后,问题消失。
2. **"手机加载不出配网页面"的排查**:日志显示页面发送 15 秒超时。顺藤摸瓜发现两个叠加原因:门户页面 88KB 里 44% 是 38 种语言的翻译(裁剪到纯中文,瘦身一半);更隐蔽的是 WiFi 扫描事件处理器和选信道逻辑存在竞态,导致热点永远挤在家用路由的同频道上抢带宽——加了一个让行标志修复后,配网页面秒开。
这种"日志说话、定位到根因"的排查过程,没有 TRAE 盯着串口日志一点点啃,靠自己大概率就绕过去了。
**别人怎么体验,或者你下一步还想把它玩成什么样**
可以点击这个连接安装固件,之后的固件都将在这里进行更新
下一步打算:加更多情绪粒度和新角色皮肤,再优化待机功耗。




