【1】14种Android Sensor
2015-11-23 15:52
381 查看
1、Android sensor
Android4.0系统内置对传感器的支持达13种,它们分别是:(1)加速度传感器
(accelerometer)、(2)磁力传感器(magnetic field)、(3)方向传感器(orientation)、(4)陀螺仪(gyroscope)、(5)环境光照传感器(light)、(6)压力传感器(pressure)、 (7)温度传感器(temperature)和(8)距离传感器(proximity) 、(9)重力传感器、(10)线性加速度、(11)旋转矢量传感器、(12)湿度传感器(13)心率传感器、(14)指纹传感器、(15)电容触摸传感器
(16)声波传感器
accelerometer英[əkˌseləˈrɒmɪtə(r)]美[əkˌseləˈrɑ:mɪtə(r)]
magnetic
field 英[mæɡˈnetik fi:ld] 美[mæɡˈnɛtɪk fild]
gyroscope 英[ˈdʒaɪrəskəʊp] 美[ˈdʒaɪrəskoʊp]
proximity 英[prɒkˈsɪməti] 美[prɑ:kˈsɪməti]
vector rotation 英[ˈvektə rəʊˈteɪʃən] 美[ˈvɛktɚ roˈteʃən]
我们依次看看这十一种传感器
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来完成工作,电子罗盘算法一般是公司私有产权。
4 陀螺仪传感器
陀螺仪传感器叫做Gyro-sensor,返回x、y、z三轴的角加速度数据。
角加速度的单位是radians/second。
根据Nexus S手机实测:
水平逆时针旋转,Z轴为正。
水平逆时针旋转,z轴为负。
向左旋转,y轴为负。
向右旋转,y轴为正。
向上旋转,x轴为负。
向下旋转,x轴为正。
ST的L3G系列的陀螺仪传感器比较流行,iphone4和google的nexus s中使用该种传感器。
陀螺仪能提供精度更高的角度信息。借助陀螺仪,Android的Photo Sphere相机功能可以判断手机在哪个方向上旋转了多少度
5 光线感应传感器
光线感应传感器检测实时的光线强度,光强单位是lux,其物理意义是照射到单位面积上的光通量。
光线感应传感器主要用于Android系统的LCD自动亮度功能。
可以根据采样到的光强数值实时调整LCD的亮度。
机的光线传感器能检测环境的亮度。软件可以利用光线传感器的数据自动调节显示屏亮度——当环境亮度高时,显示屏亮度会相应调高;当环境亮度低时,显示屏亮度也会相应调低。三星高端Galaxy型号手机能利用先进的光线传感器,独立地测量白、红、绿和蓝光的亮度。Adapt Display功能利用这些数据优化显示屏的画面质量。
6 压力传感器
压力传感器返回当前的压强,单位是百帕斯卡hectopascal(hPa)。
部分高端智能手机配置有气压传感器,能测量气压。气压传感器的数据能用来判断手机所处位置的海拔高度,有助于提高GPS(全球定位系统)的精度。
7 温度传感器
温度传感器返回当前的温度。
测量气温的温度传感器。但是,许多其他智能手机都配置有温度传感器,有的还不止一个。区别就在于它们的目的是监测手机内部以及电池的温度。如果发现某一部件温度过高,手机就会关机,防止手机损坏。Galaxy S4气温传感器提供的数据被S Health应用用来判断用户所处的环境是否舒适。
8 接近传感器
接近传感器检测物体与手机的距离,单位是厘米。
一些接近传感器只能返回远和近两个状态,
因此,接近传感器将最大距离返回远状态,小于最大距离返回近状态。
接近传感器可用于接听电话时自动关闭LCD屏幕以节省电量。
一些芯片集成了接近传感器和光线传感器两者功能。
距离传感器由一个红外LED灯和红外辐射光线探测器构成。距离传感器位于手机的听筒附近,手机靠近耳朵时,系统借助距离传感器知道用户在通电话,然后会关闭显示屏,防止用户因误操作影响通话。距离传感器的工作原理是,红外LED灯发出的不可见红外光由附近的物体反射后,被红外辐射光线探测器探测到
下面三个传感器是Android2新提出的传感器类型,目前还不太清楚有哪些应用程序使用。
9 重力传感器
重力传感器简称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的数据没有单位,使用的坐标系与加速度相同。
举例:
GV、LA和RV的数值没有物理传感器可以直接给出,
需要G-sensor、O-sensor和Gyro-sensor经过算法计算后得出。
算法一般是传感器公司的私有产权。
(15)电容触摸传感器
(16)强化声音效果,使用两组麦克风与相关的运算来达到降噪效果。
参考头文件
code:android \hardware\libhardware\include\sensor.h
Android4.0系统内置对传感器的支持达13种,它们分别是:(1)加速度传感器
(accelerometer)、(2)磁力传感器(magnetic field)、(3)方向传感器(orientation)、(4)陀螺仪(gyroscope)、(5)环境光照传感器(light)、(6)压力传感器(pressure)、 (7)温度传感器(temperature)和(8)距离传感器(proximity) 、(9)重力传感器、(10)线性加速度、(11)旋转矢量传感器、(12)湿度传感器(13)心率传感器、(14)指纹传感器、(15)电容触摸传感器
(16)声波传感器
accelerometer英[əkˌseləˈrɒmɪtə(r)]美[əkˌseləˈrɑ:mɪtə(r)]
magnetic
field 英[mæɡˈnetik fi:ld] 美[mæɡˈnɛtɪk fild]
orientation 英[ˌɔ:riənˈteɪʃn] 美[ˌɔriɛnˈteʃən, -ən-, ˌor-] |
proximity 英[prɒkˈsɪməti] 美[prɑ:kˈsɪməti]
vector rotation 英[ˈvektə rəʊˈteɪʃən] 美[ˈvɛktɚ roˈteʃən]
#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来完成工作,电子罗盘算法一般是公司私有产权。
4 陀螺仪传感器
陀螺仪传感器叫做Gyro-sensor,返回x、y、z三轴的角加速度数据。
角加速度的单位是radians/second。
根据Nexus S手机实测:
水平逆时针旋转,Z轴为正。
水平逆时针旋转,z轴为负。
向左旋转,y轴为负。
向右旋转,y轴为正。
向上旋转,x轴为负。
向下旋转,x轴为正。
ST的L3G系列的陀螺仪传感器比较流行,iphone4和google的nexus s中使用该种传感器。
陀螺仪能提供精度更高的角度信息。借助陀螺仪,Android的Photo Sphere相机功能可以判断手机在哪个方向上旋转了多少度
5 光线感应传感器
光线感应传感器检测实时的光线强度,光强单位是lux,其物理意义是照射到单位面积上的光通量。
光线感应传感器主要用于Android系统的LCD自动亮度功能。
可以根据采样到的光强数值实时调整LCD的亮度。
机的光线传感器能检测环境的亮度。软件可以利用光线传感器的数据自动调节显示屏亮度——当环境亮度高时,显示屏亮度会相应调高;当环境亮度低时,显示屏亮度也会相应调低。三星高端Galaxy型号手机能利用先进的光线传感器,独立地测量白、红、绿和蓝光的亮度。Adapt Display功能利用这些数据优化显示屏的画面质量。
6 压力传感器
压力传感器返回当前的压强,单位是百帕斯卡hectopascal(hPa)。
部分高端智能手机配置有气压传感器,能测量气压。气压传感器的数据能用来判断手机所处位置的海拔高度,有助于提高GPS(全球定位系统)的精度。
7 温度传感器
温度传感器返回当前的温度。
测量气温的温度传感器。但是,许多其他智能手机都配置有温度传感器,有的还不止一个。区别就在于它们的目的是监测手机内部以及电池的温度。如果发现某一部件温度过高,手机就会关机,防止手机损坏。Galaxy S4气温传感器提供的数据被S Health应用用来判断用户所处的环境是否舒适。
8 接近传感器
接近传感器检测物体与手机的距离,单位是厘米。
一些接近传感器只能返回远和近两个状态,
因此,接近传感器将最大距离返回远状态,小于最大距离返回近状态。
接近传感器可用于接听电话时自动关闭LCD屏幕以节省电量。
一些芯片集成了接近传感器和光线传感器两者功能。
距离传感器由一个红外LED灯和红外辐射光线探测器构成。距离传感器位于手机的听筒附近,手机靠近耳朵时,系统借助距离传感器知道用户在通电话,然后会关闭显示屏,防止用户因误操作影响通话。距离传感器的工作原理是,红外LED灯发出的不可见红外光由附近的物体反射后,被红外辐射光线探测器探测到
下面三个传感器是Android2新提出的传感器类型,目前还不太清楚有哪些应用程序使用。
9 重力传感器
重力传感器简称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经过算法计算后得出。
算法一般是传感器公司的私有产权。
(15)电容触摸传感器
(16)强化声音效果,使用两组麦克风与相关的运算来达到降噪效果。
参考头文件
code:android \hardware\libhardware\include\sensor.h
相关文章推荐
- 中科院开源协会镜像站 Android SDK镜像测试发布
- android 通过getDimension,getDimensionPixelOffset和getDimensionPixelSize获取dimens.xml文件里面的变量值
- Android开发进阶系列(三) 系统参数的获取和Broadcast
- Android 使用存放在存assets文件夹下的SQLite数据库
- Android Studio 快捷键
- Android libs中jar源码查看
- Android ListView+ScrollView显示和触摸冲突解决
- 获取android系统的一些功能
- Android高效加载大图、多图解决方案_LruCache,有效避免程序OOM
- android 获取屏幕的宽和高
- Android编程之菜单的实现方法实例详解
- Android中Bitmap和Drawable详解
- 【Android笔记】各个屏幕的logo尺寸要求
- Android学习----发行版本
- android 下拉菜单Spinner
- Android 实现可视化动态音频柱状图
- Android 实时录音和回放,边录音边播放 (KTV回音效果)
- Android Java和JavaScript交互
- 39.Android BroadcastReceiver
- android studio打包apk两个bug解决办法