ESP-SparkBot 20分钟从零跑通会聊天会走路的开源机器人【免费下载链接】xiaozhi-esp32An MCP-based chatbot | 一个基于MCP的聊天机器人项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32想让桌面上的小机器人听懂往前两步大多数人卡在哪语音链路和串口底盘两头都得自己接。xiaozhi-esp32 固件把这两头都封好了烧录完成ESP-SparkBot 就能语音对话、控制底盘移动、还能翻转摄像头画面。这固件是什么谁该读xiaozhi-esp32 是一个基于 MCP 协议的 ESP32 语音助手固件支持 170 多种板卡变体ESP-SparkBot 是其中带屏、带摄像头、带履带底盘的完整形态。✅ 该读手里有 SparkBot 硬件、想跑通语音移动交互的新手该读做过 Arduino 但没碰过 ESP-IDF 的开发者可以先跳过只想抄 MCP 工具注册写法的直接看核心功能逐个拆可以先跳过手上没有 ESP32-S3 硬件的人部件规格干什么用主控ESP32-S3Wi-Fi、音频、显示调度音频ES831116kHz 采样收发屏幕ST7789 240×240 SPI表情与状态显示摄像头OV2640 240×240视觉输入底盘C2 履带UART1 115200前后左右、舞蹈动作最短路径克隆到第一次对话⚡ 只给你从仓库到听到你好的最少命令每步附一句卡住看哪。1️⃣ 克隆仓库git clone https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32 cd xiaozhi-esp32卡住时拉不下来先查网络代理别怀疑代码。2️⃣ 安装 ESP-IDF 6.1本项目不再支持 5.x详见踩坑第 1 条装完验证source ~/esp/esp-idf/export.sh idf.py --version # 预期输出idf.py v6.1.x卡住时版本显示 5.x 说明装错了分支。3️⃣ 编译 SparkBot 变体python3 scripts/build.py main/boards/espressif/esp-sparkbot --name esp-sparkbot卡住时找不到板子名就跑python3 scripts/build.py --list-boards看全量列表。4️⃣ 烧录Linux 口一般是 /dev/ttyUSB* 或 /dev/ttyACM*idf.py -p /dev/ttyUSB0 flash卡住时找不到端口看踩坑第 2 条。5️⃣ 看日志上电长按 BOOT 进配网在 xiaozhi.me 控制台绑定设备后按下按键或喊唤醒词idf.py -p /dev/ttyUSB0 monitor卡住时配网成功但无声音回应看踩坑第 3 条。架构一图看懂设备通过 WebSocket 或 MQTT 连到后台你的语音被识别后交给大模型模型判断需要动手时前进、开灯、翻转画面就沿同一条链路发一个 JSON 调用设备上的 MCP 服务找到对应工具执行再把结果回给模型。一句话脑子在云端手脚在设备MCP 是中间的神经。想细看报文格式读 docs/mcp-protocol_zh.md。核心功能逐个拆一句话让机器人走动它能做什么你说往前走两步底盘真的动。背后怎么跑每个工具就是名字回调被调用时固件往 C2 底座发一串串口指令源码在 esp_sparkbot_board.ccmcp_server.AddTool(self.chassis.go_forward, 前进, PropertyList(), this - ReturnValue { SendUartMessage(x0.0 y1.0); // 串口 115200 return true; });你能改什么照葫芦画瓢加一个self.chassis.stop或把指令换成你自己底座的协议。带参数的灯光效果它能做什么呼吸、流光、演示等 8 种灯效全靠语音切换。背后怎么跑和上面的区别是声明了参数范围模型调用时会带一个 1~6 的数字进来mcp_server.AddTool(self.chassis.switch_light_mode, 打开灯光效果, PropertyList({Property(light_mode, kPropertyTypeInteger, 1, 6)}), this - ToolResult { char cmd[3] {w, 0, 0}; cmd[1] p[light_mode].valueint() 0; SendUartMessage(cmd); // 发出 w1~w6 return true; });你能改什么把底座灯换成 WS2812 时保持工具名不变模型侧完全无感。记得住结果的摄像头翻转它能做什么说画面反了图像翻转重启后仍然记得。背后怎么跑比前两个工具多一步——把状态写进 NVS 存储bool flipped !settings.GetInt(camera-flipped, 1); camera_-SetHMirror(flipped); camera_-SetVFlip(flipped); settings.SetInt(camera-flipped, flipped);你能改什么亮度、唤醒词等一切需要持久化的工具都可以套这个模式。流式语音对话它能做什么本地唤醒词 Opus 流式收发首包延迟低支持 AEC 的硬件还能全双工。背后怎么跑音频任务经 ES8311 以 16kHz 采样按帧发往服务器再播回 TTS 流整条链路在 main/audio/代码不用碰也能正常工作。你能改什么唤醒词、音色、表情都属于资产用官方资产生成工具在线替换后重新打包即可。开发环境从零搭建按系统上面最短路径默认 Linux其他系统注意这几处Linux推荐sudo apt install git flex bison ./install.sh esp32 # ESP-IDF 官方一键安装器 source ~/esp/esp-idf/export.sh idf.py --version # 预期v6.1.x⚠️ 报错提示export.sh: No such file→ 安装时没选 esp32 目标补跑./install.sh esp32。Windows用 VS Code 装 ESP-IDF 扩展版本选 v6.1烧录口是COM3之类报错提示设备管理器里带感叹号 → 装 CH340 或 CP2102 串口驱动烧录时保持按住 BOOT否则串口可能直接消失macOS流程同 Linux烧录口一般是/dev/cu.usbmodem*。踩坑实录现象编译报 IDF 版本相关错误。原因照着旧教程装了 5.x本项目最低 6.0.1。解法装 6.1 并重新./install.sh esp32然后idf.py fullclean删掉旧配置重编。现象看不到 /dev/ttyUSB0。原因串口权限不足。解法sudo usermod -aG dialout $USER后注销重登烧录时按住 BOOT 进下载模式。现象配网成功、按键有反应但唤醒后毫无声音。原因设备没在控制台绑定或激活失败。解法登录 xiaozhi.me 控制台确认设备已激活、模型配置正常先别急着换私有服务器。现象模型答应好的前进机器人却没动。原因C2 底座没通电或串口没接对。解法monitor 里找Sent command: x0.0 y1.0——有日志不动是硬件问题没日志才是工具没触发。往下走的路加一个自己的工具在InitializeTools()里注册self.sensor.get_temperature接一个 DHT11重启后模型自动会用它参数写法对照 docs/mcp-usage_zh.md。换自己的硬件从 SparkBot 移植到你的板子docs/custom-board.md 按 config.json → Kconfig → CMake 五步走。换传输协议、部署私有服务器读 docs/mqtt-udp_zh.md再按 README 里列的 server 项目在 PC 上自建后台。固件的思路其实就一条云端管聪明设备管执行MCP 把两边接上。先把这台 SparkBot 烧进去、喊它跳支舞剩下的都是你自己的硬件故事。文档入口README_zh、docs/。【免费下载链接】xiaozhi-esp32An MCP-based chatbot | 一个基于MCP的聊天机器人项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?