🧪 新教程持續更新中 · 由機械臂到傳感器,跟隨教程從零搭建
跳到主要內容

第 11 章:ESP-Claw 語音控制

淘寶店鋪

本章目標:用語音直接控制 NanoCam 的 LED 燈效、AI 模式切換與拍照視覺分析。

關於本章

當設備切換為 ai_mode:7 時,NanoCam 進入 ESP-Claw 模式。它與 XiaoZhi AI(ai_mode:6共用同一份固件nanocam_espclaw/),差別僅在於:ESP-Claw 模式在語音對話的基礎上,額外註冊了 5 個硬體控制工具。

對比維度XiaoZhi AI (mode 6)ESP-Claw (mode 7)
語音對話✅ ASR→LLM→TTS✅ 同一條語音管線
LED 控制✅ 語音調色 / 開關
AI 模式切換✅ 語音切換
拍照 + AI 視覺分析✅ 拍照並調用多模態 AI 理解畫面

原理

ESP-Claw 模式在語音管線之上,透過 RegisterMcpTools() 註冊了 5 個 NanoCam 專用工具:

Plain
用戶語音 "把燈調成藍色"
  → ASR 語音識別(雲端)
  → LLM 理解意圖 → 調用 self.led.set_color({"r":0, "g":0, "b":255})
  → NanoCam WS2812 LED 變藍
  → TTS: "好的,燈已經調成藍色"

步驟

11.1 燒錄固件

ESP-Claw 使用 nanocam_espclaw/ 獨立固件項目:

Bash
cd nanocam_espclaw
idf.py set-target esp32s3
idf.py build
idf.py -p COMx flash

11.2 切換模式

啟動後設置為 ESP-Claw 模式:

Plain
ai_mode:7

設備自動重啟後進入。用 ai_mode:6 可切回 XiaoZhi AI 模式。

11.3 語音控制示例

喚醒後直接說出需求:

Plain
💬 "把燈打開"              → WS2812 亮白色
💬 "把燈調成藍色"          → LED 變藍
💬 "關燈"                  → LED 關閉
💬 "切換到人臉檢測模式"    → NVS 保存 ai_mode:2 + 重啟
💬 "看看這裏有什麼"        → 拍照 + 上傳多模態 AI 分析
💬 "我面前有杯子嗎"        → 多模態 AI 識別畫面

11.4 拍照 + AI 視覺分析

當用戶說「看看...」時,固件抓取一幀 VGA RGB565 圖像,壓縮為 JPEG,發送到伺服器端配置的多模態 API 進行分析,結果透過 TTS 語音播報。

多模態 API 的 URL 和 token 由伺服器端在連接握手階段自動下發,不需要在串口手動輸入配置命令。

5 個 NanoCam 專用工具

工具名功能參數
self.led.set_color設置 WS2812 RGB LED (GPIO18)r,g,b: 0-255
self.led.turn_off關閉 LED
self.camera.set_ai_mode切換 AI 模式 (NVS 保存 + 重啟)mode: 0-7
self.camera.inspect_image拍照 + 多模態 LLM 視覺分析prompt: 問題描述
self.get_device_info設備資訊 JSON

設定檔

內容路徑
MCP 工具註冊nanocam_espclaw/main/boards/nanocam/nanocam_board.cc
Vision 發送邏輯nanocam_espclaw/main/boards/common/esp32_camera.cc
SDK 默認配置nanocam_espclaw/sdkconfig.defaults

ESP-Claw 固件是獨立項目,不與 nanocam_vision 共用程式碼。兩個固件需分別編譯燒錄。

如何選擇

你的需求推薦模式
只想語音聊天、問答mode 6 (XiaoZhi)
想語音控制 LEDmode 7 (ESP-Claw)
想拍照 + AI 「看」畫面mode 7 (ESP-Claw)
想語音切換 AI 檢測模式mode 7 (ESP-Claw)

ESP-Claw 的完整使用方式(伺服器端配置、自訂 MCP 工具開發等)仍在探索中,文檔會隨研究進展持續更新。

至此,本系列 11 章教程全部完成。完整的串口指令(如 ai_mode 模式切換)見串口協議手冊