运行 MPU6050-tockn 的 getAllData 程序 , 可以获得下面的数据
acc3轴 ----原始数据
gyro3轴 ----原始数据
accAngle2轴 ---推演数据
accAngleX ,accAngleY ,accAngleZ(沿Z轴转动数据不变,因此数据为空 )
gyroAngle3轴 ----推演数据
angle3轴 ----最终数据
数据间的关系是
----原始数据----推演数据----最终数据 ?????????????
-------------------------------------------------------------------------------------
初始位置读数
accX : -0.01 accY : 0.06 accZ : 1.10
gyroX : -2.29 gyroY : -1.57 gyroZ : -4.78
accAngleX : 3.25 accAngleY : 0.31
gyroAngleX : -226.51 gyroAngleY : -141.27 gyroAngleZ : -453.26
angleX : 3.00 angleY : 0.21 angleZ : -453.26
--------------------------------------------------------------------------------------
x轴旋转90度 位置读数
accX : -0.03 accY : 1.00 accZ : 0.14
gyroX : -2.79 gyroY : -1.28 gyroZ : -4.52
accAngleX : 80.35 accAngleY : 1.45
gyroAngleX : -232.49 gyroAngleY : -208.42 gyroAngleZ : -642.36
angleX : 79.72 angleY : 1.05 angleZ : -642.36
-------------------------------------------------------------------------------------
#include <MPU6050_tockn.h>
#include <Wire.h>
MPU6050 mpu6050(Wire);
long timer = 0;
void setup() {
Serial.begin(9600);
Wire.begin();
mpu6050.begin();
mpu6050.calcGyroOffsets(true);
}
void loop() {
mpu6050.update();
if(millis() - timer > 1000){
Serial.print("temp : ");Serial.println(mpu6050.getTemp());
Serial.print("accX : ");Serial.print(mpu6050.getAccX());
Serial.print("\taccY : ");Serial.print(mpu6050.getAccY());
Serial.print("\taccZ : ");Serial.println(mpu6050.getAccZ());
Serial.print("gyroX : ");Serial.print(mpu6050.getGyroX());
Serial.print("\tgyroY : ");Serial.print(mpu6050.getGyroY());
Serial.print("\tgyroZ : ");Serial.println(mpu6050.getGyroZ());
Serial.print("accAngleX : ");Serial.print(mpu6050.getAccAngleX());
Serial.print("\taccAngleY : ");Serial.println(mpu6050.getAccAngleY());
Serial.print("gyroAngleX : ");Serial.print(mpu6050.getGyroAngleX());
Serial.print("\tgyroAngleY : ");Serial.print(mpu6050.getGyroAngleY());
Serial.print("\tgyroAngleZ : ");Serial.println(mpu6050.getGyroAngleZ());
Serial.print("angleX : ");Serial.print(mpu6050.getAngleX());
Serial.print("\tangleY : ");Serial.print(mpu6050.getAngleY());
Serial.print("\tangleZ : ");Serial.println(mpu6050.getAngleZ());
timer = millis();
}
}