Skip to content

Commit e1f2aaa

Browse files
committed
Added gravity accuracy tests
1 parent 1c1d069 commit e1f2aaa

File tree

4 files changed

+50
-22
lines changed

4 files changed

+50
-22
lines changed

examples/Example23-Gravity/Example23-Gravity.ino

+4
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,17 @@ void loop() {
6464
float gravityX = myIMU.getGravityX();
6565
float gravityY = myIMU.getGravityY();
6666
float gravityZ = myIMU.getGravityZ();
67+
float gravityAccuracy = myIMU.getGravityAccuracy();
6768

6869
Serial.print(gravityX, 2);
6970
Serial.print(F(","));
7071
Serial.print(gravityY, 2);
7172
Serial.print(F(","));
7273
Serial.print(gravityZ, 2);
7374
Serial.print(F(","));
75+
Serial.print(gravityAccuracy, 2);
76+
Serial.print(F(","));
77+
7478

7579
Serial.println();
7680
}

keywords.txt

+7
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ enableARVRStabilizedRotationVector KEYWORD2
3939
enableARVRStabilizedGameRotationVector KEYWORD2
4040
enableAccelerometer KEYWORD2
4141
enableGyro KEYWORD2
42+
enableGravity KEYWORD2
4243
enableMagnetometer KEYWORD2
4344
enableTapDetector KEYWORD2
4445
enableStepCounter KEYWORD2
@@ -75,6 +76,12 @@ getGyroY KEYWORD2
7576
getGyroZ KEYWORD2
7677
getGyroAccuracy KEYWORD2
7778

79+
getGravity KEYWORD2
80+
getGravityX KEYWORD2
81+
getGravityY KEYWORD2
82+
getGravityZ KEYWORD2
83+
getGravityAccuracy KEYWORD2
84+
7885
getFastGyro KEYWORD2
7986
getFastGyroX KEYWORD2
8087
getFastGyroY KEYWORD2

src/SparkFun_BNO080_Arduino_Library.cpp

+36-21
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,7 @@ uint16_t BNO080::parseInputReport(void)
403403
}
404404
else if(shtpData[5] == SENSOR_REPORTID_GRAVITY)
405405
{
406+
gravityAccuracy = status;
406407
gravityX = data1;
407408
gravityY = data2;
408409
gravityZ = data3;
@@ -669,27 +670,6 @@ void BNO080::getGyro(float &x, float &y, float &z, uint8_t &accuracy)
669670
accuracy = gyroAccuracy;
670671
}
671672

672-
//Return the gravity component
673-
float BNO080::getGravityX()
674-
{
675-
float x = qToFloat(gravityX, gravity_Q1);
676-
return x;
677-
}
678-
679-
//Return the gravity component
680-
float BNO080::getGravityY()
681-
{
682-
float y = qToFloat(gravityY, gravity_Q1);
683-
return y;
684-
}
685-
686-
//Return the gravity component
687-
float BNO080::getGravityZ()
688-
{
689-
float z = qToFloat(gravityZ, gravity_Q1);
690-
return z;
691-
}
692-
693673
//Return the gyro component
694674
float BNO080::getGyroX()
695675
{
@@ -717,6 +697,41 @@ uint8_t BNO080::getGyroAccuracy()
717697
return (gyroAccuracy);
718698
}
719699

700+
//Gets the full gravity vector
701+
//x,y,z output floats
702+
void BNO080::getGravity(float &x, float &y, float &z, uint8_t &accuracy)
703+
{
704+
x = qToFloat(gravityX, gravity_Q1);
705+
y = qToFloat(gravityX, gravity_Q1);
706+
z = qToFloat(gravityX, gravity_Q1);
707+
accuracy = gravityAccuracy;
708+
}
709+
710+
float BNO080::getGravityX()
711+
{
712+
float x = qToFloat(gravityX, gravity_Q1);
713+
return x;
714+
}
715+
716+
//Return the gravity component
717+
float BNO080::getGravityY()
718+
{
719+
float y = qToFloat(gravityY, gravity_Q1);
720+
return y;
721+
}
722+
723+
//Return the gravity component
724+
float BNO080::getGravityZ()
725+
{
726+
float z = qToFloat(gravityZ, gravity_Q1);
727+
return z;
728+
}
729+
730+
uint8_t BNO080::getGravityAccuracy()
731+
{
732+
return (gravityAccuracy);
733+
}
734+
720735
//Gets the full mag vector
721736
//x,y,z output floats
722737
void BNO080::getMag(float &x, float &y, float &z, uint8_t &accuracy)

src/SparkFun_BNO080_Arduino_Library.h

+3-1
Original file line numberDiff line numberDiff line change
@@ -209,9 +209,11 @@ class BNO080
209209
float getMagZ();
210210
uint8_t getMagAccuracy();
211211

212+
void getGravity(float &x, float &y, float &z, uint8_t &accuracy);
212213
float getGravityX();
213214
float getGravityY();
214215
float getGravityZ();
216+
uint8_t getGravityAccuracy();
215217

216218
void calibrateAccelerometer();
217219
void calibrateGyro();
@@ -291,7 +293,7 @@ class BNO080
291293
uint16_t rawMagX, rawMagY, rawMagZ, magAccuracy;
292294
uint16_t rawQuatI, rawQuatJ, rawQuatK, rawQuatReal, rawQuatRadianAccuracy, quatAccuracy;
293295
uint16_t rawFastGyroX, rawFastGyroY, rawFastGyroZ;
294-
uint16_t gravityX, gravityY, gravityZ;
296+
uint16_t gravityX, gravityY, gravityZ, gravityAccuracy;
295297
uint8_t tapDetector;
296298
uint16_t stepCount;
297299
uint32_t timeStamp;

0 commit comments

Comments
 (0)