一、Arduino+MPU6050/MPU9250——IMU惯性传感器原理

        由于最近的一个小项目,接触到了Arduino+MPU9250获取加速度、角速度和磁场数据,并计算Pitch角、Roll角、Yaw角。现对搜索到的资料和复现的代码进行一些整理。


目录

一. IMU原理

     1. 加速度计原理

     2. 陀螺仪原理

     3. 磁力计原理

        (1) 霍尔效应(Hall Effect)

        (2) 磁阻效应(Magneto-resistive effect)

二. 接线及通信方式详解

三. 数据读取原理及程序

四. 数据初始化及校准

五. 角度计算


一. IMU原理

        通常使用的IMU惯性传感器为六轴/九轴。六轴包括X、Y、Z三轴上的加速度以及X、Y、Z三轴上的角速度。九轴相比于六轴增加了X、Y、Z三轴上的磁场强度。

        因此,在一个完整的九轴IMU中集成了加速度计、陀螺仪和磁力计

        原理详解可参考:https://www.youtube.com/watch?v=eqZgxR6eRjo

     1. 加速度计原理

        首先,移动的质量块(mass)两端连接在簧片(Springs)上,簧片被限制在一个方向上移动;此外,还包括固定板(Fixed plates);当在特定的方向上施加加速度时,质量块将移动,此时板与质量块之间的电容将发生变化(C1、C2),电容的变化将被测量,并且对应特定的加速度值。

电容式——状态1
电容式——状态1

     2. 陀螺仪原理

        质量块(mass)以特定速度沿特定方向移动时,以及当施加外部角速度(Angular Rate)(如绿色箭头所示)时,根据科里奥利效应(Coriolis effect)将产生力,如蓝色箭头所示,这将产生部分垂直方向位移,与加速度计相似,这种位移会导致电容变化。测量并处理后,将对应于一个特定的角速度。

Coriolis效应

        如图所示,质量块(mass)不断移动,当产生一个外部角速度(Angular Rate)时,质量周围的绿色柔性部分将移动,并产生垂直于移动方向(Driving Direction)的位移,引起电容的变化(橙色与蓝色区域)。

电容式——状态1
电容式——状态2(相对于状态1,mass移动)

     3. 磁力计原理

        目前市面上的磁力计大多基于霍尔效应(Hall Effect)或者磁阻效应(Magneto-resistive effect)测量地球磁场。

        (1) 霍尔效应(Hall Effect)

        导电板上,设置电流流过导电板,电子会直接从板的一侧流到另一侧。

电流流经导电板

         接下来在附近引入磁场,会干扰电子流动,电子会偏转到板的一测。正电荷偏转到板的另一测。

导电板周围引入磁场

        这意味着,现在在两侧放一个测量仪器,将测得一个电压值,这取决于磁场的强度和方向。

测量导电板周围电压值

        (2) 磁阻效应(Magneto-resistive effect)

        磁阻效应的话,即使用对磁场敏感的材料,通常由铁Fe和镍Ni组成,所以当这些材料暴露在磁场中时,材料的电阻会发生改变。根据电阻的变化进行处理和计算可得到磁场的强度和方向。

磁阻效应

猜你喜欢

转载自blog.csdn.net/qq_41958946/article/details/130550998