diff options
Diffstat (limited to 'src/sensor.hpp')
-rw-r--r-- | src/sensor.hpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/sensor.hpp b/src/sensor.hpp index 7ba01bf..3fbc544 100644 --- a/src/sensor.hpp +++ b/src/sensor.hpp @@ -19,6 +19,27 @@ #define RAW_TO_DPS_FACTOR (1.0 / 131.0) #define RAW_TO_G_FACTOR (1.0 / 16384.0) +// Automatic calibration precision +#define ACCEL_CAL_X_MAX 0.002 +#define ACCEL_CAL_X_MIN -0.002 + +#define ACCEL_CAL_Y_MAX 0.002 +#define ACCEL_CAL_Y_MIN -0.002 + +#define ACCEL_CAL_Z_MAX 0.002 +#define ACCEL_CAL_Z_MIN -0.002 + +#define GYRO_CAL_X_MAX 0.2 +#define GYRO_CAL_X_MIN -0.2 + +#define GYRO_CAL_Y_MAX 0.02 +#define GYRO_CAL_Y_MIN -0.02 + +#define GYRO_CAL_Z_MAX 0.08 +#define GYRO_CAL_Z_MIN -0.08 + +#define CALIBRATION_TIMEOUT 120000 // Milliseconds + class Sensor { public: @@ -114,6 +135,11 @@ public: float getAccelY(); /** + * Returns the current Z axis acceleration in g:s (g-force). + */ + float getAccelZ(); + + /** * Returns the current X angle. */ float getAngleX(); @@ -139,6 +165,11 @@ public: float getGyroY(); /** + * Returns the current Z axis in degrees/s. + */ + float getGyroZ(); + + /** * Returns the current pitch angle. */ float getPitch(); @@ -174,6 +205,16 @@ public: */ int16_t getStatus(); + /** + * Automatically calibrates the sensor. + * + * @returns Whether or not the calibration succeeded. + * Will return false if it times out. + */ + bool autoCalibrate(); + + bool is_calibrated; + // Accelerometer calibration values float accel_cal_x; float accel_cal_y; |