Cómo leer un giroscopio / acelerómetro

9

Hace poco compré este panel de separación MPU6050 GY-521 . Lo probé con mi Arduino Mega utilizando este croquis de Arduino proporcionado por arduino.cc oficial.
(MPU-6050 Hoja de datos , Página InvenSence (productor) )

Hombre, da esta salida rara !!!

InvenSense MPU-6050
June 2012
WHO_AM_I : 68, error = 0
PWR_MGMT_2 : 0, error = 0

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 1944, 368, 15608
temperature: 30.576 degrees Celsius
gyro x,y,z : -34, -204, -247, 

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 1952, 364, 15304
temperature: 30.435 degrees Celsius
gyro x,y,z : -38, -216, -274, 

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 1864, 388, 15356
temperature: 30.482 degrees Celsius
gyro x,y,z : -34, -233, -278, 

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 1888, 324, 15260
temperature: 30.576 degrees Celsius
gyro x,y,z : -14, -220, -261, 

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 1904, 392, 15316
temperature: 30.624 degrees Celsius
gyro x,y,z : -34, -241, -238, 

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 1856, 308, 15604
temperature: 30.435 degrees Celsius
gyro x,y,z : -33, -252, -235, 

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 1892, 444, 15528
temperature: 30.624 degrees Celsius
gyro x,y,z : 20, -236, -251, 

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 1924, 356, 15520
temperature: 30.576 degrees Celsius
gyro x,y,z : -19, -224, -251, 

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 1844, 280, 15732
temperature: 30.529 degrees Celsius
gyro x,y,z : -1, -240, -249, 

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 2004, 372, 15396
temperature: 30.671 degrees Celsius
gyro x,y,z : -20, -252, -255, 

(Esto es solo una parte de esto, le da a este rey de salida continuamente). Lo sé seguro, solo la lectura de temperatura es significativa. ¿Pero cuáles son esos valores dados para las lecturas de aceleración y giro?

Bien, dice que esos son valores en bruto. Si es así, entonces, ¿cómo puedo convertirlos en valores significativos? Con la esperanza de que pueda ser útil (como muchos sugirieron), también me gusta saber cómo usar la llamada biblioteca Jeff Rowberg .

Espero que haya alguien con experiencia con el módulo MPU-6050. Solo dame un punto para empezar. No tengo idea de cómo usar el módulo ... :(

Cualquier ayuda es muy bien apreciada. Gracias!

    
pregunta Anubis

2 respuestas

6
La lectura del acelerómetro parece tener sentido. La hoja de datos , página 13 indica 4 sensibilidades diferentes:

2 g  
4 g  
8 g  
16 g  

con resp. Factores de escala de sensibilidad:

16 384 counts/g  
8 192 counts/g  
4 096 counts/g  
2 048 counts/g  

Desde la lectura Z supongo que tiene la escala de 2 g seleccionada, luego 15 608 es 0,95 g, que es lo que puede esperar de una lectura del eje Z cuando mantiene el sensor más o menos horizontal. Las lecturas X e Y probablemente también se deben a la gravitación cuando no se mantiene la pieza perfectamente horizontal. Y también tendrás un error en la lectura.



Similar para el giroscopio . Con 131 conteos por grado / s, puede tener este tipo de lectura si tiene la parte en sus manos.

    
respondido por el stevenvh
10

Un giroscopio proporciona los valores de velocidad angular (grados / seg.) en los tres ejes respectivos (ejes de Yaw, Pitch y Roll, respectivamente).

Pero cualquier valor en bruto dado primero por estos sensores se debe convertir en aceleración sensible o en valores de velocidad angular mediante escalado.

La hoja de datos de InvenSense de MPU-6050 dice que tenemos que usar diferentes factores de escala para diferentes rangos de valores de giro. Explicaré cómo usar estos factores de escala al final.

Angular Velocity Limit  |   Sensitivity
----------------------------------------
250º/s                  |    131
500º/s                  |    65.5 
1000º/s                 |    32.8 
2000º/s                 |    16.4

De manera similar, para el Acelerómetro (que da la aceleración de los ejes x, y, z, incluida la gravedad), la unidad utilizada es g (\ $ \ large 9.81 \ frac {m} {\ text {s} ^ 2} \ $).

Factores de escala para los valores del acelerómetro:

Acceleration Limit  |   Sensitivity
----------------------------------------
2g                  |    16,384
4g                  |    8,192  
8g                  |    4,096 
16g                 |    2,048 

Convertir los datos en bruto:

\ $ \ Large \ text {required_value} = \ frac {\ text {raw_value}} {\ text {proper_sensitivity}} \ $

Por ejemplo, en los primeros datos, tienes

accel x,y,z: 1944, 368, 15608
gyro x,y,z : -34, -204, -247

La aceleración parece estar en el límite de 2g. Entonces, factor de escala = 16384

implica \ $ \ Large ax = \ frac {1944} {16384} g \ $

Gyro parece estar en el límite de \ $ \ Large \ frac {250º} {\ text {s}} \ $. Entonces, factor de escala o sensibilidad = 131

implica \ $ \ Large \ text {gyro_value} = \ frac {-34} {131} \ frac {grados} {sec} \ $

Espero que ayude. :)

    
respondido por el sasebot

Lea otras preguntas en las etiquetas