1.1 系统流程图
智能家居控制系统的软件设计主要使用Keil uVision5进行STM32主烧录程序的编写,主程序完成的功能主要为接收并判断语音识别模块传过来的信息,然后根据满足条件的不同进行对应的操作。例如,当语音模块传过来的信息为“打开电视”时,STM32单片将使给8550一个低电平,这样继电器就打开了,继电器控制的电视开关也打开了,下图为详细的程序流程图。
1.2 步进电机程序设计
如图步进电机连接电路图,由于STM32接口不足以直接带动电机,所以通过ULN2003放大之后在连接到相对应的接口。既然知道了步进电机的原理,那么接下来就是如何让它动起来了。通过查询步进电机的芯片手册,找到该步进电机驱动的驱动方式,如下图。
1.3 单片机定时器程序
对于步进电机来讲,当外部脉冲频率变大时,其运行速度将成比例上升。这里的控制原理是根据外部中断的数量将其值放入存储区域。定时器通过不同的值,然后可以改变脉冲的间隔时间,从而有效地控制脉冲占空比,然后进而改变电机的转速[6]。
1.4语音识别
语音识别程序的编写是整个控制系统中最重要也是最困难的部分。语音识别的操作流程为:语音识别用初始化,之后将其写入识别列表,之后进行识别。此外,应该准备中断响应函数,之后将中断允许位开启。由于器件较少,所以连接方法使用最简单的SPI总线进行连接。SPI的效率非常出众,具有较高的同步性,并且在芯片的管脚上只占用四根线,如此不但减少了STM32引脚使用量,并且也能够使PCB布局更为合理,正是出于这种简单方便使用的特性,现如今越来越多的芯片集成了这种SPI通信协议[3]。首先需要对STM32的SPI接口进行定义及初始化。
定义完之后就需要在程序编写对应的功能,当STM32收到来自LD3320的一条消息,进行判断,如果为关键词列表的某一条信息,那么就执行对应的操作。如果不是,那就什么都不做继续等待,直到等到处于关键词列表的消息来,在进行对应的操作。
读取 BA 寄存器的值,至此,一次识别ASR识别流程结束,读取ASR识别结果即可进行对应的判断及操作[10]。
现在市面上智能家居控制系统普遍采用智能移动终端设备进行控制家电的方法,手机上的应用程序起到的作用仅仅是发送一条信息,通过网络传输到云服务器上,其余的工作交给云服务器进行计算,然后将返回的值通过网络中继转发传送给家中正在使用的家电设备。至此,一次控制指令完成了。对于智能家居控制系统的发展,以后会各种控制方式相结合起来进行控制,演化到感应式控制(即可以对用户的具体状态进行准确的感知,并对设备展开科学的调节,从而实现无感化),之后实现系统自学习,提升系统的主动性是智能家居发展的主要方向,在当前来讲,诸多厂商通过多种方式对其进行具体实现,例如带着手环接近电视,电视会对个体的位置进行感应,如果用户与电视的距离太近,电视会减少屏幕亮度,从而对用户的视力进行良好的保护,在智能家居主动性提升之后,其智能的特点才会有所凸显。