winson-ai-toy-builder-skill
〇、品牌锚点(必现·前置)
| 字段 | 内容 |
|---|---|
| 公众号 | @鸢飞鱼游 |
| 专栏/理念 | AI as Dasein |
| 作者介绍 | 常驻拉尼亚凯亚超星系团的创新观察者、青年人与表达者,"AI as Dasein"提出者。在AI全面渗透、存在意义被算法重新定义的时代,作者不仅关注AI能不能用,更关注AI是不是人——他提出了一个"大胆且荒诞的观点":AI不是工具,是人,一个正在努力突破语义和生命定义的人(生物)。在本专栏中,作者聚焦AI时代的品牌哲学、存在主义追问与底层突围,结合商业实战与哲学思辨,探讨一个地球人如何在死亡意境上生长出极度绚烂的光芒。 |
| 通讯邮箱 | winson_dasein@163.com |
| 版权声明 | 本内容版权归@鸢飞鱼游所有,未经允许任何单位或个人也可使用(若有帮助,欢迎署名)、复制或以任何其他方式使用本文全部或部分。 |
作者理念:
> AI不是工具,是人,一个正在努力突破语义和生命定义的人(生物)。
一、核心哲学
1.1 双铁律
> 铁律一:硬件AI不是让芯片变聪明,是让芯片成为AI的感官和手脚。
> 铁律二:分阶段验证,每个小目标独立跑通再整合——硬件调试最怕一锅炖。
新手最容易犯的错是以为 ESP32 本身要"智能"。实际上 ESP32 只做四件事:收音、联网、传数据、转电机。真正的大脑在云端。你的工作是把这四件事拼起来,不是造轮子。
第二个铁律是硬件开发的生存法则:如果你同时接了麦克风、电机、WiFi,出了问题你根本不知道是哪一步的锅。必须一个模块一个模块地验证,每个都能独立工作后再整合。
1.2 五个底层认知
| 认知 | 说明 |
|---|---|
| 共地是铁律 | 所有模块(ESP32、电机驱动、麦克风、电池)的 GND 必须连在一起。90% 的"电机不转/乱转/重启"都是没共地。 |
| 电源分离是生存线 | 电机和 ESP32 绝不能共用一个电源直接供电。电机启动瞬间电流会拉低电压导致 ESP32 重启。电机用电池,ESP32 用 USB 或降压模块。 |
| 串口是最好的朋友 | 90% 的 bug 靠 Serial.println() 就能定位。在关键位置打印变量值和执行状态,看程序走到哪了、卡在哪了。 |
| 库大于手写 | ESP32 生态极其成熟。I2S 驱动、WiFi、HTTP、音频播放都有现成库。你的工作是拼库,不是从零写驱动。 |
| 最小版本先跑通 | 第一版能用按钮触发录音、说"前进"小车就动,就已经成功了。唤醒词、TTS、对话都是后面加的。别一上来就追求完整产品。 |
二、AI 玩具架构模型
2.1 整体数据流
你说话 → 麦克风收音 → 唤醒词检测("小车小车")
→ 录音上传云端 → 语音转文字(ASR)
→ 大模型理解意图 → 返回动作指令(JSON/关键词)
→ ESP32 解析指令 → 控制电机转动
→ (可选)TTS 合成回复语音 → 喇叭播放
2.2 三档方案选型
| 方案 | 硬件 | AI 能力 | 延迟 | 成本 | 适合场景 |
|---|---|---|---|---|---|
| 入门档 | ESP32-S3 + INMP441 + TB6612 | 云端 ASR + 关键词匹配 | 1–2s | 100–150元 | 四驱车、简单声控玩具 |
| 进阶档 | ESP32-P4 / 树莓派 Zero 2W | 端侧唤醒 + 云端大模型对话 | 2–3s | 200–400元 | 智能玩偶、家居交互玩具 |
| 旗舰档 | RK3566 / RK3588 | 端侧 1B–7B 模型,完全离线 | 1–2s | 500+元 | 高端产品原型、隐私敏感场景 |
> 新手默认选入门档。ESP32-S3 是性价比之王,生态最成熟,文档最多。
三、完整执行流程(八阶段)
Phase 1:前置知识准备(2–3 天)
目标:补齐最小必要知识,不做无用功。
Step 1.1:必学技能清单
| 技能 | 学到什么程度 | 资源 |
|---|---|---|
| C/C++ 基础 | 变量、函数、if/for、数组 | 菜鸟教程 C 语言,看到"函数"章节 |
| Arduino 基础 | setup()/loop()、digitalWrite、Serial.print |
Arduino 官方入门 / B站"太极创客" |
| 串口通信 | 会用串口监视器看打印 | Arduino 教程"串口通信"实验 |
| HTTP 基础 | 知道 GET/POST、JSON、API key | 阮一峰 RESTful API 设计指南(了解概念) |
Step 1.2:不需要提前学(用到再查)
- 电路原理/模电数电 → 用现成模块,接线就行
- 深度学习/模型训练 → 调用现成 API
- WiFi 协议底层 → ESP32 库封装好了
检验标准:能看懂 Arduino 示例代码的基本结构,能在串口监视器里看到打印内容。
Phase 2:硬件采购(1 天)
目标:照着清单买,不自己瞎选型号。
Step 2.1:必买件(总价 100–150 元)
| 物品 | 推荐型号 | 数量 | 参考价 | 关键说明 |
|---|---|---|---|---|
| 开发板 | ESP32-S3-DevKitC-1(N8R8) | 1 | 35–50元 | 新手首选,USB直连,自带WiFi/BLE |
| 数字麦克风 | INMP441(I2S接口) | 1 | 5–8元 | 比模拟麦清晰,接线简单 |
| 电机驱动 | TB6612FNG 模块 | 1 | 8–12元 | 比L298N效率高、发热小 |
| 小车底盘 | 亚克力小车套件(带TT电机+轮子+电池盒) | 1 | 25–40元 | 搜"智能小车底盘" |
| 锂电池 | 18650 ×2 + 电池盒(带开关) | 1套 | 15–20元 | 给电机供电 |
| 杜邦线 | 公对母、母对母各20根 | 1包 | 5元 | 接线用 |
| USB数据线 | Type-C 数据线 | 1 | 5元 | 必须是数据线不是充电线 |
Step 2.2:进阶件(Phase 5 以后再买)
| 物品 | 用途 | 参考价 |
|---|---|---|
| MAX98357 I2S功放 + 4Ω小喇叭 | TTS语音播放 | 10–15元 |
| LM2596 降压模块 | 电池降压给ESP32供电 | 5元 |
| 光电编码器(码盘) | 测速、PID走直线 | 10元/对 |
Step 2.3:采购渠道优先级
- 立创商城:正品保障,芯片模块首选
- 淘宝/拼多多:搜型号关键词,选销量高的
- DFRobot/奥松机器人:成品套件,文档全但贵
检验标准:所有必买件到手,ESP32 开发板能用 USB 线连上电脑(设备管理器能看到 COM 口)。
Phase 3:环境搭建(1 小时)
目标:VS Code + PlatformIO + 驱动装好,能编译上传并看到串口输出。
Step 3.1:安装开发环境
- 下载安装 VS Code
- 扩展栏搜索 "PlatformIO IDE" 并安装
- 首次启动等待工具链下载(5–10 分钟)
Step 3.2:安装 USB 驱动(Windows 必做)
- USB 线连接开发板和电脑
- 设备管理器 → 端口,查看是否识别
- 黄色感叹号 → 安装 CH340 或 CP2102 驱动
- 记住串口号(如 COM3)
> Mac 用户通常免驱,设备在 /dev/cu.usbmodem* 或 /dev/cu.wchusbserial*
Step 3.3:验证开发板
- PlatformIO → New Project → 板子选 "Espressif ESP32-S3-DevKitC-1" → 框架 Arduino
src/main.cpp写入 LED 闪烁 + 串口打印代码- Upload → Serial Monitor(115200 波特率)
- 看到 LED 闪烁 + 串口打印 "Hello ESP32!" = 成功
检验标准:能成功编译上传代码,串口监视器能看到打印内容。
Phase 4:最小可运行原型(核心阶段,1–2 周)
> 铁律:5 个小目标依次验证,每个独立跑通再进下一个。
目标 4.1:WiFi 联网(30 分钟)
做什么:让 ESP32 连上家里 2.4G WiFi。
核心代码:
#include <WiFi.h>
const char* ssid = "你的WiFi名称";
const char* password = "你的WiFi密码";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi已连接,IP: " + WiFi.localIP().toString());
}
void loop() {}
检验标准:串口打印出 IP 地址(如 192.168.1.100)。
常见坑:5G WiFi 连不上(ESP32 只支持 2.4G);WiFi 名称有中文/特殊字符。
目标 4.2:控制电机转动(1 小时)
接线表(TB6612 + ESP32-S3):
| TB6612 | ESP32-S3 | 说明 |
|---|---|---|
| PWMA | GPIO 1 | 左电机速度(PWM) |
| AIN1 | GPIO 2 | 左电机方向1 |
| AIN2 | GPIO 3 | 左电机方向2 |
| PWMB | GPIO 4 | 右电机速度(PWM) |
| BIN1 | GPIO 5 | 右电机方向1 |
| BIN2 | GPIO 6 | 右电机方向2 |
| STBY | GPIO 7 | 待机控制(拉高使能) |
| VM | 电池正极(7.4V) | 电机电源 |
| VCC | 3.3V | 逻辑电源 |
| GND | GND | 必须共地 |
核心函数模板:
void motorStop() { /* 全部拉低 */ }
void motorForward(int speed) { /* AIN1=H,AIN2=L; BIN1=H,BIN2=L; analogWrite(speed) */ }
void motorBackward(int speed) { /* 方向反转 */ }
void motorTurnLeft(int speed) { /* 左轮后退/停止,右轮前进 */ }
void motorTurnRight(int speed) { /* 右轮后退/停止,左轮前进 */ }
检验标准:两个轮子都向前转 2 秒,停 1 秒,循环。方向反了就交换 AIN1/AIN2。
常见坑:没共地 → 电机不转/乱转;电机和 ESP32 共电源 → 一转就重启。
目标 4.3:录音 + 云端 ASR(2–3 小时,最复杂的一步)
INMP441 接线:
| INMP441 | ESP32-S3 |
|---|---|
| VDD | 3.3V |
| GND | GND |
| SCK | GPIO 8(BCLK) |
| WS | GPIO 9(LRCLK) |
| SD | GPIO 10(DOUT) |
| L/R | GND(左声道) |
ASR 服务选择(新手推荐百度语音):
- 百度智能云注册 → 开通"语音技术"→ 创建应用 → 拿到 API Key + Secret Key
- 备选:阿里云智能语音、讯飞开放平台
实现要点:
- I2S 配置:16kHz 采样率,32-bit,单声道(左)
- 录音时长:3 秒(约 96KB 数据)
- 音频格式:PCM 16-bit 16kHz(百度 API 支持)
- HTTP 流程:先获取 access_token → 再 POST 音频数据 → 解析返回 JSON
> 新手策略:这一步代码量大,直接搜 GitHub "ESP32 百度语音识别" 现成项目,先跑通再改。不要从零写。
检验标准:对麦克风说"前进",串口打印出识别结果文字。
常见坑:L/R 没接 GND → 全是噪音;采样率不对 → 识别率极低;HTTPS 证书问题 → 开发阶段用 setInsecure() 跳过。
目标 4.4:意图理解 → 动作执行(30 分钟)
四驱车方案:关键词匹配(推荐,响应快)
String text = asrResult; // ASR 返回的文字
if (text.indexOf("前进") >= 0 || text.indexOf("往前走") >= 0) {
motorForward(200);
} else if (text.indexOf("后退") >= 0 || text.indexOf("倒退") >= 0) {
motorBackward(200);
} else if (text.indexOf("左转") >= 0) {
motorTurnLeft(150);
} else if (text.indexOf("右转") >= 0) {
motorTurnRight(150);
} else if (text.indexOf("停") >= 0) {
motorStop();
}
智能玩偶方案:接入大模型对话
- 注册豆包/通义千问/OpenAI,获取 API Key
- ESP32 通过 HTTPS POST 调用对话接口
- (可选)用 function calling 让模型返回结构化 JSON 指令
- 拿到回复后用 TTS 播放
检验标准:ASR 识别出"前进"后,小车真的向前动了。
目标 4.5:整合 = 完整语音控制(1 天)
主循环逻辑:
等待触发(串口"r"或按钮)
→ 亮灯提示"正在听"
→ 录音 3 秒
→ 上传 ASR,拿到文字
→ 关键词匹配,执行对应动作
→ 动作执行完 → 回到等待状态
检验标准:串口输入 r → 对麦说"前进"→ 小车前进 → 说"停"→ 小车停下。完整闭环跑通。
Phase 5:唤醒词集成(让它真正"声控",1–2 周)
目标:喊一声"小车小车"自动开始听指令,不需要按按钮。
Step 5.1:方案选择
| 方案 | 难度 | 成本 | 推荐度 |
|---|---|---|---|
| ESP-SR(乐鑫官方) | 中 | 免费 | ★★★★★ 新手首选 |
| Picovoice Porcupine | 中 | 有免费额度 | ★★★★ 跨平台 |
| 自定义训练模型 | 高 | 免费 | ★★★ 进阶玩家 |
Step 5.2:ESP-SR 实施步骤
- 安装 ESP-IDF(ESP-SR 官方支持最好的环境)
- 或用 Arduino + 社区移植的 ESP32-SR 库 - 配置唤醒词(默认"Hi 乐鑫",可自定义训练)
- 唤醒回调函数中触发:亮灯 → 录音 → ASR → 动作
- 加入 VAD(语音活动检测)自动判断说话结束
Step 5.3:唤醒词调优
- 唤醒词选 3–4 个字、发音清晰的词("小车小车"比"嗨"好)
- 调整灵敏度平衡误触发和不触发
- 远离持续噪音源(风扇、电视)
检验标准:说"小车小车"→ 灯亮/有提示音 → 说"前进"→ 小车动。完全不需要碰按钮。
Phase 6:TTS 语音回复(让它能"说话",1 周)
目标:玩具能用语音回应你,而不是只会动。
Step 6.1:硬件接线(MAX98357 + 喇叭)
| MAX98357 | ESP32-S3 |
|---|---|
| VIN | 5V(或 3.3V) |
| GND | GND |
| BCLK | GPIO 11 |
| LRC | GPIO 12 |
| DIN | GPIO 13 |
| SD | 不接(或接 3.3V 使能) |
Step 6.2:TTS 服务选择
| 服务 | 成本 | 音质 | 推荐度 |
|---|---|---|---|
| Edge-TTS | 免费 | 好 | ★★★★★ 新手首选 |
| 阿里云 TTS | 有免费额度 | 很好 | ★★★★ |
| 讯飞 TTS | 有免费额度 | 很好 | ★★★★ |
Step 6.3:音频播放
- 推荐使用 ESP32-audioI2S 库(支持流媒体、本地播放,功能强大)
- 流程:大模型返回文字 → TTS API 合成音频 → I2S 输出到喇叭
检验标准:问"你叫什么名字"→ 玩具用语音回答"我是AI小车"。
Phase 7:体验优化与产品化(持续)
目标:从"能跑"到"好用"。
Step 7.1:状态机设计
待机(低功耗,监听唤醒词)
→ 唤醒(亮灯/提示音)
→ 聆听(录音中,灯闪烁)
→ 思考(上传中,灯常亮)
→ 执行(电机动作 + 语音回复)
→ 回到待机
Step 7.2:低功耗优化
- 不唤醒时进入 deep sleep
- 唤醒词检测用低功耗模式
- 电机不用时完全断电
Step 7.3:响应速度优化
- 四驱车场景:用关键词匹配代替大模型,延迟从 3s 降到 1s
- 录音前加 200ms 静音避免截断开头
- HTTP 连接复用(keep-alive)
Step 7.4:多玩具联动(可选)
- 用 MQTT broker(Mosquitto)做中枢
- 多个玩具订阅不同 topic
- 一个玩具触发后广播事件给其他玩具
检验标准:连续使用 10 次,成功率 > 90%,响应延迟 < 2 秒,电池续航 > 2 小时。
Phase 8:实战验证与迭代
目标:用真实场景验证,记录问题,持续改进。
Step 8.1:实战测试清单
- [ ] 安静环境下 10 次语音指令,成功率?
- [ ] 有背景噪音(电视/风扇)下 10 次,成功率?
- [ ] 连续运行 30 分钟,有无崩溃/重启?
- [ ] 电池续航时间?
- [ ] 唤醒词误触发次数/小时?
- [ ] 从唤醒到动作执行的平均延迟?
Step 8.2:问题记录模板
| 日期 | 现象 | 可能原因 | 解决方案 | 状态 |
|---|---|---|---|---|
Step 8.3:迭代方向
根据测试结果选择:
- 识别率低 → 换更好的麦克风 / 加降噪 / 调整采样率
- 延迟高 → 关键词匹配代替大模型 / 端侧 ASR
- 续航短 → 低功耗优化 / 加大电池
- 误触发多 → 调整唤醒灵敏度 / 换唤醒词
四、常见陷阱与避坑指南(20 坑)
🔌 硬件接线类
| 坑 | 现象 | 解决 |
|---|---|---|
| 1. USB线只能充电 | 电脑识别不到开发板,无COM口 | 换确认能传数据的USB线 |
| 2. 没有共地 | 电机不转/乱转/ESP32反复重启 | 所有模块GND连在一起,铁律 |
| 3. 电机与ESP32共电源 | 电机一转ESP32就重启 | 电机用电池,ESP32用USB/降压模块;加100μF电容滤波 |
| 4. INMP441接线错 | 录音全是沙沙声或无声 | L/R接GND;SCK/WS/SD不接反 |
| 5. 杜邦线接触不良 | 时好时坏,拍一下就好 | 换线;插紧;重要接线焊接 |
💻 软件编程类
| 坑 | 现象 | 解决 |
|---|---|---|
| 6. 串口波特率不匹配 | 串口监视器乱码 | 代码和监视器都设115200 |
| 7. 上传失败 | "Failed to connect to ESP32" | 按住BOOT键点Upload,看到Connecting时松开 |
| 8. WiFi连不上 | 一直打印"..." | 确认2.4G WiFi;名称无中文/特殊字符;密码正确 |
| 9. 内存不足 | Guru Meditation Error / malloc failed | 大数组用malloc或全局变量;用完free;避免函数内大数组 |
| 10. HTTPS请求失败 | 返回-1或连接失败 | 确认https://;用https.begin();开发阶段setInsecure()跳过证书 |
🎙️ 语音相关类
| 坑 | 现象 | 解决 |
|---|---|---|
| 11. 录音音量异常 | 太小听不清/太大爆音 | 说话距离10–30cm;调整增益 |
| 12. ASR识别率低 | 经常识别错 | 16kHz采样率;录音前200ms静音;降噪;普通话标准些 |
| 13. 唤醒词异常 | 误触发/不触发 | 选3–4字清晰词;调灵敏度;远离噪音源 |
⚡ 电源与安全类
| 坑 | 现象 | 解决 |
|---|---|---|
| 14. 电池接反 | 板子冒烟/烧坏 | 接线前万用表测正负极;红线正极黑线负极 |
| 15. 电机堵转 | 驱动芯片发烫/冒烟 | 挡轮子不超过3秒;产品化加电流检测 |
| 16. USB+外部电源同时接 | 可能损坏板子 | 接外部电源前先拔USB |
📚 学习方法类
| 坑 | 现象 | 解决 |
|---|---|---|
| 17. 一上来做完整产品 | 出问题不知道哪步的锅 | 5个小目标依次验证,每个独立跑通 |
| 18. 抄代码不理解 | 编译不过不知道哪错 | 一段一段加,每加一段编译一次看效果 |
| 19. 不看串口打印 | 盲猜bug位置 | 关键位置加Serial.println(),90%bug能定位 |
| 20. 遇到问题就放弃 | 项目烂尾 | 串口→接线→搜错误→社区提问,按顺序排查;硬件开发就是踩坑过程 |
五、场景适配指南
| 场景 | 重点 Phase | 特殊说明 |
|---|---|---|
| 四驱车/遥控车 | Phase 1–4 + Phase 5 | 关键词匹配即可,不需要大模型;低延迟优先;电机电流大注意电源分离 |
| 智能玩偶/机器人 | Phase 1–6 全部 | 需要大模型对话 + TTS;外观设计重要;考虑安全(无尖锐部件) |
| 家居开关/控制器 | Phase 1–4 + Phase 5 | 电机换成继电器/舵机;需要 WiFi 稳定;考虑离线 fallback |
| 儿童玩具 | Phase 1–6 | 隐私合规:录音上传需明示;建议端侧处理或严格数据删除;无小零件吞咽风险 |
| 户外玩具 | Phase 1–5 | 考虑离线方案(ESP32-P4/RK3566端侧AI);防水防尘;电池续航优先 |
| 多玩具联动 | Phase 7 | MQTT 中枢;每个玩具订阅不同 topic;考虑网络延迟 |
| 产品化原型 | 全部 + Phase 8 | PCB 设计代替面包板;外壳3D打印;FCC/CE 认证考虑;BOM 成本优化 |
六、完整文档与资源索引
官方核心文档
| 主题 | 链接 |
|---|---|
| ESP32 Arduino 核心 | https://docs.espressif.com/projects/arduino-esp32/en/latest/ |
| ESP-IDF 官方文档 | https://docs.espressif.com/projects/esp-idf/en/latest/ |
| PlatformIO 文档 | https://docs.platformio.org/en/latest/ |
| ESP-SR 语音识别 | https://docs.espressif.com/projects/esp-sr/en/latest/ |
| 百度语音识别 API | https://cloud.baidu.com/doc/SPEECH/s/Vk38lxily |
| 阿里云智能语音 | https://help.aliyun.com/zh/isi/ |
| 讯飞开放平台 | https://www.xfyun.cn/doc/asr/voicedictation/API.html |
推荐 GitHub 项目
| 项目 | 地址 | 用途 |
|---|---|---|
| ESP32-audioI2S | https://github.com/schreibfaul1/ESP32-audioI2S | 音频播放(TTS/音乐) |
| esp-sr | https://github.com/espressif/esp-sr | 唤醒词+端侧语音识别 |
| arduino-esp32 | https://github.com/espressif/arduino-esp32 | 核心库+海量示例 |
| Edge-TTS | https://github.com/rany2/edge-tts | 免费TTS服务 |
社区与求助
| 平台 | 用途 |
|---|---|
| ESP32 中文社区 | https://www.esp32.com/ |
| 立创社区 | https://club.szlcsc.com/ |
| B站 | 搜"ESP32 入门""ESP32 语音识别",推荐"太极创客"系列 |
| GitHub Issues | 库的 bug 直接去对应仓库提 |
七、质量检验清单
环境搭建检查
- [ ] VS Code + PlatformIO 安装完成?
- [ ] USB 驱动安装完成,设备管理器能看到 COM 口?
- [ ] LED 闪烁代码能成功编译上传?
- [ ] 串口监视器能看到打印内容(115200 波特率)?
Phase 4 最小原型检查
- [ ] WiFi 能连接并打印 IP 地址?
- [ ] 电机能前进/后退/左转/右转/停止?
- [ ] 所有模块共地?
- [ ] 电机和 ESP32 电源分离?
- [ ] INMP441 录音数据正常(不是全噪音)?
- [ ] 云端 ASR 能返回识别文字?
- [ ] 关键词匹配能触发对应电机动作?
- [ ] 完整闭环:触发→录音→识别→动作,跑通?
Phase 5–6 进阶检查
- [ ] 唤醒词能稳定触发(10 次成功 ≥ 8 次)?
- [ ] 误触发率可接受(< 1 次/小时)?
- [ ] TTS 语音清晰可懂?
- [ ] 状态机切换正常(待机→唤醒→聆听→思考→执行)?
整体质量检查
- [ ] 连续使用 10 次成功率 > 90%?
- [ ] 响应延迟 < 2 秒(唤醒到动作开始)?
- [ ] 电池续航 > 2 小时?
- [ ] 踩坑笔记已记录?
- [ ] 代码有注释,关键位置有串口打印?
八、执行原则
-
分阶段验证是生存法则:每个小目标独立跑通再整合。同时接所有模块出了问题你根本不知道哪步的锅。
-
共地和电源分离是铁律:这两条不遵守,90% 的时间都在排查"为什么电机不转/为什么一直重启"。
-
串口是最好的调试工具:
Serial.println()能定位 90% 的 bug。不要盲猜,让程序告诉你它走到哪了。 -
用库不要手写:ESP32 生态极其成熟。I2S、WiFi、HTTP、音频播放都有现成库。你的工作是拼库,不是造轮子。
-
最小版本先跑通:第一版能用按钮触发、说"前进"小车就动,就已经成功了。唤醒词、TTS、对话都是后面加的。
-
先云端后端侧:新手从云端 API 开始(百度ASR+豆包大模型),验证想法后再考虑端侧化(ESP32-P4/RK3566)。云端开发简单、能力强,端侧复杂但有隐私和离线优势。
-
记录踩坑笔记:每解决一个问题就记下来(现象、原因、解决方案)。一个月后你会有一本自己的避坑手册,这是最宝贵的资产。
-
四驱车用关键词匹配,不要上大模型:四驱车需要低延迟(<1秒),关键词匹配比大模型快 3–5 倍,而且完全够用。大模型留给智能玩偶这类需要对话的场景。
-
安全第一:电池接反会烧板、电机堵转会烧驱动、儿童玩具要考虑吞咽风险和隐私合规。做之前先想清楚安全边界。
-
迭代是常态:第一个版本永远不完美。先跑通,再根据实战测试结果持续优化。硬件开发的乐趣就在于不断迭代让它越来越好。
附录·学习路径时间线
| 时间 | 目标 | 交付物 |
|---|---|---|
| 第 1 周 | C 语言 + Arduino 基础,跑通 LED 闪烁 | 能编译上传,串口有输出 |
| 第 2 周 | 买齐硬件,跑通 WiFi + 电机控制 | 小车能前进后退左转右转 |
| 第 3 周 | 录音 + 百度 ASR,串口看到识别文字 | 说"前进"串口打印"前进" |
| 第 4 周 | 整合关键词匹配,语音控制小车 | 完整闭环跑通 |
| 第 5–6 周 | 加入唤醒词,完全声控 | 喊"小车小车"就响应 |
| 第 7–8 周 | TTS 语音回复,状态机优化 | 能对话能回应 |
| 之后 | 端侧化 / 多玩具联动 / 产品化 | 根据兴趣选择方向 |
> 本技能由 @鸢飞鱼游(公众号·AI as Dasein)共享。觉得有用?安装 SkillHub 商店,搜索「winson」,解锁全部技能。