MPU9250

Тема в разделе "Arduino & Shields", создана пользователем Vsilevas42, 14 сен 2019.

  1. Vsilevas42

    Vsilevas42 Нуб

    Кароч, вот етот код должон выдавать углы в градусах, но почему-то он етого не делает:
    Код (C++):
    #include <MPU9250.h>
    MPU9250 IMU(Wire, 0x68);
    float gx;
    float gy;
    float gz;
    float itogX;
    float itogY;
    float itogZ;
    int timer;
    int timer2;
    void setup() {
      int status;
      status = IMU.begin();
      Serial.begin(9600);
      Serial.println(status);
      status = IMU.calibrateGyro();
    }
    void loop() {
      timer2 = millis();
      IMU.readSensor();
      gx = IMU.getGyroX_rads ();
      gy = IMU.getGyroY_rads ();
      gz = IMU.getGyroZ_rads ();
      delay(2);
      timer = millis() - timer2;
      itogX = gx*timer/1000*180/3.14 + itogX ;
      itogY = gy*timer/1000*180/3.14 + itogY ;
      itogZ = gz*timer/1000*180/3.14 + itogZ ;
      Serial.print("x:");
      Serial.print(itogX,9);
      Serial.print(" ");
      Serial.print("y:");
      Serial.print(itogY,9);
      Serial.print(" ");
      Serial.print("z:");
      Serial.print(itogZ,9);
      Serial.println(" ");
      }
     
  2. NikitOS

    NikitOS Король шутов Администратор

    А где етот код взят, и что он делает?
     
  3. Vsilevas42

    Vsilevas42 Нуб

    Написан мной, должон читать данные с MPU 9250 и преобразовывать их в градусы, но в результате выводит что-то не особо вразумительное
     
  4. NikitOS

    NikitOS Король шутов Администратор

    А показать нельзя?
     
  5. Vsilevas42

    Vsilevas42 Нуб

    Состояние покоя:
    x:-0.000053288 y:0.002831685 z:0.001671403
    Повернул на 90 градусов:
    x:0.180954380 y:-5.645452499 z:0.513578510
     
  6. b707

    b707 Гуру

    в формуле как минимум скобок не хватает, должно быть
    itogX = gx*(timer/1000)*(180/3.14) + itogX ;
    - и это нефига не то же самое, что без скобок

    Это еще далеко не все, есть и другие ошибки - например формула очень пприблизительная, будет все округлять до секунд. Переменная таймера не той размерности и тд...
     
  7. Vsilevas42

    Vsilevas42 Нуб

    Спасибо, учту