从 mpu 9150 获取计算值

Getting calclated values from mpu 9150

对于一个学校项目,我们有一个 mpu 9150 (Gyro/Accelerometer/Magnetometer(?)),我们想为它获得 Roll/Pitch/Yaw/Heading。

我使用了库中的示例代码,但它只为我们提供了该格式的原始数据:ax/ay/az/gx/gy/gz/mx/my/mz。那不是我们想要的。

到目前为止,我已经通过以下代码片段获得了滚动和俯仰:

roll = atan2(ay, az)+PI;
pitch = atan2(-ax, az)+PI;

// Convert everything from radians to degrees:
pitch *= 180.0 / PI;
roll  *= 180.0 / PI;

我读到我必须使用磁力计来获得偏航角,但我不知道我需要什么公式。

在示例代码中也有这个片段,也许这就是我需要使用的全部或者任何人都知道其他 functions/methods 我可以使用?

// read raw accel/gyro measurements from device
accelgyro.getMotion9(&ax, &ay, &az, &gx, &gy, &gz, &mx, &my, &mz);

// these methods (and a few others) are also available
//accelgyro.getAcceleration(&ax, &ay, &az);
//accelgyro.getRotation(&gx, &gy, &gz);

我使用 I2Cdev 和 MPU6050 库

另一个问题是,我可以从其他传感器获得什么样的东西?是否可以得到它的高度或高度差?

感谢您的帮助。

你的 mpu 的原始值大多非常不准确,漂移,......不是真正可用的。 MPU6050 库对于获取有用的值非常有用。要获得 yaw/roll/pitch,您可以像 example sketch 中描述的示例一样使用 MPU6050 库。只需添加

#define OUTPUT_READABLE_YAWPITCHROLL

在此代码之上 运行 它(具有正确的波特率)。

使用您的传感器也可以获得实际温度。