2012-10-05 73 views
5

所以我一直在尋找大約3個小時,我還沒有拿出一個很好的答案/解決方案。Android加速計最大值

我的問題是:爲什麼我得到的最大加速度值僅爲34 m/s^2或3.5 Gs(34/9.81)。

是因爲硬件限制還是軟件限制?如果它是硬件,我知道我不能做任何事情(或者至少不容易)。如果是軟件限制,那我該如何消除這種限制,有沒有辦法做到這一點?像API或其他東西?

我會感謝任何幫助, 謝謝。

注意:我使用的是Galaxy S,如果這有所作爲。我也考慮看看這個問題,但不幫助我:What is android accelerometer min and max range

+0

你能解釋一下「限制」是什麼意思嗎?這意味着你期望獲得更高的價值。你可能想提一下你是否包含了9.8m/s^2的引力,或者你是否已經應用了高通濾波器,並且還提到了你應用於Galaxy S的動作。最後,爲什麼你認爲這個數字應該高於3.5G。不是說你對這件事是對還是錯,但你爲什麼假設有「限制」? – David

+0

有關記錄,加速計在理論上純粹基於硬件:http://developer.android.com/guide/topics/sensors/sensors_motion.html – David

+0

@大衛根據[this](https://groups.google。 com/forum /#!msg/android-kernel/2RYrDvgJDsM/- uF40t3rU0J)範圍應該更高。我不知道這是否有幫助...還有3.5 Gs的聲音很低,我知道我正在搖擺我的手機。這就是爲什麼我認爲這是我的某種限制。 – 0gravity

回答

4

看看這個: https://electronics.stackexchange.com/questions/11372/samsung-galaxy-s-accelerometer-details 的問題包括:什麼似乎是在銀河S.使用顯然有加速計數據表有三種可能的範圍+/- 2g,+/- 4g和+/- 8g。我不是電子專家,所以不會提供更多的解釋。

據developer.android.com,加速計讀數依賴於硬件的只有: developer.android.com/guide/topics/sensors/sensors_motion.html 因此,你可能必須在得到一個更好的機會在上面已經引用的Electrical Engineering stackexchange論壇上的專家回答:electronics.stackexchange.com。

祝您的項目順利!

編輯:在參考上原來的問題意見: 我看到的,因爲它說的page你參考 -

「我的理解是,Android的默認加速度計是 預定義的操作範圍爲+ -2g。我怎樣才能以編程方式 通過公共API更改此範圍?有一個getMaximumRange() 方法,但沒有對應的setMaximumRange()方法。「

您想知道是否有基於軟件的方法來更改預選範圍。再次,我會認爲Android API文檔會提到這一點。試試在electronics.stackexchange.com上詢問什麼是「動態可選範圍」,以及它們是否由物理硬件開關(或類似的東西)設置,或者它們是否可以通過編程方式更改。

第二個編輯:我讀我提到你更徹底,並注意原始提問檢查了谷歌API,並得出結論,這是不可能通過它來改變範圍的頁面:

API多申不允許改變它們。我認爲我可以在api源代碼中找到這些數據,但這並不簡單。現在我會嘗試。 - MarcoBiagi年03月13 '11在10:36

+0

+1感謝您的回答。它給了我一些想要搜索什麼的想法/見解。 – 0gravity

+0

不客氣。希望你找到解決問題的方法。 – David

2

鑑於你是從你的Galaxy S讀取最大加速度大小爲3.5克,你的Galaxy S的加速度似乎是設置有+的每個軸加速度計範圍/ -2g(即,sqrt(2.0 * 2.0 + 2.0 * 2.0 + 2.0 * 2.0)= 3.5)。作爲參考,這裏是您的銀河S,摩托G的每軸加速度範圍,和Nexus Android設備:2g的
Moto G的+/-::

Galaxy S的+/- 2克
的Nexus 1: +/- 2克
的Nexus S:+/- 2克
的Nexus 4:4克+/-
的Nexus 5:+/- 2克

的每軸加速度計範圍通常不是在一個手機的規格表中給出。因此,如果其他讀者碰巧知道他們手機的加速度計的最大範圍,請隨時將其添加到此列表中。

不幸的是,加速計Sensor.getMaximumRange()API不一致:在大多數設備上返回「零到峯值」,但某些(如Moto G)上的「峯到峯」值如tracked Android OS issue中所述。知道特定設備是否將Sensor.getMaximumRange()返回爲「零到峯值」或「峯間到峯值」的一種方法是運行免費的傳感器數據繪圖應用程序,如ftNote,並大力搖動設備以查看加速度計讀數剪輯的位置繪製的傳感器值。

+0

我有lg g3,getMaximumRange()是39,它是什麼意思,最大範圍是69G?它是真的嗎? –