基于MPU6050 的人体姿态检测家电控制系统设计

2019-10-31 08:14:30刘选朝田庚陈威冲张家田严正国
现代计算机 2019年26期
关键词:遥控器电器使用者

刘选朝,田庚,陈威冲,张家田,严正国

(西安石油大学光电油气测井与检测教育部重点实验室,西安710065)

0 引言

随着物联网技术的发展,各种智能化家居产品顺应市场需求大量出现[1],用户对于智能家居互动的灵活性要求也越来越高。最近几年,通过“单片机”对红外线遥控信号进行存储、转发的技术已经有了长足发展,进而利用嵌入式系统不断增强的技术优势产生更为智能的应用也变得简单可行[2]。同样通过利用单片机作为微控制器对家电设备进行控制已经变得容易实现。当前流行手机App 在软件层对家用电器进行控制,而本设计采用集成MPU6050 芯片的新型遥控器,通过收集人体姿态数据,实现一键控制家中各方位电器的效果,为智能家居中人机交互提供了另一种底层硬件解决思路。

1 系统功能分析及总体设计

1.1 系统功能分析

为方便进行说明,假定室内各电器放置位置如图1。

如图1 所示,假设使用者位于沙发位置,电视机(电器1)位于其正前方,而顶灯(电器2)相对于使用者处在垂直上方的位置,烧水壶(电器3)位于使用者左侧,侧灯(电器4)位于使用者右侧。

本设计利用这些家中各电器位置相对固定不变的特性,并参考现有的智能家居设计[3],利用MPU6050 的姿态检测功能,通过判断使用者操作遥控器指向不同的位置,改变按键键值,实现使用者坐在沙发上,通过一个按键即可对家中电器1-4 进行简单的开关控制。

1.2 系统总体设计

基于人体姿态检测的体感家电控制系统控制回路主要由STM32F103C8T6 为主控制器,MPU6050 六轴姿态传感器和红外信号发射接收模块组成。总体系统框图如图2 所示。

发送端也是移动端,其MPU6050 六轴姿态传感器可时实获得自身姿态参数通过I2C 发送给单片机,单片机对当前参数进行归类,判断移动端目前处于什么样的位置,按照程序设计改变键值的红外信号,当按键按下接收端根据接收到的红外信号改变不同的I/O 口引脚电平,继而控制不同的继电器,达到控制主电路不同电器开关的作用。

图2 系统总体框图

2 硬件设计

2.1 STM32F103C8T6最小系统

STM32C8T6 作为一款发展成熟的主控芯片[4],其凭借低功耗、中断系统完善、价格低廉、功能齐全等特性非常适用于本设计。

2.2 MPU6050芯片

MPU6050 是一款姿态传感器,集成了三轴陀螺仪和三轴加速度计。陀螺仪可测范围为±250、±500、±1000、±2000°/s,加速度计可测范围为±2、±4、±8、±16g[5]。MPU6050 数据寄存器的输出范围是-7FFF~7FFF,也即是-32767~32767[6]。在本设计需要得到加速度传感器数据和陀螺仪数据,分别对发送端的俯仰角及转向方位进行判断。考虑到本设计对于数据精度要求不高,针对角速度我们设计在±2000(°/s)范围,因为陀螺仪的ADC 为16 位分辨率,所以得到灵敏度为:65536/4000=16.4LSB/(°/s)。设置加速度传感器的满量程范围为±2g,因为加速度传感器的ADC 也是16 位,所以得到灵敏度为:65536/4=16384LSB/g。

2.3 红外发射接收模块

红外遥控是一种无线、非接触控制技术,具有抗干扰能力强、信息传输可靠、功耗低、成本低、易实现等显著优点[7]。该模块使用STC11F02E 将红外信号进行分析解码,转换成6 字节的红外信号协议,使其可通过串口对红外信号进行改变设置。

图3 红外模块电路图

3 系统软件设计

3.1 主程序设计

系统主程序流图如图所示:上电后进行通用初始化,包括系统初始化及MPU6050 初始化。因为该系统对于姿态数据参数测量频率要求不高,因此可直接在主程序中通过无限循环读取MPU6050 传来的数据,继而通过读取到的数据改变按键键值。当按键按下,便通过串口向红外模块发送数据,红外模块即发送红外信号进行通信。

图4 主程序流图

3.2 MPU6050模块初始化及获得其数据

(1)初始化IIC 接口。

(2)复位MPU6050。

(3)设置角速度传感器和加速度传感器的满量程范围。

(4)设置其他参数。配置中断、FIFO、数字低通滤波器。

(5)设置系统时钟。

(6)使能角速度传感器(陀螺仪)和加速度传感器。

3.3 红外模块之间的通信程序设计

在串口进行输出时,可以按照下面的程序将红外指令进行输出。

4 具体实现

4.1 红外模块之间的通信编码

(1)红外信号协议

该红外模块定义的通信协议如下:在本设计中地址位为默认地址A1。操作位表示当前工作状态,在此设计中只使用了红外模块发射状态,不改变其通信地址状态和波特率,因此操作位为F1。数据位1、2、3 则为接收到的红外编码信息[8]。

表1 红外信号协议

(2)红外信号编码设置

根据红外信号协议,定义控制各电器红外指令表如表2。

表2 各电器红外指令编码

4.2 体感状态的界定

根据本文开头举的例子,家中电器1-4 相对于沙发(使用者)的方位在如表3 总结。

表3 家中电器方位

当搭载MPU6050 的控制器指向不同的方位时,其产生的姿态数据体现在匿名四轴上位机软件如图5-8所示。

图5 指向电器1

图6 指向电器2

图7 指向电器3

图8 指向电器4

针对其数据的特征对其进行界定如表4 所示。

表4 控制各电器界定范围

将其写入程序中,当控制器按键按下时,在中断服务函数中对六轴传感器的数据进行解析并对比,针对不同的数据发出不同的控制信号,即可实现根据传感器数据对不同的电器进行控制。

4.3 主电路电器控制

在本设计中只针对电器的开关进行控制,其控制过程较为简单,利用小电流控制大电流的思想,使用5V 继电器模块对大功率电器进行控制,甚至可以使用5V 继电器模块控制断路器,通过控制断路器线圈通断电继而控制更大功率电器。此节不是本文的重点,因此不再赘述。

5 结语

本设计面向家居智能控制,利用家用电器相对位置通常不变的特性,根据使用者姿态实时改变键值,达到“一键控制”家中电器的效果。当实现这一功能后,再进行改进即可对遥控器集成更多的按键,进行更复杂的控制。该设计为当前智能家居控制发展提供了一种新的底层硬件解决思路,为智能家居的普及和发展进行了有意义的探索。

但是该设计不足之处非常明显,即使用者使用该控制器对家中电器进行控制时,该控制器与其他电器的相对位置也不能变化,换句话说,遥控器的位置在家中位置也必须是固定的。针对这一问题,可参考2017年本科生电子大赛“可见光室内定位装置”题目,让遥控器通过类似的思路对其功能进行升级,使其对自身在室内的定位进行自动检测,从而改变数据库,实现遥控器在室内不同位置也能实现对家中电器“一键控制”的功能。

猜你喜欢
遥控器电器使用者
“法定许可”情况下使用者是否需要付费
家中电器要“焕”新 这波惠民操作别错过
时间遥控器
爸妈有个“遥控器”
奥田电器
中国品牌(2019年10期)2019-10-15 05:56:42
行走的飞行遥控器
电器创新设计两则
电子制作(2018年17期)2018-09-28 01:56:56
新型拼插休闲椅,让人与人的距离更近
好日子(2018年5期)2018-05-30 16:24:04
抓拍神器
按错遥控器