陀螺仪的起源与发展
近几年,MEMS陀螺仪在消费电子中开始掀起浪潮。然而我们现在在手机里面看到的这一块块小芯片,最早确是一个机械装置。
一开始,陀螺仪是被用于航海航空仪表的。
目前,人们普遍认为是1850年法国的物理学家莱昂·傅科(J.Foucault)为了研究地球自转,发明了陀螺仪。那个时代的陀螺仪可以理解成把一个高速旋转的陀螺放到一个万向支架上面,这样因为陀螺在高速旋转时保持稳定,人们就可以通过陀螺的方向来辨认方向,确定姿态,计算角速度。
陀螺仪发明以后,首先被用在航海上,后来被用在航空上。到了二战,德国人将陀螺仪用来造出惯性制导系统。惯性制导系统采用用陀螺仪确定方向和角速度,用加速度计测试加速度,然后通过数学计算,就可以算出飞弹飞行的距离和路线,然后控制飞行姿态,争取让飞弹落到想去的地方。虽然由于精度不太够的,飞弹偏差很大,但从此以后,以陀螺仪为核心的惯性制导系统就被广泛应用于航空航天,今天的导弹里面依然有这套东西,并且技术不断提升。
最早的陀螺仪都是机械式的,里面真有高速旋转的陀螺,而机械的东西对加工精度有很高的要求,还怕震动,因此机械陀螺仪为基础的导航系统精度一直都不太高。于是,人们开始寻找更好的办法,利用物理学上的进步,发展出激光陀螺仪,光纤陀螺仪,以及微机电陀螺仪(MEMS)。
现在的MEMS陀螺仪虽然还叫陀螺仪,但是原理上和传统的机械陀螺仪已经完全是两码事了。
MEMS陀螺仪介绍.pdf (1.3 MB)
陀螺仪的内部原理
陀螺仪的内部原理是这样的:对固定指施加电压,并交替改变电压,让一个质量块做振荡式来回运动,当旋转时,会产生科里奥利加速度,此时就可以对其进行测量;这有点类似于加速度计,解码方法大致相同,都会用到放大器。
施加变化的电压来回移动器件,此时器件只有水平运动没有垂直运动。如果施加旋转,可以看到器件会上下移动,外部指将感知该运动,从而就能拾取到与旋转相关的信号。
上面的动画,只是抽象展示了陀螺仪的工作原理,而真实的陀螺仪内部构造是下面这个样子。
陀螺仪可以三个一起设计,分别对应于所谓滚动、俯仰和偏航。任何了解航空器的人都知道,俯仰是指航空器的上下方向,偏航是指左右方向,滚动是指向左或向右翻滚。要正确控制任何类型的航空器或导弹,都需要知道这三个参数,这就会用到陀螺仪。它们还常常用于汽车导航,当汽车进入隧道而失去GPS信号时,这些器件会记录您的行踪。
那么,陀螺仪究竟是怎么工作的?
感兴趣的可以看看这个资料:
IMU(加速度计和陀螺仪设备)在嵌入式应用中使用的指南
陀螺仪的每个通道检测一个轴的旋转。例如,一个2轴陀螺仪检测绕X和Y轴的旋转。 为了用数字来表达这些旋转,我们先引进一些符号。首先我们定义: Rxz – 惯性力矢量R在XZ平面上的投影 Ryz – 惯性力矢量R在YZ平面的上投影 在由Rxz和Rz组成的直角三角形中,运用勾股定理可得: Rxz^2 = Rx^2 + Rz^2 ,同样: Ryz^2 = Ry^2 + Rz^2 同时注意: R^2 = Rxz^2 + Ry^2 ,这个公式可以公式1和上面的公式推导出来, 也可由R和Ryz所组成的直角三角形推导出来 R ^ 2 = Ryz ^ 2 + RX ^ 2 在这篇文章中我们不会用到这些公式, 但知道模型中的那些数值间的关系有助于理解。 相反,我们按如下方法定义Z轴和Rxz、Ryz向量所成的夹角: AXZ - Rxz(矢量R在XZ平面的投影)和Z轴所成的夹角 AYZ - Ryz(矢量R在YZ平面的投影)和Z轴所成夹角 现在我们离陀螺仪要测量的东西又近了一步。 陀螺仪测量上面定义的角度的变化率。 换句话说,它会输出一个与上面这些角度变化率线性相关的值。 为了解释这一点,我们先假设在t0时刻, 我们已测得绕Y轴旋转的角度(也就是Axz),定义为Axz0, 之后在t1时刻我们再次测量这个角度,得到Axz1。 角度变化率按下面方法计算: RateAxz = (Axz1 – Axz0) / (t1 – t0). 如果用度来表示角度,秒来表示时间, 那这个值的单位就是 度/秒。这就是陀螺仪检测的东西。 在实际运用中,陀螺仪一般都不会直接给你一个单位为度/秒的值 (除非它是个特殊的数字陀螺仪)。 就像加速度计一样, 你会得到一个ADC值并且要用类似公式2的式子将其转换成单位为度/秒的值。 让我们来介绍陀螺仪输出值转换中的ADC部分 (假设使用10位ADC模块,如果是8位ADC, 用1023代替255,如果是12为ADC用4095代替1023)。 RateAxz = (AdcGyroXZ * Vref / 1023 – VzeroRate) / Sensitivity 公式3 RateAyz = (AdcGyroYZ * Vref / 1023 – VzeroRate) / Sensitivity AdcGyroXZ,AdcGyroYZ - 这两个值由ADC读取, 它们分别代表矢量R的投影在XZ和YZ平面内里的转角, 也可等价的说,旋转可分解为单独绕Y和X轴的运动。 Vref – ADC的参考电压,上例中我们使用3.3V VzeroRate – 是零变化率电压, 换句话说它是陀螺仪不受任何转动影响时的输出值, 对Acc Gyro板来说,可以认为是1.23V (此值通常可以在说明书中找到——但千万别相信这个值, 因为大多数的陀螺仪在焊接后会有一定的偏差, 所以可以使用电压计测量每个通道的输出值, 通常这个值在焊接后就不会改变,如果有跳动, 在设备使用前写一个校准程序对其进行测量, 用户应当在设备启动的时候保持设备静止以进行校准)。 Sensitivity –陀螺仪的灵敏度,单位mV/(deg/s), 通常写作mV/deg/s,它的意思就是如果旋转速度增加1°/s, 陀螺仪的输出就会增加多少mV。 Acc_Gyro板的灵敏度值是2mV/deg/s或0.002V/deg/s 让我们举个例子,假设我们的ADC模块返回以下值: AdcGyroXZ = 571 AdcGyroXZ = 323 用上面的公式,在代入Acc Gyro板的参数,可得: RateAxz = (571 * 3.3V / 1023 – 1.23V) / ( 0.002V/deg/s) =~ 306 deg/s RateAyz = (323 * 3.3V / 1023 – 1.23V) / ( 0.002V/deg/s) =~ -94 deg/s 换句话说设备绕Y轴(也可以说在XZ平面内)以306°/s速度和绕X轴 (或者说YZ平面内)以-94°/s的速度旋转。 请注意,负号表示该设备朝着反方向旋转。 按照惯例,一个方向的旋转是正值。 一份好的陀螺仪说明书会告诉你哪个方向是正的, 否则你就要自己测试出哪个旋转方向会使得输出脚电压增加。 最好使用示波器进行测试,因为一旦你停止了旋转,电压就会掉回零速率水平。 如果你使用的是万用表, 你得保持一定的旋转速度几秒钟并同时比较电压值和零速率电压值。 如果值大于零速率电压值那说明这个旋转方向是正向。
说到陀螺仪你会想到什么?
无人机?平衡车?事实上,从穿戴式设备,物联网,到工业4.0,游戏机里面各种体感操作功能的背后都是微机电陀螺仪(MEMS)。
除了我们熟悉的智能手机以外,汽车上也用了很多微机电陀螺仪,在高档汽车中,大约采用25至40只MEMS传感器,用来检测汽车不同部位的工作状态,给行车电脑提供信息,让用户更好的控制汽车。
还有这样的防抖控制杆。
有些不可思议。看起来有点像这个...
整理自:亚德诺半导体,雷锋网,MEMS技术,极客工坊