Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> Android系統的11種傳感器

Android系統的11種傳感器

編輯:Android開發教程

#define SENSOR_TYPE_ACCELEROMETER       1 

//加速度  
#define SENSOR_TYPE_MAGNETIC_FIELD      2 //磁力  
#define SENSOR_TYPE_ORIENTATION         3 //方向  
#define SENSOR_TYPE_GYROSCOPE           4 //陀螺儀  
#define SENSOR_TYPE_LIGHT               5 //光線感應  
#define SENSOR_TYPE_PRESSURE            6 //壓力  
#define SENSOR_TYPE_TEMPERATURE         7 //溫度   
#define SENSOR_TYPE_PROXIMITY           8 //接近  
#define SENSOR_TYPE_GRAVITY             9 //重力  
#define SENSOR_TYPE_LINEAR_ACCELERATION 10//線性加速度  
#define SENSOR_TYPE_ROTATION_VECTOR     11//旋轉矢量

1 加速 度傳感器

加速度傳感器又叫G-sensor,返回x、y、z三軸的加速度數值。

該數值包含地心引力 的影響,單位是m/s^2。

將手機平放在桌面上,x軸默認為0,y軸默認0,z軸默認9.81。

將手機 朝下放在桌面上,z軸為-9.81。

將手機向左傾斜,x軸為正值。

將手機向右傾斜,x軸為負值。

將手機向上傾斜,y軸為負值。

將手機向下傾斜,y軸為正值。

加速度傳感器可能是最 為成熟的一種mems產品,市場上的加速度傳感器種類很多。

手機中常用的加速度傳感器有BOSCH(博世 )的BMA系列,AMK的897X系列,ST的LIS3X系列等。

這些傳感器一般提供±2G至±16G的加速度測量范 圍,采用I2C或SPI接口和MCU相連,數據精度小於16bit。

2 磁力傳感器

磁力傳感器簡稱為M- sensor,返回x、y、z三軸的環境磁場數據。

該數值的單位是微特斯拉(micro-Tesla),用uT表示。

單位也可以是高斯(Gauss),1Tesla=10000Gauss。

硬件上一般沒有獨立的磁力傳感器,磁力 數據由電子羅盤傳感器提供(E-compass)。

電子羅盤傳感器同時提供下文的方向傳感器數據。

3 方向傳感器

方向傳感器簡稱為O-sensor,返回三軸的角度數據,方向數據的單位是角度。

為了得到精確的角度數據,E-compass需要獲取G-sensor的數據,

經過計算生產O-sensor數據 ,否則只能獲取水平方向的角度。

方向傳感器提供三個數據,分別為azimuth、pitch和roll。

azimuth:方位,返回水平時磁北極和Y軸的夾角,范圍為0°至360°。

0°=北,90°=東,180 °=南,270°=西。

pitch:x軸和水平面的夾角,范圍為-180°至180°。

當z軸向y軸轉動時, 角度為正值。

roll:y軸和水平面的夾角,由於歷史原因,范圍為-90°至90°。

當x軸向z軸移 動時,角度為正值。

電子羅盤在獲取正確的數據前需要進行校准,通常可用8字校准法。

8字 校准法要求用戶使用需要校准的設備在空中做8字晃動,

原則上盡量多的讓設備法線方向指向空間的所 有8個象限。

手機中使用的電子羅盤芯片有AKM公司的897X系列,ST公司的LSM系列以及雅馬哈公司等 等。

由於需要讀取G-sensor數據並計算出M-sensor和O-sensor數據,

因此廠商一般會提供一個 後台daemon來完成工作,電子羅盤算法一般是公司私有產權。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved