summaryrefslogtreecommitdiff
path: root/peripheral/sensors/edison_arduino
diff options
context:
space:
mode:
Diffstat (limited to 'peripheral/sensors/edison_arduino')
-rw-r--r--peripheral/sensors/edison_arduino/Sensor.cpp2
-rw-r--r--peripheral/sensors/edison_arduino/Sensor.hpp5
-rw-r--r--peripheral/sensors/edison_arduino/sensors/MMA7660Accelerometer.cpp3
-rw-r--r--peripheral/sensors/edison_arduino/sensors/MPU9150Accelerometer.cpp3
4 files changed, 13 insertions, 0 deletions
diff --git a/peripheral/sensors/edison_arduino/Sensor.cpp b/peripheral/sensors/edison_arduino/Sensor.cpp
index e44ff60..8a93b81 100644
--- a/peripheral/sensors/edison_arduino/Sensor.cpp
+++ b/peripheral/sensors/edison_arduino/Sensor.cpp
@@ -21,6 +21,8 @@
/* maximum delay: 1000ms */
const int64_t kMaxDelay = 1000000000;
+/* Gravitational acceleration constant in m/s^2 */
+const float Sensor::kGravitationalAcceleration = 9.81f;
Sensor::Sensor() : acquisitionThread(nullptr), handle(-1), type(-1), delay(kMaxDelay) {}
diff --git a/peripheral/sensors/edison_arduino/Sensor.hpp b/peripheral/sensors/edison_arduino/Sensor.hpp
index a1c2663..d28a398 100644
--- a/peripheral/sensors/edison_arduino/Sensor.hpp
+++ b/peripheral/sensors/edison_arduino/Sensor.hpp
@@ -118,6 +118,11 @@ class Sensor {
*/
int64_t getDelay() { return delay; }
+ /**
+ * Gravitational acceleration constant in m/s^2
+ */
+ static const float kGravitationalAcceleration;
+
protected:
/**
diff --git a/peripheral/sensors/edison_arduino/sensors/MMA7660Accelerometer.cpp b/peripheral/sensors/edison_arduino/sensors/MMA7660Accelerometer.cpp
index c63ffaa..0947b25 100644
--- a/peripheral/sensors/edison_arduino/sensors/MMA7660Accelerometer.cpp
+++ b/peripheral/sensors/edison_arduino/sensors/MMA7660Accelerometer.cpp
@@ -45,6 +45,9 @@ MMA7660Accelerometer::~MMA7660Accelerometer() {}
int MMA7660Accelerometer::pollEvents(sensors_event_t* data, int count) {
getAcceleration(&data->acceleration.x, &data->acceleration.y, &data->acceleration.z);
+ data->acceleration.x *= Sensor::kGravitationalAcceleration;
+ data->acceleration.y *= Sensor::kGravitationalAcceleration;
+ data->acceleration.z *= Sensor::kGravitationalAcceleration;
return 1;
}
diff --git a/peripheral/sensors/edison_arduino/sensors/MPU9150Accelerometer.cpp b/peripheral/sensors/edison_arduino/sensors/MPU9150Accelerometer.cpp
index 446de3c..f8ba355 100644
--- a/peripheral/sensors/edison_arduino/sensors/MPU9150Accelerometer.cpp
+++ b/peripheral/sensors/edison_arduino/sensors/MPU9150Accelerometer.cpp
@@ -47,6 +47,9 @@ MPU9150Accelerometer::~MPU9150Accelerometer() {}
int MPU9150Accelerometer::pollEvents(sensors_event_t* data, int count) {
update();
getAccelerometer(&data->acceleration.x, &data->acceleration.y, &data->acceleration.z);
+ data->acceleration.x *= Sensor::kGravitationalAcceleration;
+ data->acceleration.y *= Sensor::kGravitationalAcceleration;
+ data->acceleration.z *= Sensor::kGravitationalAcceleration;
return 1;
}