MPU6050和STM32L152的微功耗三维无线鼠标设计

时间:2016-09-12来源:网络

鼠标睡眠状态: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)三维鼠标在屏幕上坐标映射计算

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

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

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

结语

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

  • STM32单片机中文官网
  • STM32单片机官方开发工具
  • STM32单片机参考设计
1 2

关键词: MPU6050 STM32L152 鼠标设计

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版