[毕设笔记]利用Android手机的传感器进行APP开发


自己的毕业设计是用安卓手机控制无人机。今天尝试了下读取安卓手机传感器的信息,通过手机的重力感应器,通过手机的倾斜来控制无人机的飞行方向。

基础知识

安卓手机配置的传感器有加速度传感器(Accelerometers),陀螺仪(Gyroscope),电子罗盘(Magnetic),光传感器(Illumination),距离接近传感器,环境温度传感器(Ambient Temperature)等。

一般的安卓手机都会配置前三个传感器,这也是我们本文所要讨论的重点。

获得手机的姿态

有趣的是,手机内置的陀螺仪(Gyroscope)的直接输出并不是角度而是角速度。这和我们的常识有些违背。原因是包括手机在内的很多电子设备中内置的陀螺仪,是利用震动物体在旋转时产生的科里奥利力来检测角速度,通过计算而间接地得到角度。而不是利用我们平常见到的那种巨大的依靠角动量守恒而保持旋转轴指向不变的陀螺仪来直接得到角度数据。

微电机陀螺仪 上图:微电机陀螺仪获得角速度的原理

必须指出,如果单独用陀螺仪获得角度的话,需要对角速度在时间上积分。这带来了累积误差。并且,陀螺仪本身会发生漂移,导致误差会随时间急剧地增大。为了减小误差,我们必须利用其它的传感器,比如加速度传感器来进行互补融合计算,减小误差。

多传感器融合算法

为了抵消陀螺仪的累积误差和漂移误差,我们往往用加速度传感器进行修正。

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
Notify of