⭐ 使用本教程前,请先支持一下这个开源项目:
- Star ⭐ — 点击 GitHub 仓库右上角 ⭐ Star,收藏本项目,方便以后找到
- Fork 🍴 — 点击 Fork,把项目复制到你的 GitHub 账号下,可以自由修改
- Download 📥 — 点击绿色 Code 按钮 → Download ZIP,下载到本地开始复刻
📸 操作示意图:
MindPaw 使用了两个云端 API 和一个离线语音模块,都需要申请或配置才能使用。本文一步步教你完成所有配置。
- 打开 心知天气官网
- 点击右上角 注册
- 可用邮箱或 GitHub 账号注册
- 注册后登录
- 登录后进入控制台,点击左侧 产品管理
- 找到 天气数据 API,点击 免费版
- 免费版每天可调用 1000 次,对个人机器人完全够用
- 创建成功后,你会在页面上看到类似这样的密钥:
你的API密钥: S_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- 点击 复制,保存到记事本备用
获取的 API Key 不需要写死在代码里,通过网页配置即可(见第四节)。
// main.cpp 第 65 行 — API Key 默认为空,通过网页填写
String weatherapi = ""; // 启动后通过网页填写MindPaw 通过火山引擎的方舟平台调用豆包大模型,接口完全兼容 OpenAI 格式。
- 访问 火山引擎官网
- 点击右上角 注册(支持手机号 / 邮箱)
- 注册后完成实名认证(AI 服务需要)
- 登录控制台
- 在控制台顶部搜索框输入 方舟,进入 方舟平台
- 左侧菜单选择 推理接入点
- 点击 创建接入点,填写:
| 字段 | 填写内容 |
|---|---|
| 名称 | 随意,如 MindPaw |
| 模型选择 | 推荐 Doubao-pro-32k(性价比高)或 Doubao-lite-32k(更快更便宜) |
| 计费方式 | 按量计费(新用户有免费额度) |
- 创建完成后,你会得到一个 接入点 ID(Endpoint),格式如:
ep-2025xxxx-xxxxx-xxxxx-xxxx
- 复制这个 ID,保存备用
- 在方舟平台左侧菜单,点击 API Key 管理
- 点击 创建 API Key
- 填写名称后创建,你会得到:
AK: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- 点击显示完整 Key 并复制(关闭页面后不再显示完整内容)
- 将 API Key 和 Endpoint ID 保存到记事本
新用户通常有 几十万 Token 免费额度,够用很久。如果后续需要充值:
- 方舟平台 → 费用中心
- 充值 ¥10 可以用非常久(Doubao-pro 约 0.8元/百万token)
// doubao_config.h 第 10 行 — API 端点(已填好无需修改)
#define DOUBAO_BASE_URL "https://ark.cn-beijing.volces.com"
#define DOUBAO_API_PATH "/api/v3/chat/completions"API Key 和 Endpoint ID 通过网页配置,不写死在代码里。
HLK-V20(也叫 SU-03T)是离线语音识别模块,无需联网即可识别语音命令。
- 百度搜索 "SU-03T 配置工具" 或 "HLK-V20 上位机"
- 也可以在海凌科官方淘宝店页面找到下载链接
- 工具是 Windows 软件,约 200MB
使用 USB-TTL 模块 连接:
| USB-TTL | HLK-V20 |
|---|---|
| TX | RX |
| RX | TX |
| GND | GND |
| 3.3V | VCC |
注意:
- 不要接 5V,HLK-V20 是 3.3V 供电
- RX/TX 要交叉连接(TX→RX, RX→TX)
打开配置工具,按以下步骤操作:
第一步:设置基本参数
| 参数 | 推荐值 |
|---|---|
| 波特率 | 9600 |
| 唤醒方式 | 按键触发 / 唤醒词触发(推荐唤醒词) |
| 唤醒词 | 如 "小狗小狗"(3-5 个字) |
第二步:添加命令
点击 添加命令,每一条命令包含:
- 识别词:用户说的内容(如 "前进")
- 输出:模块识别后通过串口发送的字符串(如
CMD1)
按以下表格创建 22 条命令:
| # | 识别词 | 输出 | 作用 |
|---|---|---|---|
| 1 | 前进 | CMD1 |
前进 |
| 2 | 后退 | CMD2 |
后退 |
| 3 | 左转 | CMD3 |
左转 |
| 4 | 右转 | CMD4 |
右转 |
| 5 | 停下 | CMD5 |
停止 |
| 6 | 坐下 | CMD6 |
坐下 |
| 7 | 趴下 | CMD7 |
趴下 |
| 8 | 开心 | CMD8 |
开心表情 |
| 9 | 生气 | CMD9 |
生气表情 |
| 10 | 难受 | CMD10 |
难过表情 |
| 11 | 好奇 | CMD11 |
好奇表情 |
| 12 | 喜欢 | CMD12 |
喜爱表情 |
| 13 | 睡觉 | CMD13 |
睡觉姿势 |
| 14 | 自由模式 | CMD14 |
开关自由模式 |
| 15 | 抬左手 | CMD15 |
抬左手 |
| 16 | 抬右手 | CMD16 |
抬右手 |
| 17 | 现在时间 | CMD17 |
显示时间 |
| 18 | 今天天气 | CMD18 |
显示天气 |
| 19 | 显示标志 | CMD19 |
显示 Logo |
| 20 | 你好 | CMD20 |
打招呼 |
| 21 | 再见 | CMD21 |
告别 |
| 22 | (不配置) | CMD22 |
保留 |
第三步:烧录到模块
- 点击 烧录 或 生成固件并下载
- 等待烧录完成(约 10-30 秒)
- 烧录完成后断开 USB-TTL
烧录后,用 USB-TTL 连接模块:
- 打开串口助手(波特率 9600)
- 对着模块说话,串口应输出对应的
CMD1、CMD2... 等字符串 - 如果没反应,检查麦克风是否正常、识别词是否清晰
- 给机器狗上电
- 手机/电脑搜索 WiFi 热点 MindPaw
- 输入密码
mindpaw1234 - 连接成功后,浏览器打开
http://192.168.4.1
- 在控制台页面,点击 在线功能 → 设置
- 找到 天气 API 密钥 输入框
- 粘贴从心知天气复制的 API Key
- 输入城市名(如
Shanghai、Beijing) - 点击 保存并连接
- 返回 在线功能 页面,点击 天气 应能正常显示
- 浏览器打开
http://192.168.4.1/aiconfig.html - 在 API Key 输入框粘贴火山引擎的 API Key
- 在 推理端点 ID 输入框粘贴 Endpoint ID
- 点击 保存配置
- 提示保存成功后,打开
http://192.168.4.1/aichat.html - 输入消息测试,机器狗应通过动作+表情+旋律回复
HLK-V20 接好后不需要额外配置,上电即用:
- 对着模块说唤醒词(如 "小狗小狗")
- 听到模块发出提示音后,说出命令(如 "前进")
- 观察机器狗是否执行相应动作
- 如果没反应,检查接线(见 05_Assembly_Guide.md)
- 机器狗连接 WiFi 了吗?(OLED 显示的是 AP 模式,需要连接外部 WiFi)
- 在 设置页面 重新填写 WiFi 信息并保存
- 检查 aiconfig.html 是否保存成功
- 检查 API Key 和 Endpoint ID 是否复制完整(没有多余空格)
- 火山引擎账号是否完成了实名认证?
- 接线正确吗?RX/TX 是否交叉?
- 波特率是否设为 9600?
- 模块里的固件烧录成功了吗?(用 USB-TTL 单独测试输出)
- 对着模块说话时距离不要太远(推荐 0.5-1 米)
- HLK-V20 的识别词和输出字符串对应关系是否正确?
- 检查
hlkv20.cpp中的DEFAULT_MAPPING表是否与你的输出字符串一致
- 心知天气:登录控制台 → 产品管理 → 重置密钥
- 火山引擎:登录方舟平台 → API Key 管理 → 删除旧 Key → 创建新 Key
- WiFi 密码:修改
main.cpp中的password,重新编译烧录
