• 正文
  • 相关推荐
申请入驻 产业图谱

给油烟机加语音控制:WTK6900HC硬件接线图+命令词配置实战

08/26 12:43
659
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

炒菜时两手都是油,再去按油烟机面板的按键,十分别扭。给油烟机加一套语音控制,说一句打开油烟机就启动,是顺手的事。本文用唯创知音 WTK6900HC 这颗离线语音识别芯片,从硬件接线到命令词配置,把整套做法走一遍。

先说清楚做完能得到什么,需要什么,哪里最容易卡。

做完以后,油烟机可以用唤醒词加命令词控制开关、风量大小、照明和延时关机,全程不连网,没有云端延迟,也不怕断网。需要准备 WTK6900HC 模块(SOP16 封装最省事)、一支驻极体麦克风、一只喇叭、24M 无源晶振、几颗电容,以及一块做逻辑控制的主控 MCU。纯播报可以不要 MCU,本文按带 MCU 的实战来讲。最容易卡住的地方有两处,麦克风走线离电机太近被干扰导致误唤醒,还有 UART 数据帧的校验和算错让 MCU 收不到命令。

先认识这颗芯片

WTK6900HC 是一颗本地语音触发识别芯片,识别在芯片内部完成,不需要网络。它用 32 位内核,主频 240MHz,带硬件浮点。语音识别用的是离线神经网络算法,规格书写明 5 米远场可以可靠识别,还有语音降噪,对稳态噪声和动态噪声都有抑制,炒菜的抽风声、锅铲声下也能识别。

电源是它好用的地方。VCC 支持 2.8V 到 5.2V 宽压,油烟机里现成的 5V 或者 3.3V 电源都能直接喂。芯片内置可选 1MB、2MB、4MB 的 SPI FLASH,用来放识别模型和提示音,型号末尾的数字对应容量,比如 WTK6900HC8 是 1MB,HC6 是 2MB,HC3 是 4MB。

它还有蓝牙 5.1,本方案不靠蓝牙,重点放在离线识别上,但如果你后面想接手机做配置,这颗芯片自带射频,不用另加模块。

SOP16 硬件接线

油烟机这种家电,选 SOP16 封装最合适,引脚少,外围简单。下面按引脚顺序把接线讲清楚。

引脚3 VCC 接 3.3V 或 5V 电源,引脚15 GND 接电源负极。

引脚4 VOUT 是给外挂 SPI FLASH 的供电口,规格书明确要求必须接一个 105 电容到地,这颗电容不能省,省了 FLASH 供电会不稳。引脚16 VMID 是内部参考电压脚,同样接 105 电容到地。

引脚13 MICLDO 是麦克风供电端,引脚14 MIC+ 是麦克风输入,这两脚接驻极体麦克风。规格书推荐的麦克风型号是 JMO-627BA283R-10TC38。麦克风走线尽量短,远离电机和电源。

引脚1 DACL 是音频输出,DAC 支持直推,但直推功率小,接喇叭前最好加一级功放,或者用小功率喇叭做提示音播报。

引脚7 OSCI 和引脚8 OSCO 接 24M 无源晶振的两端,这是芯片的主时钟。

引脚6 ANT 接天线,可以用 PCB 板载天线或者弹簧天线。离线识别不靠天线传数据,但芯片带蓝牙,要蓝牙功能天线就得接好。

引脚9 RX 和引脚10 TX 是 UART 异步串口,接主控 MCU。注意交叉接,芯片的 TX 接 MCU 的 RX,芯片的 RX 接 MCU 的 TX。这是 3.3V TTL 电平,数据格式是 1 位起始位、8 位数据位、无奇偶校验、1 位停止位。

引脚2 P21/BUSY 是 BUSY 脚,芯片在播报提示音时这个脚状态会变化,MCU 可以读它判断播报有没有结束。

引脚11 ICEDAT/D- 和引脚12 ICECLK/D+ 是烧录口,量产时用离线下载器从这里烧录固件,正常接线用不到。

UART 数据帧怎么读

命令词被识别以后,芯片通过串口主动发出一帧数据,MCU 解析这帧数据就知道用户说了哪条命令。帧结构如下。

字段 说明
起始码 7E 一帧的开始
长度 06 从长度自己到校验和的字节数
扩展码 FF 06 固定前缀
命令码 01 表示识别结果上报
词条ID 由平台分配 哪条命令词被识别
校验和 累加低字节 见下方算法
结束码 EF 一帧的结束

校验和这样算,把长度、扩展码两个字节、命令码、词条ID 这几个数加在一起,只取结果的低 8 位。拿规格书里的例子验证,打开灯光对应的帧是 7E 06 FF 06 01 02 0E EF。词条ID 是 02,加总 06 加 FF 加 06 加 01 加 02 等于 270,270 对 256 取余是 14,也就是 0E,和帧里的校验和一致。

MCU 收到一帧,先找 7E 开头、EF 结尾,按上面结构取出词条ID,再算一遍校验和比对,一致就执行对应动作。

除了识别结果上报,芯片还支持几条控制指令。音量用 A1 指令,1 到 5 级可调,带掉电记忆。A7 指令发 00 唤醒、发 FF 退出唤醒。02 指令进低功耗,任意再发一帧就能退出。A0 是被动播报应答,MCU 发码让芯片播某条提示音,芯片回 A0 表示执行成功。C0 指令查软件版本,用来追溯固件版本。

命令词怎么配

识别哪几句话、每句话对应哪个词条ID,不在代码里写死,而是在唯创知音在线语音平台做好工程再下载进芯片。平台地址是 https://wt588f.waytronic.com:8443 。

进平台新建一个工程,选 WTK6900HC 系列,先设唤醒词,再添加命令词。油烟机常用的命令词可以这样列。

命令词 建议播报 动作
打开油烟机 油烟机已打开 继电器吸合,风机启动
关闭油烟机 油烟机已关闭 继电器断开
风量加大 风量加大 提高风机档位
风量减小 风量减小 降低风机档位
打开照明 照明已打开 照明灯继电器吸合
关闭照明 照明已关闭 照明灯断开
延时关机 五分钟后关闭 启动定时

词条ID 由平台按添加顺序分配,工程编译下载以后,芯片识别到某条命令词,就会发出对应 ID 的 UART 帧。上面表里用了 01、02 这样的占位,实际 ID 以平台工程为准。

工程做好后,用离线语音识别下载器把固件烧进芯片。烧录走的是引脚11、12 的烧录口,或者用平台的下载工具。麦克风记得用规格书推荐的驻极体型号,灵敏度匹配好了识别率才稳。

MCU 怎么处理

MCU 侧的逻辑不复杂。串口中断收到数据先缓存,等收到完整的 7E 开头、EF 结尾一帧,按结构取出词条ID,比对校验和,然后查一张动作表。

词条ID 是打开油烟机的编号,就控制风机继电器吸合,同时可以等 BUSY 脚回来确认提示音播完。风量加大减小,对应调 PWM 输出的占空比改变风机转速。延时关机,开一个定时器,时间到再断开继电器。

给一段处理思路,不写死具体 ID。

收到 7E 开头 EF 结尾的完整帧。

取第五字节作为词条ID。

校验和比对,不对就丢弃。

按 ID 查动作表。

打开油烟机,风机继电器吸合。

关闭油烟机,风机继电器断开。

风量加大,PWM 占空比上调。

风量减小,PWM 占空比下调。

BUSY 脚在播报时状态变化,如果你的提示音比较长,可以等 BUSY 回到空闲再发下一条指令,避免播报被打断。

几个实战坑

麦克风是整套里最容易出问题的一环。油烟机电机一转就是强干扰源,麦克风走线要远离开关电源和电机绕组,最好加屏蔽,走线短而直。误唤醒多了,可以在平台换更特异的唤醒词,或者调低识别灵敏度。

电源要干净。VOUT 那颗 105 电容和 VMID 的 105 电容别省,它们是 FLASH 和参考电压稳定的关键。

想省电,空闲时用 02 指令让芯片进低功耗,任意发一帧码就能唤醒,适合用电池供电的便携式场景,油烟机一般是常电,这步可省。

照上面接好线、配好词,说一句打开油烟机,继电器吸合,风机转起来,这套语音控制就跑通了。

唯创知音

唯创知音

深圳唯创知音电子有限公司位于广东省深圳市宝安区,1999年成立于广州。历经二十多年的发展,公司已成为集研发、生产、销售和服务于一体的,专注于语音技术研究、语音产品方案设计及控制等软、硬件设计的国家高新技术企业。业务范围涵盖家电、医疗器械、安防报警、汽车电子多媒体、通信、电话录音、工业自动化控制、玩具及互动消费类产品等领域,公司的集成芯片和模块主要有:播放类、录音类、MP3类、蓝牙WiFi类、语音识别类。

深圳唯创知音电子有限公司位于广东省深圳市宝安区,1999年成立于广州。历经二十多年的发展,公司已成为集研发、生产、销售和服务于一体的,专注于语音技术研究、语音产品方案设计及控制等软、硬件设计的国家高新技术企业。业务范围涵盖家电、医疗器械、安防报警、汽车电子多媒体、通信、电话录音、工业自动化控制、玩具及互动消费类产品等领域,公司的集成芯片和模块主要有:播放类、录音类、MP3类、蓝牙WiFi类、语音识别类。收起

查看更多

相关推荐