1、我这次想解决什么,或者想试什么
我手上拿到了 AI Passport 硬件,想做深度固件二创。不想使用官方 JS 网页运行环境,直接基于 ESP‑IDF5.x + FreeRTOS + LVGL9.4 开发完整自定义固件,实现「Trae 搭子线下寻觅收集」胸牌项目。 需要搞定:FreeRTOS 多任务划分、LVGL 屏幕驱动适配、ESP‑NOW 通信、NVS 持久化存储、NFC‑NDEF、功耗休眠整套工程骨架;还要处理硬件资源冲突,避免回调操作 UI 导致死机等嵌入式常见坑。 手动从零搭建整套工程工作量很大,我想试一试 TraeCode 能不能承担嵌入式固件项目的辅助开发工作,输出可以直接编译、刷入硬件的工程代码框架。
2、我是谁,为什么这件事对我重要
我是一名嵌入式开发工程师,日常工作就是基于 ESP32 系列做物联网项目,熟悉 ESP‑IDF 开发。 以往做这类硬件二创,我需要手动搭建工程、查阅大量芯片 / 外设文档、编写底层驱动骨架,大量重复模板代码非常消耗精力。 AI Passport 这个二创想法,涉及多任务、无线通信、GUI 图形库、存储、电源管理多个模块,如果全部手写模板会占用大量时间,我希望验证:AI 编程工具可以真正参与嵌入式固件完整项目,而不只是写小段 demo 代码。
3、我是怎么把 TraeCode 慢慢用顺的
最开始我直接丢宽泛需求:“帮我写 AI Passport 固件”,输出的代码碎片化,模块之间没有解耦,没有考虑 FreeRTOS 资源互斥,直接在 ESP‑NOW 回调操作 LVGL,拿到手不能直接编译。
后面我调整了提问策略,摸索出适合嵌入式固件开发的工作流:
- 先把硬件手册、ESP‑IDF 版本、LVGL9.4 移植约束、硬件外设清单完整喂给 TraeCode,明确硬件限制:ESP32‑C3,4MB Flash,没有外接 GPIO,放弃录音功能,ESP‑NOW 单包最大 250 字节等约束。
- 明确要求输出FreeRTOS 多任务拆分框架,强制约束:无线回调禁止直接操作 GUI,事件全部走消息队列传递,NVS 开启磨损均衡。
- 分模块迭代:先输出工程模板→屏幕 LVGL 驱动→ESP‑NOW 收发框架→NVS 存储→NFC 驱动→上层业务(搭子探测、好友申请、聊天逻辑),而不是一次性生成全部业务代码。
- AI 输出骨架代码后,我重点接管:互斥锁保护、报文限流、功耗调优、处理信号抖动、LVGL 像素 UI 素材适配;发现编译报错、硬件异常,把完整报错日志丢回去,让它迭代修复。
中间也踩过坑,AI 会忽略 NVS 寿命、Flash 空间、射频功耗这些硬件现实约束。我学会了每次输出完代码,主动向它强调硬件边界条件,修正脱离硬件现实的代码。 当它输出完整可编译工程骨架那一刻,我明显感受到,它不再只是写小 demo,是可以做真实硬件项目的协作搭子。
4、我最后做成了什么,想给后来的人留一句什么建议
成果
基于 TraeCode 生成的整套工程骨架,完成「Trae 搭子・近场社群寻觅收集胸牌终端」二创方案。 实现功能:ESP‑NOW 后台扫描探测周边同固件胸牌、线下无手机加好友、搭子收集图鉴、好友之间离线点对点短消息聊天、NFC 好友备份;整套固件完全离线可用。 工程已经可以编译,准备网页刷写到 AI Passport 实机做多设备联调。
给嵌入式开发者的建议
- 不要让 AI 一次性输出完整大工程,按模块拆分任务,一步一步迭代;
- 一定要把硬件限制、芯片手册、约束条件前置给 AI,嵌入式开发脱离硬件约束的代码毫无价值;
- AI 擅长模板、驱动、状态机骨架,但是硬件调优、资源保护、功耗策略,依然需要开发者自己把关;
- 把完整编译报错、硬件现象直接粘贴进去,比单纯文字描述问题效率高很多。
小结:对于 ESP32 嵌入式二创,TraeCode 可以成为非常高效的工程脚手架助手,帮我们省下大量重复模板代码,把精力聚焦在创意业务逻辑与硬件调优上。