Reputation: 2452
Here is my problem: I'm using android wear (sony smart watch3) accelerometer typical way:
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
senAccelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorManager.registerListener(this, senAccelerometer, SensorManager.SENSOR_DELAY_FASTEST);
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
float x;
float y;
float z;
switch (sensorEvent.sensor.getType()) {
case Sensor.TYPE_ACCELEROMETER:
Log.d("swing", "onSensorChanged:" + senAccelerometer.getVersion());
calculateSensorFrequency(System.currentTimeMillis());
x = sensorEvent.values[0];
y = sensorEvent.values[1];
z = sensorEvent.values[2];
.
.
.
break;
}
In onSensorChange
method i'm getting only +- 2g reads despite the fact that Sensor.getMaximumRange()
is giving 16g (156.96 m/s*s). Is there any way to calibrate accelerometer or is this a bug? Any help will be appreciated. Thx
P.S. I was trying to find detailed specyfication of hardware accelerometer module range in google using Sensor.getVendor
method but with no luck.
Upvotes: 1
Views: 213
Reputation: 26
The Sony Smartwatch 3 has a EM7180 Sensor Fusion Platform (http://www.emmicroelectronic.com/products/sensor-fusion-sensor-interface/sensor-fusion/em7180sfp) built in with a Bosch BMX055 (https://www.bosch-sensortec.com/bst/products/all_products/bmx055) that has an accelerometer, gyroscope and magnetometer. It has several Acceleration ranges ±2g/±4g/±8g/±16g. But mine only reads in the range +/- 2g, too.
Upvotes: 1