IMU 单元例子:上图中 MCU 顶端的 ACC Gyro 6DOF,名为 USBThumb,支持
USB/串口通信
在这篇文章中我将概括这么几个基本并且重要的话题:
- 加速度计(accelerometer)检测什么
- 陀螺仪(gyroscope,也称作 gyro)检测什么
- 如何将传感器 ADC 读取的数据转换为物理单位(加速度传感器的单位是 g,陀螺仪的单
位是 度/秒)
- 如何结合加速度传感器和陀螺仪的数据以得到设备和地平面之间的倾角的准确信息
在整篇文章中我尽量将数学运算降低到最少。如果你知道什么是正弦、余弦、正切函数,
那无论你的项目使用哪种平台你应该都会明白和运用这篇文章中的思想,这些平台如
Arduino、Propeller、Basic Stamp、Ateml 芯片、PIC 芯片等等。总有些人认为使用
IMU 单元需要复杂的数学运算(复杂的 FIR 或 IIR 滤波,如卡尔曼滤波,Parks-
McClellan 滤波等)。你如果研究这些会得到很棒且很复杂的结果。我解释事情的方式,
只需要基本的数学。我非常坚信简单的原则。我认为一个简单的系统更容易操作和监控,
另外许多嵌入式设备并不具备能力和资源去实现需要进行矩阵运算的复杂算法。
我会用我设计的一个新 IMU 模块——Acc_Gyro Accelerometer + Gyro IMU 作为例
子。在下面的例子中我们会使用这个设备的参数。用这个模块作为介绍非常合适,因为它
由 3 个设备组成:
- LIS331AL (datasheet) – 3 轴 2G 模拟加速度计
- LPR550AL (datasheet) – 双轴(俯仰、翻滚) 500°/s 加速度传感器