Go Down

Topic: MPU6050 - Calcolo angoli (Read 133 times) previous topic - next topic

Gabibbo1994

Salve,
scrivo qui per avere delucidazioni sull'uso del sensore MPU6050. Ho scaricato la libreria MPU6050.h da questo sito:

http://www.giuseppecaccavale.it/arduino/roll-pitch-e-yaw-con-mpu6050-arduino/

che rimanda a questa cartella DropBox

https://www.dropbox.com/s/hnstxefc7ul5796/MPU6050.zip?dl=0

Il mio obbiettivo è misurare degli angoli di rotazione. Ho aperto il seguente esempio della libreria

Code: [Select]



#include <Wire.h>
#include <MPU6050.h>

MPU6050 mpu;

// Timers
unsigned long timer = 0;
float timeStep = 0.01;

// Pitch, Roll and Yaw values
float pitch = 0;
float roll = 0;
float yaw = 0;

void setup()
{
  Serial.begin(115200);

  // Initialize MPU6050
  while(!mpu.begin(MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G))
  {
    Serial.println("Could not find a valid MPU6050 sensor, check wiring!");
    delay(500);
  }
 
  // Calibrate gyroscope. The calibration must be at rest.
  // If you don't want calibrate, comment this line.
  mpu.calibrateGyro();

  // Set threshold sensivty. Default 3.
  // If you don't want use threshold, comment this line or set 0.
  mpu.setThreshold(0);
}

void loop()
{
  timer = millis();

  // Read normalized values
  Vector norm = mpu.readNormalizeGyro();

  // Calculate Pitch, Roll and Yaw
  pitch = pitch + norm.YAxis * timeStep;
  roll = roll + norm.XAxis * timeStep;
  yaw = yaw + norm.ZAxis * timeStep;

  // Output raw
  Serial.print(" Pitch = ");
  Serial.print(pitch);
  Serial.print(" Roll = ");
  Serial.print(roll); 
  Serial.print(" Yaw = ");
  Serial.println(yaw);

  // Wait to full timeStep period
  Serial.print(" ");
  Serial.print((millis() - timer));
  Serial.print(" ");
 
  delay((timeStep*1000) - (millis() - timer));
}



Tutto funziona correttamente. Il mio dubbio era: per calcolare l'angolo viene moltiplicato il valore della velocità restituito dal sensore, in gradi al secondo, per un tempo anch'esso in secondi, il che permette di ottenere i gradi. Ma questo tempo per cui moltiplico la variabile di velocità, quanto deve valere? è per caso il tempo che impiega il sensore a rispondere?

Grazie a tutti!

gpb01

#1
May 25, 2018, 01:32 pm Last Edit: May 25, 2018, 01:33 pm by gpb01
In conformità al REGOLAMENTO della sezione Italiana del Forum, punto 13, il cross-posting è proibito (anche tra lingue diverse) e tu hai già posto la stessa domanda QUI.

Questo tuo thread viene pertanto chiuso e poi cancellato. Prosegui nell'altro thread che hai aperto. Grazie.

Guglielmo
Search is Your friend ... or I am Your enemy !

Go Up