Skocz do zawartości

Kalibracja mpu9250 - jak skalibrować akcelerometr i żyroskop?


Lunatyczka123

Pomocna odpowiedź

Dzień dobry wszystkim!
Mam pewien problem w kalibracją MPU9250 a dokładniej akcelerometru i żyroskopu. Może macie jakieś doświadczenie w tym temacie? do tej pory udalo mi się skalibrować poprawnie jedynie magnetometr, aby tego dokonać trzebabyło kręcić ósemki. Czy do kalibracji akcelerometru i żyroskopu też trzeba wykonywać jakieś specjalne, tajemnicze ruchy? Próbowałam układać go zgodnie z osiami i odczytywać wartość, ale nic z tego. W załączniku dołączam bibliotekę z której korzytam. A tutaj mój program w którym próbuje skalibrować akcelerometr, dla każdej z osi zwaraca jedynie 0:1: 

  // setting SRD to 19 for a 50 Hz update rate
IMU.readSensor();

 float ax = IMU.getAccelX_mss();
 float ay = IMU.getAccelY_mss();
 float az = IMU.getAccelZ_mss();

  Serial.print(ax);
  Serial.print(":");
  Serial.print(ay);
  Serial.print(":");
  Serial.println(az);

   IMU.calibrateAccel();
    Serial.println("x -" );
    Serial.print(IMU.getAccelBiasX_mss(),6);
    Serial.print(":");
    Serial.println(IMU.getAccelScaleFactorX(),6);
    delay (10000);
    Serial.println("x + ");
    Serial.print(IMU.getAccelBiasX_mss(),6);
    Serial.print(":");
    Serial.println(IMU.getAccelScaleFactorX(),6);
    delay (10000);
    Serial.println("y - ");
    Serial.print(IMU.getAccelBiasY_mss(),6);
    Serial.print(":");
    Serial.println(IMU.getAccelScaleFactorY(),6);
    delay (10000);
    Serial.println("y + ");
    Serial.print(IMU.getAccelBiasY_mss(),6);
    Serial.print(":");
    Serial.println(IMU.getAccelScaleFactorY(),6);
    delay (10000);
    Serial.println("z - ");
    Serial.print(IMU.getAccelBiasZ_mss(),6);
    Serial.print(":");
    Serial.println(IMU.getAccelScaleFactorZ(),6);
    delay (10000);
    Serial.println("z + ");
    Serial.print(IMU.getAccelBiasZ_mss(),6);
    Serial.print(":");
    Serial.println(IMU.getAccelScaleFactorZ(),6);
    delay (10000);
//    void setAccelCalX(float bias,float scaleFactor);
//    void setAccelCalY(float bias,float scaleFactor);
//    void setAccelCalZ(float bias,float scaleFactor);
 
 
}

void loop() {
  // put your main code here, to run repeatedly:

}

Udanego dnia Wam życzę 🙂 

MPU9250-master.zip

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.