OpenDuckMini快速入门教程-整合小智语音控制
文章说明
- 本教程主要介绍整合小智语音来控制鸭子
- 测试环境:OpenDuckMini +
立创·实战派ESP32-S3开发板
前提准备
下载相关代码和配置环境
- 相关代码已上传到gitee:https://gitee.com/ncnynl/mcp-openduck
由于代码中使用的是PS4手柄控制代码进行修改,不保证使用XBOX协议手柄能直接通用,请根据实际情况进行处理
- [树莓派] 下载mcp代码
$ cd ~/open_duck_mini_ws
$ git clone https://gitee.com/ncnynl/mcp-openduck
- [树莓派] 安装相关依赖
$ cd ~/open_duck_mini_ws/mcp-openduck
$ pip install -r requirements.txt
- [树莓派] 复制配置脚本到Open_Duck_Mini_Runtime目录下
$ cd ~/open_duck_mini_ws/mcp-openduck
$ ./install_duck.sh
配置立创·实战派ESP32-S3开发板
- 默认没联网时会自启动热点,手机连上热点配置wifi联网即可


如果想重新进入配网模式,可以先断电再开机,然后等上方出现扫描wi-fi字样出来时,再按下上方右侧按钮即可进入配网模式
- 配网网络后,会出现一个设备验证码

如果设备之前已经绑定过,只有在小智ai官网解绑设备后才能重新出现设备验证码
配置小智AI的MCP接入点
- 小智AI聊天机器人官网:https://xiaozhi.me/
- 登录到小智AI官网创建一个智能体角色,添加上面配置好wifi的设备,然后获取其mcp接入点地址

- [树莓派]配置MCP接入点
$ cd ~/open_duck_mini_ws/mcp-openduck
$ cp mcp_point_example.sh mcp_point.sh
$ vim mcp_point.sh
# 复制上面步骤获取到的mcp获取点地址到此处
# 示例 export MCP_ENDPOINT=<your_mcp_endpoint>
export MCP_ENDPOINT=
$ source ./mcp_point.sh
- [树莓派] 测试是否连通
$ cd ~/open_duck_mini_ws/mcp-openduck
$ ./start_mcp.sh
2025-09-27 10:32:42,685 - MCP_PIPE - INFO - [openduck.py] Connecting to WebSocket server...
2025-09-27 10:32:43,272 - MCP_PIPE - INFO - [openduck.py] Successfully connected to WebSocket server
2025-09-27 10:32:43,275 - MCP_PIPE - INFO - [openduck.py] Started server process: /home/raspios/venv_duck/bin/python3 openduck.py
INFO:mcp.server.lowlevel.server:Processing request of type ListToolsRequest
INFO:websockets.server:server listening on 127.0.0.1:6789
INFO:OpenDuck:[Controller] {'commands': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'buttons': {'A': False, 'B': False, 'X': False, 'Y': False, 'LB': False, 'RB': False, 'dpad_up': False, 'dpad_down': False}, 'left_trigger': 0.0, 'right_trigger': 0.0}
INFO:OpenDuck:[Controller] {'commands': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'buttons': {'A': False, 'B': False, 'X': False, 'Y': False, 'LB': False, 'RB': False, 'dpad_up': False, 'dpad_down': False}, 'left_trigger': 0.0, 'right_trigger': 0.0}
- [小智AI] 给出语音指令:“鸭子,动一下耳朵”
- 正常情况终端会输出
INFO:OpenDuck:[OpenDuck] 左耳动了一下
INFO:OpenDuck:lin_vel_x:-0.0, lin_vel_y:-0.0, ang_vel:-0.0
INFO:OpenDuck:lin_vel_x:-0.0, lin_vel_y:-0.0, ang_vel:-0.0
INFO:OpenDuck:last_commands[0]:-0.0
INFO:OpenDuck:[OpenDuck] 复位手柄
INFO:OpenDuck:lin_vel_x:-0.0, lin_vel_y:-0.0, ang_vel:-0.0
INFO:OpenDuck:lin_vel_x:-0.0, lin_vel_y:-0.0, ang_vel:-0.0
INFO:OpenDuck:last_commands[0]:-0.0
INFO:OpenDuck:[OpenDuck] 结束动作
语音控制测试步骤
- [树莓派] 启动mcp
$ cd ~/open_duck_mini_ws/mcp-openduck
$ ./start_mcp.sh
- [树莓派] 启动支持mcp功能的行走测试
$ cd ~/open_duck_mini_ws/mcp-openduck
$ ./start_duck_mcp.sh
- [小智AI] 给出相应的语音指令
让鸭子向前两步让鸭子后退两步让鸭子左移一点让鸭子右移一点让鸭子左转一下让鸭子右转一下让鸭子动下左耳朵让鸭子动下右耳朵让鸭子叫一声
演示视频
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


















