手機感測器

手機感測器

手機感測器是手機上通過晶片來感應的元器件,如溫度值、亮度值和壓力值等。手機中有很多感測器默默地在後台工作以支持我們前台操作更方便。

手機感測器檢測安卓手機上所有可用感應器,並通過圖像生動的展示它們是如何運作的。手機感測器也能夠識別該手機硬體支持哪些感測器,並提供對我們日常生活起著重要作用的感測工具。手機感測器只能檢測到變化。

如果屬性沒有變化,它顯示的溫度值、距離值、光和壓力的值可能不準確。

基本介紹

  • 中文名:手機感測器
  • 外文名:Android Sensor
  • 功能:溫度 亮度
  • 套用:溫度提示,自動調節亮度
工具介紹,安卓2.3支持,安卓感測器,

工具介紹

手機感測器檢測安卓手機上所有可用感應器,並通過圖像生動的展示它們是如何運作的。手機感測器也能夠識別該手機硬體支持哪些感測器,並提供對我們日常生活起著重要作用的感測工具。手機感測器只能檢測到變化。如果屬性沒有變化,它顯示的溫度值、距離值、光和壓力的值可能不準確。

安卓2.3支持

在Android2.3 gingerbread系統中,google提供了11種感測器供套用層使用。
#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//旋轉矢量

安卓感測器

加速度感測器又叫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來完成工作,電子羅盤算法一般是公司私有產權。
陀螺儀感測器叫做Gyro-sensor,返回x、y、z三軸的角加速度數據。
角加速度的單位是radians/second。
根據Nexus S手機實測:
水平順時針旋轉,Z軸為正。
水平逆時針旋轉,z軸為負。
向左旋轉,y軸為負。
向右旋轉,y軸為正。
向上旋轉,x軸為負。
向下旋轉,x軸為正。
ST的L3G系列的陀螺儀感測器比較流行,iphone4和google的nexus s中使用該種感測器。
5 光線感應感測器
光線感應感測器檢測實時的光線強度,光強單位是lux,其物理意義是照射到單位面積上的光通量。
光線感應感測器主要用於Android系統的LCD自動亮度功能。
可以根據採樣到的光強數值實時調整LCD的亮度。
壓力感測器返回當前的大氣壓強,單位是百帕斯卡hectopascal(hPa)。
溫度感測器返回當前的溫度。
接近感測器檢測物體與手機的距離,單位是厘米。
一些接近感測器只能返回遠和近兩個狀態,因此,接近感測器將最大距離返回遠狀態,小於最大距離返回近狀態。
接近感測器可用於接聽電話時自動關閉LCD螢幕以節省電量。
一些晶片集成了接近感測器和光線感測器兩者功能。
下面三個感測器是Android2.3新提出的感測器類型。
重力感測器簡稱GV-sensor,輸出重力數據。
在地球上,重力數值為9.8,單位是m/s^2。
坐標系統與加速度感測器相同。
當設備復位時,重力感測器的輸出與加速度感測器相同。
10 線性加速度感測器
線性加速度感測器簡稱LA-sensor。
線性加速度感測器是加速度感測器減去重力影響獲取的數據。
單位是m/s^2,坐標系統與加速度感測器相同。
加速度感測器、重力感測器和線性加速度感測器的計算公式:加速度 = 重力 + 線性加速度
11 旋轉矢量感測器
旋轉矢量感測器簡稱RV-sensor。
旋轉矢量代表設備的方向,是一個將坐標軸和角度混合計算得到的數據。
RV-sensor輸出三個數據:
x*sin(theta/2)
y*sin(theta/2)
z*sin(theta/2)
sin(theta/2)是RV的數量級。
RV的方向與軸旋轉的方向相同。
RV的三個數值,與cos(theta/2)組成一個四元組。
RV的數據沒有單位,使用的坐標系與加速度相同。
舉例:
sensors_event_t.data[0] = x*sin(theta/2)
sensors_event_t.data[1] = y*sin(theta/2)
sensors_event_t.data[2] = z*sin(theta/2)
sensors_event_t.data[3] = cos(theta/2)
GV、LA和RV的數值沒有物理感測器可以直接給出,
需要G-sensor、O-sensor和Gyro-sensor經過算法計算後得出。
算法一般是感測器公司的私有產權。

相關詞條

熱門詞條

聯絡我們