1、前言
非常庆幸得到本次开发试用,刚拿到板子就根据指导文档将电机跑起来的,然后打算试用之前买的离线语音一起做一个小玩意,可惜玩到中途,不知道咋的出现了一点小插曲,导致控制板带电机上电电压就被拉低,根据技术回复,大概率是Mos烧掉了,因此,语音控制电机是不能继续做了,就使用语音控制板载LED。当然也可以在这个基础上实现更多花样的小玩意。
2、芯片简介
MM32SPIN030C 是灵动 MindSPIN 旗下高性能的单电机控制 SOC 产品,采用 Cortex-M0 内核,集成了电机控制所需的专用模拟外设,包括 12 位高精度 ADC、2 路模拟比较器 COMP、2 路运算放大器 OPAMP、三相 P/N 栅极驱动器,另配备有 MC-TIM、硬件除法器 HW-Div、DMA 控制器等专用资源,以及 32KB Flash、4KB SRAM、17 个 GPIO、LDO 等基础资源- 存储及运算资源:32KB Flash,4KB SRAM,最高主频 60MHz- 7 个定时器资源:1 个 16 位高级定时器、1 个 32 位通用定时器、3 个基本定时器、1 个 12 位 IWDG、1 个 24 位 Systick- 支持 2 通道 DMA- 硬件除法器 HW-Div- 1 路 12 位模数转换器 ADC,支持 11 通道,采样速率 1Msps- 2 路模拟比较器 COMP、2 路轨对轨运算放大器 OPAMP- 三相 P/N栅极驱动器- 支持 UART/SPI 通信- 工作电压支持 7-36V- 工作环境温度 -40℃~105℃- 提供 TSSOP28 和 QFN28 封装
3、离线语音调试
本次使用的语音识别是一个离线语音识别模块,是以前读大四的时候屯的,一直没用到,最近翻出来玩玩,与电机控制板通信,实现一些小玩意。
3.1前端信号处理
前端信号处理选择单Mic ,识别距离选择1~5米
引脚功能配置这里主要是配置串口的引脚,用于与控制板进行通信
3.2唤醒词
唤醒词可以随意设置,根据自己的爱好来,这里我设置为小智管家,唤醒词设置为我在。
3.3定义命令词这里就以板子的LED灯为例子,进行开关灯控制
3.4命令触发配置
识别到开灯命令,就通过串口1发送01 00 A0 AF,字符串根据自己的需求定义。
识别到关灯命令触发,就通过串口1发送01 01 A0 AF,同样可以随意配置,也可以配置为I/O电平输入输出。、
总体配置如下,当前还没有调整灯亮度的需求,暂时不做处理
接下来生产固件,使用串口与模块连接将固件下载到模块中。下载
固件更新完成,如下所示:
使用串口调试助手进行调试,如下所示,通过命令词,正确下发命令
4、离线语音与开发板对接
使用一个串口接收例程,这里选择中断接收;
由于测试需要一颗LED,需要先初始化,这里选择的是板载的LED,硬件接口是PA11。
LED初始化,并且设置LED处于关闭状态
初始化串口,例程里发送和接受都使能,在我们这里使用到了接收,且发送为PA11,这个管脚为UART_TX,这里进行调整,只使能接收,将发送初始化删除
初始化串口波特率为115200,和模块通信波特率一致。
接下来对串口接受终端进行调整,使用USART_RxBuffer存储串口接收到的值
接下来USART_RxBuffer值进行处理即可,接收到的值为0,关闭LED,接收的值为1,打开LED。整体连接示意图如下:
5、总结
本次虽然没能实现想象的离线语音控制电机,但是原理和模板已经实现,完全可以基于当前的环境进行拓展。同时感谢灵动的大佬周五大晚上的帮我一起分析原因。
6、演示