2010-12-05 225 views
1

我有一個關於傳感器的基本問題:Android傳感器

磁性傳感器是否返回讀數w.r.t手機的初始方向或w.r.t世界座標?

加速度計怎麼樣?他們是否返回先前讀數的值,或者每個值是相對於世界座標系的獨立加速度?

我知道陀螺儀相對於手機的初始方向返回讀數。那麼,我該如何將來自陀螺儀的偏航,俯仰和滾轉讀數轉換爲智能手機的磁性傳感器的方位角,俯仰和滾動讀數(我正在使用HTC英雄)

謝謝!

+0

當你說最初的手機方向,這那會是什麼?手機啓動時的方向?當他第一次開機時?每次開機?當你第一次開始使用傳感器? 如果它是後者之一,那麼你可以很容易地檢查它,只需製作一個顯示音調的測試儀,然後用你的設備進行測試:將我放在桌子上,引導它,看看應用程序是否顯示0,0,然後移動它,所以它不會是0,0,重新復位和檢查... – codeScriber 2010-12-05 19:17:33

+0

我的意思是當應用程序啓動。每當我用方向傳感器開始感應時,它會返回相同的數值,所以我猜想它的絕對讀數爲 – Imelza 2010-12-06 06:37:42

回答

0

Android傳感器(upto FroYo)爲應用程序提供「原始」數據。
涉及「烹飪」(即處理)的最低限度。

指南針設備分別提供絕對的加速度數據。
陀螺儀提供相對角速度。

陀螺儀不提供任何特定狀態/位置的相關數據。
您需要了解的是陀螺儀數據是角速度。
角速度很簡單,手機旋轉速度有多快(以度/秒爲單位)。
所以一旦你保持它,陀螺儀說(0,0,0)&
隨着你旋轉,你會得到多快旋轉。
這樣繼續下去,直到你再次將其保持爲
當陀螺儀讀數再次變爲(0,0,0)時。

理論上陀螺儀可用於「校準」指南針。
但是這樣做需要您進行大量的實驗。
擺弄的理想場所是傳感器-HAL。

注意:即使只需要指南針數據,您也需要開啓所有傳感器h/w。正如你將交叉引用
陀螺儀/加速度數據。這將意味着更大的功耗&
電池壽命極差。所有傳感器連續開機可以在4-5小時內將標準Android手機的電池耗盡。

您可以閱讀更多Android Sensors here

0

如上所述,陀螺儀測量角速度。 返回的第三個值(值[2])是關於z軸的角速度。您可以將此值與磁力計的初始值一起使用至 計算當前的航向:Theta(i + 1)= Theta(i)+ Wgyro * deltaT

您可以從'方向'測量值[0]) 該測量僅取決於磁力計。(您可以將磁鐵或第二部手機靠近智能手機並觀看輸出發瘋)

'方向'的第二個和第三個值取決於 加速度計的讀數。由於加速度計測量重力,就可以在Y軸上的加速度計讀數和X計算 的俯仰和滾動角

希望這有助於

阿里爾