2016-05-16 6 views
1

Вот моя проблема: Я использую Android Wear (сони умный watch3) акселерометр типичный способ:Android Wear акселерометр дает только + - 2g

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; 
} 

В onSensorChange методе я получаю только + - 2g читает несмотря на то, что Sensor.getMaximumRange() дает 16 г (156,96 м/с * с). Есть ли способ откалибровать акселерометр или это ошибка? Любая помощь будет оценена по достоинству. Thx

P.S. Я пытался найти подробную спецификацию диапазона аппаратного акселерометра в Google, используя метод Sensor.getVendor, но не повезло.

ответ

1

Sony Smartwatch 3 имеет платформу Fusion Platform EM7180 (http://www.emmicroelectronic.com/products/sensor-fusion-sensor-interface/sensor-fusion/em7180sfp), встроенную в Bosch BMX055 (https://www.bosch-sensortec.com/bst/products/all_products/bmx055) с акселерометром, гироскопом и магнитометром. Он имеет несколько диапазонов ускорения ± 2g/± 4g/± 8g/± 16g. Но мой только читается в диапазоне +/- 2g.

+0

Это очень полезно, что вы сказали. Мне любопытно, есть ли способ разблокировать эти диапазоны ускорения, чтобы включить, например, ± 8 г? –

+0

В Api, похоже, нет способа разблокировать более высокий диапазон. Но, как описано (http://stackoverflow.com/questions/25280924/android-accelerometer-full-range), диапазон, по-видимому, зависит от устройства и может быть изменен только на уровне абстракции оборудования в конфигурации.h, и поэтому у вас есть укоренить часы. Я тестировал его сейчас со вторым Sony Smartwatch 3 и имеет тот же диапазон +/- 2g. –