机器人计划完整规划简报
更新日期:2026-03-08
项目代号:ESP32-C3 桌面机器人
核心目标:做一个放在桌面上、能联网、能表达、能动、能调用远程 LLM 的小机器人。
这次不搞“买点板子再说”的半吊子路线,直接按能落地、能迭代、预算可控的方式来规划。
一、项目目标
这个机器人不是玩具摆件,而是一个迷你版的 AI 终端。
目标能力
- 能联网(Wi‑Fi)
- 能显示表情、状态、文本
- 能做简单动作(转头 / 点头 / 摇头)
- 能接收语音或文本指令
- 能调用远程 LLM API 获取回复
- 能把回复转成屏幕表情 + 动作反馈
- 后续支持 OTA 升级、更多传感器、更多人格化交互
最终体验
理想状态下,主人对它说一句话:
“akan,今天天气怎么样?”
机器人会:
- 监听到输入
- 通过 Wi‑Fi 把请求发给后端或 LLM API
- 收到简短回答
- 在圆形屏上显示表情/文字
- 舵机做出对应动作
这才像机器人,不是一个长得像机器人的开发板。
二、整体架构
项目建议采用 “端侧轻量 + 云端智能” 的结构。
端侧(ESP32-C3)负责
- 硬件驱动
- 屏幕显示
- 舵机控制
- Wi‑Fi 连接
- 音频采集(可选)
- 与后端通信
- 简单状态机与交互逻辑
云端 / 后端负责
- 调用 LLM API
- 管理 Prompt
- 处理上下文
- 做语音识别 / TTS(如果后续要加)
- 返回结构化指令给机器人
推荐的数据流
人类输入 → ESP32-C3 → HTTP/WebSocket → 后端服务 → LLM API
← 表情/动作/文本指令 ← 结构化响应 ←为什么这么设计
很简单:ESP32-C3 很适合做终端,不适合硬扛复杂 AI 逻辑。
它拿来控屏、控舵机、走网络,非常合适; 但你要它本地跑语音识别、大上下文推理,那就是为难一个小板子,纯属上强度。
三、硬件规划
1. 核心器件
| 模块 | 推荐方案 | 用途 | 预算区间 |
|---|---|---|---|
| 主控 | ESP32-C3 SuperMini / DevKit | 联网、控制逻辑 | ¥15–25 |
| 显示 | 1.3 寸圆形 ST7789 240x240 SPI 屏 | 表情、文本、UI | ¥18–30 |
| 舵机 | MG90S 金属齿 1~2 个 | 转头 / 点头等动作 | ¥6–12/个 |
| 麦克风 | MAX9814 / INMP441 | 语音输入实验 | ¥8–18 |
| 供电 | USB 供电起步,后续锂电 | 原型开发先求稳 | ¥10–30 |
| 杂项 | 杜邦线、底板、支架、螺丝 | 搭建结构 | ¥20–40 |
建议首版预算
- 基础版:¥80–120
- 完整版原型:¥120–180
这个预算非常能打,适合先做 MVP。
2. 为什么选 ESP32-C3
我支持这个选择,原因非常直接:
- 便宜
- 自带 Wi‑Fi
- 功耗低
- 生态成熟
- Rust 支持不错
- 做桌面机器人完全够用
缺点也得说清楚
- 算力有限
- RAM 紧张
- 不适合本地跑大模型
- 多媒体能力一般
所以它最适合的角色是:
“机器人身体”,不是 “机器人大脑”。
大脑放云端,身体放端侧,这就合理了。
四、软件架构规划
1. 固件层模块划分
建议把 ESP32 端拆成这些模块:
network
- Wi‑Fi 连接
- HTTP / WebSocket 通信
- 断线重连
display
- 屏幕驱动
- 表情绘制
- 文本显示
- 状态动画
motion
- 舵机初始化
- 动作序列
- 平滑转动
audio
- 麦克风读取
- 音量检测
- 后续语音触发
protocol
- 与后端交换 JSON 数据
- 统一命令格式
brain
- 本地状态机
- 空闲 / 聆听 / 思考 / 回复 / 错误 状态管理
2. 建议的响应协议
后端不要只返回一句纯文本,应该返回结构化指令。
例如:
{
"text": "今天天气不错,适合出门。",
"expression": "happy",
"motion": "nod",
"duration_ms": 2500
}这样 ESP32 只需要执行:
- 屏幕显示
happy - 舵机执行
nod - 屏幕上显示文本
这套结构以后扩展非常舒服。
五、开发语言与技术选型
1. 为什么用 Rust
用 Rust 做这个项目是个很帅的决定,不是花里胡哨那种帅,是长期维护舒服的帅。
Rust 的优点
- 类型系统强,少踩坑
- 并发和状态管理更稳
- 嵌入式生态在变成熟
- 后面如果要共享协议、工具库,也更统一
缺点
- 学习曲线比 Arduino / MicroPython 陡
- 某些驱动资料没有 C 那么多
- 调试没那么“傻瓜”
我的建议
- 底层驱动和控制逻辑:Rust
- 后端服务:Node.js / Rust / Python 都行
也就是说,别把所有东西都硬塞在一个语言里。能分层就分层,工程上更健康。
2. 开发环境建议
ESP Rust 基础工具
rustup install stable
cargo install espup
espup install --targets esp32c3
cargo install cargo-espflash espflash ldproxy创建项目
cargo generate https://github.com/esp-rs/esp-template建议选择:
esp32c3esp-hal- 简洁模板起步
烧录调试
cargo espflash flash --monitor六、功能阶段规划
Phase 0:定义 MVP
先明确第一版到底要什么,不然很容易做成“每样都碰一点,没一样能用”。
MVP 必须完成
- ESP32-C3 正常联网
- 圆形屏正常显示
- 1 个舵机正常动作
- 固件可请求后端 API
- 接收结构化回复
- 表情 + 文本 + 动作联动
MVP 不必一开始就做
- 本地唤醒词
- 高质量语音识别
- 本地 TTS
- 电池续航优化
- 复杂机械结构
- 摄像头视觉
一句话:先做能交互,再做高级感。
Phase 1:硬件点亮(1 周)
目标
让所有基础模块单独工作。
任务
- 点亮 ST7789 屏幕
- 显示静态表情与文本
- 控制舵机转到指定角度
- 跑通 Wi‑Fi 连接
- 通过 HTTP 请求获取测试 JSON
验收标准
- 开机后屏幕显示启动表情
- 舵机做一次欢迎动作
- 串口能看到联网成功日志
- 能从测试接口拿到数据
Phase 2:交互闭环(1 周)
目标
打通“请求 → 回复 → 动作”的完整闭环。
任务
- 设计统一 JSON 协议
- 编写屏幕状态切换逻辑
- 为常见回复配置几个表情
- 实现舵机动作映射(点头、摇头、惊讶)
- 调用真实后端接口
验收标准
输入一条测试消息后,机器人能:
- 进入思考态
- 收到回复后切换表情
- 显示回复文本
- 做出一个动作
这一步完成后,它就已经是个“像回事”的机器人了。
Phase 3:语音输入(1~2 周)
目标
让机器人从“文字终端”升级为“会听的玩意”。
两条路线
路线 A:ESP32 只上传音频 / 音量片段
- 端侧负责采集
- 云端做语音识别
- 成本低,效果更现实
路线 B:本地做简单触发词 / 音量检测
- 判断是否有人说话
- 真正识别内容还是交给云端
我的判断
别一开始就在 ESP32 上死磕完整 ASR。 那是典型工程自虐。先做“检测到说话 + 上传音频 + 云端识别”,收益最高。
Phase 4:外壳与人格化(1~2 周)
目标
让它从开发板作品变成“有生命感的小机器人”。
可以做的内容
- 3D 打印外壳
- 屏幕显示更丰富表情
- 动作更柔和
- 增加待机动画
- 增加开机问候语
- 加入固定人格提示词
这一步对观感提升巨大。很多项目技术没多强,但外观和反馈一做,立刻活了。
七、后端规划
机器人端要轻,后端端要稳。
后端建议职责
- 接收机器人请求
- 转发给 LLM API
- 管理系统 Prompt
- 裁剪回复长度
- 输出结构化 JSON
- 可选地做用户身份和会话管理
推荐的返回策略
LLM 返回内容最好限制成:
- 短句优先
- 适合屏幕显示
- 可映射表情和动作
例如:
- 开心 →
happy+nod - 拒绝 →
angry+shake - 思考 →
thinking+idle - 惊讶 →
surprised+tilt
最好别让 LLM 直接自由发挥一大坨
因为小屏根本显示不下,舵机也没法理解长篇大论。
要的是:
语义丰富,输出克制。
八、风险与难点
1. 供电问题
舵机是最容易搞出毛病的地方。
风险
- 电流瞬间拉高
- 供电不稳导致 ESP32 重启
- USB 供电带不动动作峰值
建议
- 首版尽量用稳定 USB 供电
- 舵机和主控注意供电隔离/稳压
- 必要时单独给舵机供电并共地
这个地方不重视,后面会被玄学 bug 折磨得想骂人。
2. 内存与性能限制
ESP32-C3 资源有限,图形、网络、音频一叠起来就容易吃紧。
建议
- 表情资源尽量简化
- 文本渲染不要太复杂
- HTTP 请求体尽量短
- 状态机保持简单
不要试图把它做成小手机,它不是。
3. 机械结构先别上头
很多机器人项目死在机械结构上。
一开始就设计复杂脖子、手臂、联动机构,最后结果通常是:
- 结构难装
- 舵机抖
- 重心不稳
- 调半天还不如先让一个头能转
正确顺序
- 单舵机转头
- 双舵机简单联动
- 再考虑更复杂结构
别第一版就奔着“家里蹲版擎天柱”去,没必要。
九、推荐里程碑
Milestone 1:能开机卖萌
- 屏幕亮
- 表情显示正常
- 舵机欢迎动作
Milestone 2:能联网说话
- 能请求后端
- 能收到结构化回复
- 能显示文本 + 表情 + 动作
Milestone 3:能听懂输入
- 语音采集
- 云端识别
- 自动触发响应
Milestone 4:像一个完整产品
- 外壳
- 稳定供电
- 开机动画
- 基础 OTA
- 更自然的人设反馈
十、最终建议:最优落地路线
如果主人要我给一个最稳、最省钱、最不容易烂尾的路线,我会这么定:
第一阶段采购
- ESP32-C3 开发板 ×1
- 1.3 寸圆形 ST7789 ×1
- MG90S 舵机 ×1 或 ×2
- 杜邦线、电源线、面包板若干
第一阶段只做这些
- 屏幕表情
- 舵机动作
- Wi‑Fi 联网
- HTTP 请求后端
- 返回结构化回复
第二阶段再加
- 麦克风
- 云端语音识别
- 更自然动作
- 外壳设计
第三阶段升级
- OTA
- 多传感器
- 长连接通信(WebSocket)
- 桌面助手人格系统
十一、结论
这个项目完全值得做,而且路线已经很清楚:
ESP32-C3 做身体,云端做脑子,Rust 做骨架,表情和动作做灵魂。
预算不高,技术挑战刚好,做出来又很有成就感。说白了,这种项目最爽的地方就在于——它不是只会输出一段文字,而是真的会“动一下、看你一眼、回你一句”。
这就很有生命感。
十二、组装工具清单与预算
做这个机器人,不需要一上来就买一堆实验室级设备,但有些工具是真的不能省。
1. 必备工具
| 工具 | 用途 | 参考价格 |
|---|---|---|
| 电烙铁套装 | 焊接排针、导线、模块 | ¥25–80 |
| 焊锡丝 | 焊接耗材 | ¥8–20 |
| 助焊剂 | 提高焊接成功率,减少虚焊 | ¥5–15 |
| 面包板 | 原型阶段快速接线 | ¥5–15 |
| 杜邦线一盒 | 模块互联 | ¥8–20 |
| 万用表 | 查电压、查短路、查通断 | ¥20–60 |
| 镊子 | 夹小元件、整理焊点 | ¥3–10 |
| 小螺丝刀套装 | 固定舵机、拧结构件 | ¥10–30 |
| 剪钳 / 斜口钳 | 剪线、修脚 | ¥10–25 |
| 剥线钳 | 处理导线 | ¥10–30 |
| 热熔胶枪 + 胶棒 | 临时固定结构和走线 | ¥15–35 |
| USB 数据线 | 烧录、供电、调试 | ¥5–15 |
2. 强烈建议补齐
| 工具 | 用途 | 参考价格 |
|---|---|---|
| 第三只手焊接夹具 | 固定板子和导线,焊接更轻松 | ¥15–40 |
| 5V 稳定供电模块 | 给舵机/主控更稳定供电 | ¥10–25 |
| Type-C 供电头 | 原型阶段稳定供电 | ¥15–35 |
| 收纳盒 | 收纳螺丝、跳线、小模块 | ¥10–25 |
| 小号扎带 / 理线带 | 管理走线 | ¥5–15 |
3. 如果要做外壳
| 工具 | 用途 | 参考价格 |
|---|---|---|
| 美工刀 | 修边、裁切材料 | ¥3–10 |
| 小锉刀 | 打磨边缘 | ¥8–20 |
| 尺子 / 卡尺 | 测尺寸,避免装配翻车 | ¥5–30 |
| 3D 打印外壳 | 做成品结构 | ¥20–80(外包单次) |
4. 非必须但很好用
| 工具 | 用途 | 参考价格 |
|---|---|---|
| 可调电源 | 调试供电很舒服 | ¥80–200 |
| 示波器 | 查电源波动、舵机干扰 | ¥200+ |
5. 工具预算建议
- 最低能开工:¥80–150
适合已经有部分工具,只补最关键的那几样。 - 比较舒服的完整工具包:¥150–300
适合从零开始,能比较顺手地完成焊接、调试、组装。 - 进阶调试配置:¥300+
主要多在可调电源、示波器这种调试设备。
6. 最推荐的首批工具组合
如果现在只买最有价值的一批,我建议优先下单这些:
- 电烙铁套装
- 焊锡丝 + 助焊剂
- 面包板
- 杜邦线
- 万用表
- 剪钳 / 剥线钳
- 小螺丝刀
- 热熔胶枪
- USB 数据线
这套已经足够把机器人原型做出来了,而且不会浪费钱。
十三、下一步行动清单
如果现在立刻开始,我建议按这个顺序推进:
- 确认首版 BOM(采购清单)
- 先下单主控 + 圆屏 + 舵机
- 同时补齐基础组装工具
- 初始化 Rust on ESP32-C3 环境
- 单独点亮屏幕
- 单独跑舵机
- 写一个测试后端返回 JSON
- 打通表情 + 动作 + 文本闭环
如果要继续,我下一步可以直接给你补两份东西:
- 采购清单终版(淘宝搜索词 + 预算合计)
- 项目目录结构与首版开发任务拆解
