2016-05-16 28 views
1

這裏是我的問題:我使用的Android Wear(索尼智能watch3)加速度計典型方式:Android Wear加速度計只給+ - 2克

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方法我越來越只+ - 2克讀儘管Sensor.getMaximumRange()給出了16g(156.96 m/s * s)的事實。有沒有辦法校準加速度計或者這是一個錯誤?任何幫助將不勝感激。 Thx

P.S.我試圖在google中使用Sensor.getVendor方法找到硬件加速計模塊範圍的詳細specyfication,但沒有運氣。

回答

1

索尼Smartwatch 3擁有內置博世BMX055(https://www.bosch-sensortec.com/bst/products/all_products/bmx055)的EM7180傳感器融合平臺(http://www.emmicroelectronic.com/products/sensor-fusion-sensor-interface/sensor-fusion/em7180sfp),該傳感器融合平臺具有加速計,陀螺儀和磁力計。它有幾個加速度範圍±2g /±4g /±8g /±16g。但是我的讀數也只在±2g範圍內。

+0

這對你說的非常有幫助。我很好奇,有沒有辦法解開這些加速度範圍,例如±8g? –

+0

在Api中似乎沒有解鎖更高範圍的方法。但正如描述(http://stackoverflow.com/questions/25280924/android-accelerometer-full-range)範圍似乎是設備相關的,只能在configuration.h中的硬件抽象層中進行更改,因此您有根源於手錶。我已經使用第二款索尼智能手錶3測試了它,它具有+/- 2g的相同範圍。 –