简介
在上一篇文章中我们对安信可语音开放平台进行了全面的介绍, 大家可以快速的使用安信可语音开放平台来构建自己的SDK和固件。但是在对应的IO控制行为的介绍并不是很多, 因此在本章节我们将着重介绍当语音命令被识别后所触发的控制行为。他们分别是简单IO高低电平控制、PWM波形输出(只可以控制周期和次数)、串口输出(可以自定义波特率)
首先我们需要使用安信可语音开放平台配置IO如下所示(适用于VC01/VC02 devkit)(IO的配置,前文中有详细介绍)
由于我们想要当识别到语音的命令之后,使用串口来输出复杂命令。 因此需要使能串口引脚 (如果在IO配置中不配置串口功能, 那么在控制命令添加的时时候串口输出将不可见)。
由于需要测试三种行为的IO, 所以在这里一共配置简单的IO高低电平控制、串口控制和PWM控制等。 接着我们设置其对应的行为。 点击控制详情, 对我们新建的语音命令添加控制行为。
如上图所示,它一共具备以下的命令和效果
- 当识别到语音命令提高亮度的时候 GPIO_A27 将会输出脉冲, 周期为50MS, 次数为10
- 当识别到语音命令降低亮度的时候 GPIO_A27 将会输出脉冲, 周期为10MS, 次数为10
- 当识别到语音命令打开灯泡的时候 GPIOB2(开发板上冷色LED)将会输出高电平
- 当识别到语音命令关闭灯泡的时候 GPIOB2(开发板上冷色LED)将会输出低电平
- 当识别到语音命令串口发送数据的时候 UART1_TX 将会输出自定义的数据 AA BB CC DD
然后同时配置上述的命令为免唤醒命令(不需要触发唤醒,可以直接发送语音命令)
接着便可以生成固件信息
在漫长的等待后, 终于固件生成完毕, 然后点击固件进行下载。
在下载之后使用烧录工具对固件进行烧录 (需要烧录uni_app_release_update.bin 固件, 不要烧录错了, 否则将会没有响应)
烧录效果演示
PWM输出控制
使用语音命令 : 提高亮度 和 降低亮度,并且将手持示波器的探头接到IOA_27. 下图为IOA_27的输出波形信息。
由于这个手持示波器输出波形短的时候对频率占空比的计数显示不是很正确, 因此我再使用逻辑分析仪来查看对应的周期。 这里分别使用两次命令对数据进行PWM解码。
前者的周期为50MS, 占空比为50%,频率为20KHZ。 和我们设置的控制输出一致。
后者的周期为10MS上下, 占空比为50%,和我们设置的控制输出一致。
这里逻辑分析仪对这个信号采集的不是很好, 逻辑分析仪上只显示了 9次输出,但是示波器上显示一共输出了十次。 请以示波器输出为准。
串口输出控制
之后我们将测试串口输出功能(上文中配置的9600波特率)将逻辑分析仪的探头接到开发板的 TX1上 如下所示
此时使用语音命令: 串口输出数据, 然后我们观察逻辑分析仪中采集到的数据,并且对其进行解码
可以看到, 数据被正确的以9600的波特率进行解码。 正好是我们设置发送的 AA BB CC DD
普通IO高低电平输出控制
使用语音命令: 打开灯泡
左侧冷光LED灯已经打开
使用语音命令: 关闭灯泡
左侧冷光LED灯已经关闭
总结
在本文中我们着重探究和使用了VC系列模组在识别到语音命令后的不同的控制行为(IO控制, PWM、UART)。 通过对不同控制行为的控制演示,使其行为可以直观的被观察到。 那么在下一个章节中我将来做一个应用Demo来将上述的控制行为应用起来(着重介绍UART)。我们将使用状态机的方式来解析串口数据从而实现任意种类的数据发送和解析。
|