ESP32-C3 百元级机器狗:从组装到 AI 对话的完整上手指南(ESP-HI)
【免费下载链接】xiaozhi-esp32An MCP-based chatbot | 一个基于MCP的聊天机器人项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32
给机器狗接上电源,你喊出唤醒词,它抬起头,0.96 寸彩屏切换到专注的表情,云端 AI 的答复从小喇叭里传回来——这就是 ESP-HI,ESP Friends 团队基于 ESP32-C3 芯片做的开源 AI 对话机器狗。BOM 成本在一百元以内,下面按你动手的时间线,从接线讲到第一次对话。
ESP-HI 项目速览:ESP32-C3 机器狗的架构与硬件清单
整机的软件分四层:核心层是运行音频、显示与动作任务的 ESP32-C3;交互层负责麦克风拾音、喇叭与彩屏表情;控制层驱动四路舵机与 WS2812 灯;网络层承载 Wi-Fi、Web 远程控制与 MCP 工具协议。
| 组件 | 型号/规格 | 大致成本 | 作用 |
|---|---|---|---|
| 主控芯片 | ESP32-C3(RISC-V 双核) | 约 20 元 | 核心计算与 Wi-Fi |
| 显示 | 0.96 寸 SPI 彩屏 160×80 | 约 15 元 | 表情与状态显示 |
| 音频 | ADC 麦克风 + PDM 喇叭 | 约 10 元 | 语音拾取与播放 |
| 舵机 | 4 路 | 约 40 元 | 四肢行走动作 |
| 灯光 | WS2812 寻址灯 ×4 | 约 5 元 | 状态指示与氛围 |
算上结构件,整套物料总成本通常在百元以内。
动手前准备:机器狗物料清单与 ESP32-C3 开发环境
采购清单:机器狗部件的一句话说明
- ESP32-C3 主控:整机的"大脑",自带 Wi-Fi 与内置 ADC
- 0.96 寸 SPI 彩屏:显示表情与状态
- ADC 麦克风 + PDM 喇叭模块:语音输入输出
- 舵机 ×4:驱动前左、前右、后左、后右四条腿
- WS2812 灯 ×4:状态指示
价格以上表为准,这里不再重复。
开发环境:ESP-IDF 固件编译的前置条件
- 按官方流程安装并初始化 ESP-IDF(项目脚本以 6.0 系列为默认版本)
- 环境中有可用的 Python 3(编译脚本为 Python 编写)
- 一根可传数据的 USB 数据线
- 一个 Wi-Fi 路由器,机器狗需联网使用云端对话
从零到通电:ESP32 机器狗组装、烧录与首次点亮
组装与接线:ESP32-C3 引脚对照
按接线图把各模块接到主控上,关键引脚是:PDM 喇叭接 GPIO6/7(GPIO3 为功放使能),麦克风走 ESP32-C3 内置 ADC 的 2 号通道;屏幕走 SPI2,MOSI 为 GPIO4、SCLK 为 GPIO5、DC 为 GPIO10;四路舵机分别对应 GPIO21(前左)/19(前右)/20(后左)/18(后右);WS2812 接 GPIO8。功能按键三个:BOOT 键 GPIO9、动作唤醒键 GPIO0、语音唤醒键 GPIO1。
图中看不清引脚编号时,直接对照上表。
首次烧录:绕过"舵机占用 USB"的 4 个步骤
ESP-HI 的舵机控制信号占用了 USB Type-C 接口,身体正常连接时电脑无法识别设备。因此首次烧录这样做:
- 断开电源,把身体与头部拆开,只保留头部;
- 按住头部的按钮,再把 USB 数据线接入电脑;
- 此时 ESP32-C3 进入烧录模式,克隆仓库并执行编译脚本生成固件,随后写入设备;
- 烧录完成后重新插拔电源,头部与身体接回,上电。
git clone https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32 python ./scripts/build.py espressif/esp-hi脚本会自动套用 ESP32-C3 目标芯片与全套 sdkconfig 选项,编译完成后再执行idf.py flash写入。
首次点亮:屏幕、喇叭与灯光基础自检
上电后观察三点:彩屏亮起并播放开机表情动画,无偏色;喇叭播放欢迎音,PDM 喇叭起始音量偏小属正常;WS2812 随状态变化,Wi-Fi 连接成功时会点亮。屏幕不亮先查 SPI 接线与屏供电,无声则查 GPIO3 功放使能线。连网阶段按住 BOOT 键可进入 Wi-Fi 配网模式。
核心体验:从第一句话到手机远程操控
和它说第一句话:唤醒词到 AI 对话的完整链路
- 设备就绪后,喊出预设唤醒词"你好小智",屏幕切换为聆听表情,灯光变色;
- 唤醒确认后直接提问,音频经 WebSocket 上传,由云端 AI 处理;
- AI 回复返回,PDM 喇叭播放,屏幕同步显示对应表情;
- 想随时打断或结束,快速双击动作唤醒键(GPIO0)即可切换对话状态,长按 BOOT 键同理。
看它动起来:机器狗动作分类速览
| 类别 | 典型动作 | 一句话场景 |
|---|---|---|
| 基础移动 | 前进、后退、左转、右转、停止 | 让它在桌边走一圈 |
| 扩展动作 | 趴下、握手、伸懒腰、向前跳跃 | 来客人时表演 |
| 灯光 | 开灯、关灯、自定义 RGB | 状态与氛围切换 |
这些动作不必手动触发,对 AI 说一句"握个手",它会通过工具调用直接执行,原理见下一节。
从手机远程控制:esp-hi.local Web 界面
手机与机器狗连到同一个 Wi-Fi,浏览器打开http://esp-hi.local/,即可用内置的 Web 控制页操作各个动作、查看设备状态,相当于把遥控器放进了手机。
进阶与扩展:MCP 协议与自定义工具注册
ESP-HI 是一个"MCP 化"设备:MCP(Model Context Protocol)是一套让大模型调用设备工具的协议。它在板级代码里通过 McpServer 注册了三类工具:self.dog.basic_control管基础移动,self.dog.advanced_control管扩展动作,self.light.set_rgb管灯光颜色。注册逻辑在 MCP 工具注册源码,协议实现见 MCP 服务。4MB Flash 分区、精简的 Wi-Fi 缓冲、FreeRTOS 提频等资源优化都写在 板级配置文件 里,不想开 Web 控制时关掉对应的编译选项即可。
常见问题:ESP32-C3 机器狗烧录失败与唤醒词不准
电脑识别不到设备
- 确认身体已拆开,只连头部
- 检查是否按住按钮后再插线,并用数据线而非纯充电线
- 仍无反应时更换 USB 口,重新进入烧录流程
唤醒词识别率不高
- 麦克风是 ESP32-C3 内置 ADC,拾音半径有限,保持在 1 米内、降低背景噪声
- 把测试位置换到机器狗正前方再试
上电后没有反应
- 按住 BOOT 键进 Wi-Fi 配网,核对网络名与密码
- 需要看日志时把控制台切到 USB Serial/JTAG,注意该模式会禁用舵机控制
下一步:继续折腾这台机器狗的 3 个具体方向
- 阅读
partitions/v2/4m.csv与 config.json,弄清 4MB Flash 的分区方式,尝试其他分区方案,看能否腾出空间放更多资源 - 参照
InitializeTools的写法注册一个新的self.工具,比如自定义一个挥手动作,让 AI 在对话中调用它 - 浏览
main/boards/目录,看同一套框架如何适配 M5Stack、微雪等不同硬件,再考虑移植到你自己的板子上
机器狗跑顺之后,更有趣的部分才开始——它的每个动作都对应几行 C++ 代码,改哪一行、会发生什么,源码都摆在仓库里。
【免费下载链接】xiaozhi-esp32An MCP-based chatbot | 一个基于MCP的聊天机器人项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考