加速度计:
胡可定律: F = -kx;
牛二定律: F = ma;
假定上图盒子不在任何力场中,盒子突然朝某个方向的移动,都会转换为球对盒子内部某些面的压力。假定盒子突然向左移动(1g = 9.8m/s^2), 球就会撞击x- 墙,并对墙面产生压力 (-1gm的力)。
加速度本身的方向和加速度计检测到的力的方向是相反的
同理,对任意方向施加的加速度可以分解为,xyz三个方向的力。
以上图为例, 假设R 是加速度计检测到的矢量值, Rx,Ry,Rz是矢量在 xyz轴上的投影。根据三维空间勾股定律: R^2 = Rx^2 + Ry^2 + Rz^2
对于加速度传感器,可以分为数字型和模拟型两种,数字型一般有SPI, I2C, 或者UART接口, 模拟加速度计则输出的是一个电压模拟值,我们需要使用ADC模块将其转换为数字值,再解算出具体数值。
例: 一个10位ADC模块, 输出的范围值在 0-1023, 假定从三个轴得到的数据:
AdcRx = 586;
AdcRy = 630;
AdcRz = 561;
每个ADC模块都有参考电压,通过参考电压可以计算出分辨率。根据分辨率,可以计算出每个数值所对应的电压
VoltsRx = AdcRx * VREF / 1023 (VREF是参考电压,假设此处接3.3V)
Vrx = 586 * VoltsRx = 1.89
Vry = 630 * VoltsRx = 2.03
Vrz = 561 * VoltsRx = 1.81
以加速度传感器为例, 当加速度为0时,电压并不为0, 而是有个基准电压。基准电压的值可以在芯片手册中找到。 假设零加速度值为1.65;通过计算可以得:
DeltaVlotsRx = 1.89 -1.65 = 0.24V
DeltaVlotsRy = 2.03 -1.65 = 0.38V
DeltaVlotsRz = 1.81 -1.65 = 0.16V
此时得到,处于某一个加速度值下的各个轴电压增量, 但还并不是加速度值, 此时还需要最后的转换,引入加速度的灵敏度,假设,灵敏度为487mv/g 通过公式可以计算
Rx = 0.24 / 0.487
Ry = 0.38 / 0.487
Rz = 0.16 / 0.487
根据传感器数据我们很容易可以计算出加速度矢量R 及各个轴的加速度值Rx, Ry, Rz。 如果我们关系矢量方向,其实也可以计算出矢量值和每个角度的夹角。
图中所示:
cos(Axr) = Rx / R
cos(Ayr) = Ry / R
cos(Arz) = Rz / R
所以可以得到角度:
Axr = arccos(Rx/R)
Axy = arccos(Ry/R)
Axz = arccos(Rz/R)
陀螺仪:
角速度传感器, 利用高速回转体 的动量矩敏感壳体相对于惯性空间,绕正交与自转轴的一个或两个轴的角运动检测装置(姿态)
原理:高速转动中的转子,由于惯性,其旋转轴永远固定的指向一个固定的方向
以图示为例: 假设旋转轮高速旋转,那么在整个陀螺仪设备发生倾斜时, 旋转轴由于旋转轮的高速旋转,其方向任会一直保证垂直向下,此时周边的三个钢圈,会随着姿态的改变而随着改变。
三个钢圈所在的轴,就是陀螺仪里边的 x轴,y轴,z轴
陀螺仪的基本构成:
陀螺转子: 绕定点高速旋转的刚体(常采用同步电机,三相交流电机等 驱动)
内外框架: 使陀螺自转轴获得转动自由度的结构