当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]摘要:利用运动传感芯片MPU6050和STM32L152,设计了一款运动感知及处理模块功耗仅为1.2 mA左右的低功耗三维鼠标。针对功耗问题,详细介绍了符合鼠标低功耗工作要求的STM32L

摘要:利用运动传感芯片MPU6050和STM32L152,设计了一款运动感知及处理模块功耗仅为1.2 mA左右的低功耗三维鼠标。针对功耗问题,详细介绍了符合鼠标低功耗工作要求的STM32L152低功耗运行、睡眠模式配置,以及MPU6050加速度计单独循环、单轴加速度计工作模式的配置,给出了加速度计标定及基于加速度计的姿态角计算方法,实现了鼠标姿态的精确测量。

关键词:STM32L152;MPU6050;三维无线鼠标

引言

针对低功耗设计问题,大多数三维无线鼠标仅考虑无线模块的低功耗设计。本文在此基础上,进一步将鼠标处理器模块及惯性测量模块功耗考虑进来,实现一款功耗更低、性能更优的三维无线鼠标。

1 方案选择

系统主要由电源模块、运动感测追踪组件MPU6050模块、串口转无线WiFi模块和主控芯片STM32L152构成,系统功能框图如图1所示。这里WiFi模块只是用于远程传输测试,不在低功耗设计考虑之中,若考虑远程传输低功耗设计,则使用ZigBee无线传输。

 

 

2 硬件电路设计

2. 1 微控制器接口电路

主控芯片STM32L152与MPU6050的I2C和串口转WiFi模块的接口电路如图2所示。

 

 

2.2 运动感测追踪组件MPU6050电路

MPU6050硬件电路设计如图3所示,将其SCL、SDA端口连接4.7 kΩ上拉电阻(否则I2C总线不能通信),并与微处理器PB8、PB9引脚相连;AD0经4.7 kΩ电阻接地,读写器件地址为0xD0,若悬空或接高电平,地址为0xD2;滤波电容取值0.1μF,电荷泵电容取值10 μF,否则片上传感器不工作。

 

 

2.3 串口转WiFi模块电路

WiFi232-s是一款实现串口到WiFi数据包的双向透明转发,其内部完成协议转换。串口转WiFi模块电路如图4所示。通过串口或WiFi网络连接至电脑,可以对模块进行AT指令集设置其配置参数。其中9、10、12引脚接4.7 kΩ上拉电阻,5、6引脚接处理器串口引脚PD8、PD9。

 

 

3 软件设计

3.1 三维鼠标低功耗设计描述

使用MPU6050可以设计两种三维鼠标:基于加速度计或陀螺仪,这里主要讨论基于加速度计的三维鼠标设计。

三维鼠标低功耗设计中,主要实现在鼠标不工作时系统进入睡眠模式,达到功耗最低,并且能够及时从睡眠中唤醒,进入工作状态。因此,在微处理器STM32L152中设置一个3s定时器,用来扫描鼠标当前状态是否符合进入睡眠模式条件。每当定时溢出中断到来后,采集加速度计Z轴输出值并持续0.5s,采集的当前数据与上一时刻相减得到变化值,判断其是否大于所设的阈值,并对这些大于阈值的数据进行计数。若计数大于所设阈值,则鼠标仍然保持工作状态,等待下一次定时中断到来,此时STM32L152为低功耗运行模式,MPU6050工作模式为加速度计单独循环模式;若计数小于所设阈值,则鼠标进入睡眠模式,此时微处理器设置为低功耗睡眠模式,MPU6050的工作模式设置为加速度计Z轴工作,其余轴为Standby待机模式。

3.2 MPU6050低功耗设置

(1)MPU6050加速度计单独循环工作模式

三维鼠标的MPU6050模块中的三轴加速度计设置为循环工作模式,三轴陀螺仪设置为Standby待机模式,此时MPU6050电流消耗500μA。

MPU6050生产商已经给出了编程所需头文件mpu6050.h,其将编程中所用到的寄存器都做了定义,如MPU6050 DEFAULT ADDRESS,在头文件中对应地址为0xD0或0xD2。

 

 

(2)MPU6050其他工作模式配置

MPU6050睡眠模式:电源管理1寄存器PWR_MGMT_1设置为0x40。此时加速度和陀螺仪传感器都进入Standby待机模式,陀螺仪输出值为0,加速度传感器输出一个固定值,MPU 6050电流消耗为5μA。

MPU6050陀螺仪单独运行模式:电源管理1寄存器PWR_MGMT_1设置为0x0C,电源管理2寄存器PWR_MGMT_2设置为0x38。此时只有陀螺仪传感器工作,加速度计进入Standby待机模式,输出为一个固定值,MPU6050电流消耗为3.6 mA。

3.3 STM32L152低功耗设置

 

 

注意,一般睡眠函数放置在while循环最后执行,在其他任务跑完后进入睡眠模式,待中断到来时唤醒。

(3)STM32L152低功耗模式参数

低功耗睡眠模式:当静止不动时,三维鼠标会进入不工作状态。此时只有微处理器中的3 s定时扫描MPU6050加速度计Z轴动作的定时器在工作,在1.8 V或3 V电压下,微处理器功耗为6.1μA。

低功耗运行模式:三维鼠标进行旋转或位移动作时,进入工作状态,此时STM32L152处于低功耗运行模式,主频设置为16 MHz。关闭所有无关的外设,其电流消耗在500 μA左右。

3.4 鼠标工作状态及睡眠状态下的总功耗

鼠标正常工作状态:STM32L152工作在低功耗运行模式,MPU6050工作在加速度计单独循环模式,电流消耗在1.2 mA左右。[!--empirenews.page--]

鼠标睡眠状态:STM32L152工作在睡眠模式(定时器中断唤醒),MPU6050只有加速度计Z轴工作,电流消耗在200μA左右。

3.5 三维鼠标算法实现

三轴加速度计精度在出厂时便存在工艺误差,制成MPU6050模块后还存在安装误差等,所以大多数情况下加速度计所测得的值与真实值有所差别,需要进行加速度计标定过程。

(1)加速度计标定方法

标定模型:ai=Kiui+Bi,i=x、y、z,其中ai为加速度计真值,ki为测量斜率,ui为测量值,Bi为零偏。

取多个静态位置的加速度计测量值,当三轴加速度计静止时,有如下状态关系式:

 

 

g为当地重力加速度值。将标定模型代入状态关系式,并作相关变量代换,可得表达式:

 

 

其中,pi是与测量斜率ki和零偏bi有关的替换变量。

本文测量20组不同位置的加速度计测量值,并除以对应的系数转换成以g为单位,分别求取每组中各轴的均值和平方值,代入上式中求出最小二乘解,接着求出标定参数中的斜率和零偏。

(2)MPU6050加速度计不同量程标定及结果

MPU6050加速度计有4种量程,分别是±2g、±4g、±8g、±16g,并且传感器输出单位分别是1 6 384 LSB/g、8 192 LSB/g、4 096 LSB/g、2 048 LSB/g,表1给出了±2g、±4g量程标定结果,当地重力加速度取值为9.8。

 

 

当量程选取±2g时,通过下式计算加速度值:

ai=9.8 Kiui/16 384+Bi

当量程选取±4g时,通过下式计算加速度值:

ai=9.8 Kiui/8 192+Bi

(3)姿态角计算

俯仰角pitch和横滚角roll的计算公式:

pitch=arcsin(-ay),roll=arctan(-ax/az)

三轴加速度计只有在静止或匀速运动下,加速度测量合成矢量与重力矢量重合时,才能准确测量姿态角。在测量精度要求不高的情况下,可以通过放宽对合成矢量的要

求,获得姿态角连续测量。图5(a)、图5(b)以横滚角为例,给出了不同阈值情况下的计算结果,其中黑点和细线分别为满足于测量阈值条件时的横滚角度计算值,可见对于三维鼠标,使用0.15g的阈值,能够满足连续测量的要求。可靠性判定条件如下:

 

 

 

 

(4)三维鼠标在屏幕上坐标映射计算

三维鼠标在屏幕上坐标映射的两种计算方式为:

①旋转角度判定方向、角度变化映射成坐标位置:加速度传感器计算横滚、俯仰两个倾角θ、ψ,θ角变化表示鼠标在屏幕水平方向移动;ψ角变化表示在屏幕垂直方向移动。角度变化按一个比例系数转换为鼠标的位移。

②旋转角度判定方向、加速度积分映射光标位移:鼠标光标在屏幕移动方向的判断同上。对加速度计动作轴的输出值在时间轴上积分得到位移,从而得到屏幕映射坐标位置。

结语

从硬件选型到软件设计都充分考虑了功耗问题,兼顾了三维鼠标操作时的精度、稳定性,克服了传统鼠标在某些环境不能悬空操作及灵敏度不高的缺点,实现了一款低成本、低功耗、操作简单、稳定性高的三维鼠标。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭