使用加速度计与Arduino UNO和MPU6050

时间:2015-03-10 11:08:55

标签: arduino accelerometer

我的MPU6050和我的Arduino UNO有问题......我无法获得机器人的动态位置。

我尝试使用UMP6050_DMP6示例代码将加速度计的原始值转换为现实世界中的位置。

以下是我使用的源代码:https://github.com/jrowberg/i2cdevlib/blob/master/Arduino/MPU6050/Examples/MPU6050_DMP6/MPU6050_DMP6.ino

这是我改变的代码的一部分:

#ifdef OUTPUT_READABLE_WORLDACCEL


    dureeBoucle = millis() - tempsAncienneBoucle;
    // display initial world-frame acceleration, adjusted to remove gravity
    // and rotated based on known orientation from quaternion
    mpu.dmpGetQuaternion(&q, fifoBuffer);
    mpu.dmpGetAccel(&aa, fifoBuffer);
    mpu.dmpGetGravity(&gravity, &q);
    mpu.dmpGetLinearAccel(&aaReal, &aa, &gravity);
    mpu.dmpGetLinearAccelInWorld(&aaWorld, &aaReal, &q);            

    vx = vx + aaWorld.x * dureeBoucle/1000.0;
    vy = vy + aaWorld.y * dureeBoucle/1000.0;
    vz = vz + aaWorld.z * dureeBoucle/1000.0;

    px = px + vx * dureeBoucle/1000.0;
    py = py + vy * dureeBoucle/1000.0;
    pz = pz + vz * dureeBoucle/1000.0;

    Serial.print("pworld\t");
    Serial.print(px);
    Serial.print("\t");
    Serial.print(py);
    Serial.print("\t");
    Serial.println(pz);



    tempsAncienneBoucle = millis();
#endif

我试图整合加速度来获取机器人的位置,但我只得到错误的值:

pworld  -0.02   0.10    -0.26
pworld  -0.08   0.33    -0.86
pworld  -0.16   0.69    -1.77
pworld  -0.30   1.25    -3.25
pworld  -0.44   1.86    -4.84
pworld  -0.61   2.58    -6.73
pworld  -0.83   3.49    -9.15
pworld  -1.06   4.45    -11.69
pworld  -1.34   5.62    -14.80
pworld  -1.64   6.92    -18.29
pworld  -1.95   8.24    -21.81
pworld  -2.31   9.79    -25.99
pworld  -2.71   11.46   -30.53
pworld  -3.09   13.12   -35.03
pworld  -3.54   15.04   -40.27
pworld  -4.02   17.08   -45.88
pworld  -4.48   19.07   -51.36
pworld  -4.97   21.17   -57.15
pworld  -5.48   23.37   -63.25
pworld  -6.02   25.66   -69.65
pworld  -6.63   28.28   -76.95
pworld  -7.21   30.79   -84.00
pworld  -7.82   33.40   -91.36
pworld  -8.51   36.34   -99.69
pworld  -9.17   39.16   -107.69
pworld  -9.91   42.32   -116.72

...

我在很多教程/网站上搜索了很长时间,但在大多数情况下,它们都用于陀螺仪...... 我很乐意得到你的帮助。

0 个答案:

没有答案