【问题标题】:Getting calclated values from mpu 9150从 mpu 9150 获取计算值
【发布时间】:2016-02-02 11:31:42
【问题描述】:

对于一个学校项目,我们有一个 mpu 9150(陀螺仪/加速度计/磁力计(?)),我们想要为它获得 Roll/Pitch/Yaw/Heading。

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

到目前为止,我设法通过以下 sn-p 获得滚动和俯仰:

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

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

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

在示例代码中也有这个sn-p,也许这就是我需要使用的全部,或者有人知道我可以使用的其他功能/方法吗?

// 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 库

另一个问题是,我还能从传感器中得到什么?是否可以得到它的高度或高度差?

感谢您的帮助。

【问题讨论】:

    标签: arduino accelerometer gyroscope magnetometer


    【解决方案1】:

    您的 mpu 的原始值大多非常不精确,逐渐消失,......不是真的可用。 MPU6050 库对于获取有用的值非常有用。要获得偏航/滚动/俯仰,您可以使用 MPU6050 库,就像 example sketch 中描述的示例一样。只需添加

    #define OUTPUT_READABLE_YAWPITCHROLL
    

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

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

    【讨论】:

    • 使用 1 代码 sn-p 上面的俯仰/滚动值似乎是稳定的(不要在 1 度变化)。我只需要使用那个定义 sn-p 的示例代码吗? ps.:也可以说德语吗?那么我会了解更多:D
    • 我认为德语在这里不受欢迎......但是:ja, einfach den define reinnehmen, richtige Baudrate einstellen, Arduino richtig verkabeln, und es sollte dein Ergebnis rauskommen :-) ... 是的,使用定义,选择正确的波特率,接线并准备好:-)
    • 好的,然后用英语试一试:D 到目前为止它有效:只是偏航一直在计算,即使我不改变位置。我可以测试传感器是否正在移动(后退/前进/高度)以及移动速度有多快?应该可以吧?在那种情况下,我必须定义当前评论的其他内容(?)?
    • 对。只需定义您想要的部分。如果您想要欧拉角,请添加#define OUTPUT_READABLE_EULER。你的第二个问题,尝试校准你的mpu。这是一个草图:i2cdevlib.com/forums/topic/…
    猜你喜欢
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多