手机传感器及交互方式总结

2024-03-27 14:32

本文主要是介绍手机传感器及交互方式总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

手机传感器及交互方式总结

 

手机传感器分类

Android提供了11种传感器供应用层使用:

#defineSENSOR_TYPE_ACCELEROMETER       1 //加速度

#defineSENSOR_TYPE_MAGNETIC_FIELD      2 //磁力

#define SENSOR_TYPE_ORIENTATION        3 //方向

#defineSENSOR_TYPE_GYROSCOPE          4 //陀螺仪

#defineSENSOR_TYPE_LIGHT              5 //光线感应

#defineSENSOR_TYPE_PRESSURE           6 //压力

#defineSENSOR_TYPE_TEMPERATURE         7 //温度

#defineSENSOR_TYPE_PROXIMITY          8 //接近

#defineSENSOR_TYPE_GRAVITY            9 //重力

#define SENSOR_TYPE_LINEAR_ACCELERATION 10//线性加速度

#defineSENSOR_TYPE_ROTATION_VECTOR     11//旋转矢量

 

4.0版本以后又新增加了湿度。

 

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中使用该种传感器。

5 光线感应传感器

光线感应传感器检测实时的光线强度,光强单位是lux,其物理意义是照射到单位面积上的光通量。

光线感应传感器主要用于Android系统的LCD自动亮度功能。

可以根据采样到的光强数值实时调整LCD的亮度。

6 压力传感器

压力传感器返回当前的压强,单位是百帕斯卡hectopascal(hPa)。

7 温度传感器

温度传感器返回当前的温度。

8 接近传感器

接近传感器检测物体与手机的距离,单位是厘米。

一些接近传感器只能返回远和近两个状态,

因此,接近传感器将最大距离返回远状态,小于最大距离返回近状态。

接近传感器可用于接听电话时自动关闭LCD屏幕以节省电量。

一些芯片集成了接近传感器和光线传感器两者功能。

下面三个传感器是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经过算法计算后得出。

算法一般是传感器公司的私有产权。

 

12 温度传感器

         可以用来辅助天气类应用,使得这些应用不再完全依赖于远程的温度或气压信息等


扩展阅读:

传感器的概念

   对于传感器,学理工科的都不陌生。国家标准GB7665-87对传感器下的定义是:能感受规定的被测量并按照一定的规律转换成可用信号的器件或装置,通常由敏感元件和转换元件组成。像我们的楼道的声控灯、数码相机等都有传感器,甚至手机本身就是个将声音转化为数字信号的在转化回来的传感器,其的范围太广泛了,。而小编在这里归纳的则一些将手机的所在状态或者所处的环境,转化成改变手机状态的器件(当然在这里小编就不提几乎每个手机的都有的如摄像头等传感器)。

传感器的作用与意义
  现在的智能手机比起之前的智能手机时代不仅仅是手机性能硬件上的提高,除了CPU那类的配置之外,新一代的智能手机在体验感和用户者得互动性上也更加的高。目前智能手机应用软件生态系统不断扩展,传感器这类与用户互动必备的东西功不可没。传感器让用户对应用软体更加着迷。而作为新一代智能手机的标杆——苹果,在这方面也是引领者的角色。(想想当初诺基亚还没大幕触控的时候,wm系统的手机还在用手指戳的时代,iphone一代那能放大缩小图片的电容屏让很多人都流了口水.对,小编没写错,电容屏也是一种传感器)
  事实上,目前智能手机应用软件生态系统不断扩展。传感器除了能增加体现感和用户互动这些理念性的东西外。游戏上传感器的应用也成为新的发展方向。就是体感装置在游戏设备的崛起一样,传感器在手机和平板上的发展会越来越快。现在在游戏、健康照护、体能训练以及许多新应用都要用到传感器。
  由于智慧手机中加入了各种传感器,使手机也变得越来越智慧化。加速度传感器回应使用者的互动方式,使得传统平淡无奇的输入作业,转变成类似游戏的新奇体验,进而提高使用者使用智慧手机的意愿。过去智慧手机比较的重点在于是否拥有加速度传感器,目前变成比较谁的手机具备了三轴陀螺仪,未来则有更多的新的传感器的加入。



  
下面列举下大家比较关注也是常见的几种传感器


重力感应器

  手机重力感应技术:利用压电效应实现,简单来说是测量内部一片重物(重物和压电片做成一体)重力正交两个方向的分力大小,来判定水平方向。通过对力敏感的传感器,感受手机在变换姿势时,重心的变化,使手机光标变化位置从而实现选择的功能。
  手机重力感应指的是手机内置重力摇杆芯片,支持摇晃切换所需的界面和功能,甩歌甩屏,翻转静音,甩动切换视频等,是一种非常具有使用乐趣的功能。
  重力感应器说的简单点就是,你本来把手机拿在手里是竖着的,你将它转90度,横过来,它的页面就跟随你的重心自动反应过来,也就是说页面也转了90度,极具人性化。现在基本上智能手机都有内置重力感应器,甚至有些非智能手机也有内置。其常见的应用有玩平衡球了,还有横屏浏览网页、看小说之类的了。

 

加速度传感器
  加速度传感器是一种能够测量加速力的电子设备。加速力就是当物体在加速过程中作用在物体上的力,就好比地球引力,也就是重力。加速力可以是个常量,比如g,也可以是变量。因此其的范围比重力感应器要大,但是一般在手机被提到的加速度感应器时,其实就是指重力感应器,因此两者可以看做是等价的。
方向感应器


 手机方向传感器是指,安装在手机上用以检测手机本身处于何种方向状态的部件,而不是通常理解的指南针的功能。
  手机方向检测功能可以检测手机处于正竖、倒竖、左横、右横,仰、俯状态。具有方向检测功能的手机具有使用更方便、更具人性化的特点。例如,手机旋转后,屏幕图像可以自动跟着旋转并切换长宽比例,文字或菜单也可以同时旋转,使你阅读方便;mp3时。可能会有人说:这个跟那个重力感应器是一样的?
这个两者是不一样的,方向感应器或者叫应用角速度传感器比较合适,一般手机的上的方向感应器是感应水平面上的方位角、旋转角和倾斜角的。这个如果你可能觉得有点理论的话,举个例子吧。有方向感应器的能很好的玩都市赛车游戏。而只有重力感应器也能玩,但是恩,很令人纠结。


三轴陀螺仪
  三轴陀螺仪:即同时测定6个方向的位置,移动轨迹,加速。单轴的只能测量一个方向的量,也就是一个系统需要三个陀螺仪,而3轴的一个就能替代三个单轴的。3轴的体积小、重量轻、结构简单、可靠性好,是激光陀螺的发展趋势。对于激光陀螺则更多应用于军事方面,我们暂且不做讨论。不过我们可以看出iPhone 4应用的三轴陀螺仪是较为先进的。
如果说,重力感应器所能测的是直线的,方面感应器所测的是平面得,那么三轴陀螺仪所测的方向和位置则是立体的。特别是玩一些像彩虹六号,那种第一人称射击游戏,你会发现三轴陀螺仪的效果是很明显的。


距离传感器

  距离传感器是利用测时间来实现测距离的原理,以检测物体的距离的一种传感器。工作原理:通过发射特别短的光脉冲,并测量此光脉冲从发射到被物体反射回来的时间,通过测时间来计算与物体之间的距离。这个传感器在手机上的作用是当我们打电话时,手机屏幕会自动熄灭,当你脸离开,屏幕灯会自动开启,并且自动解锁。这个对于待机手机较短的智能手机来说是相当实用的。现在很多智能手机都装备的这个传感器。


光线传感器(感应器)

  光线传感器,也就是感光器,是能够根据周围光亮明暗程度来调节屏幕明暗的装置。就是在光线强的地方手机会自动关掉键盘灯,并且稍微加强屏幕亮度,达到节电并更好观看屏幕的效果,在光线暗的地方自动打开键盘灯。可以到工具设置中调节关掉。这个传感器也主要起到节省手机电力的作用,毕竟现在的智能手机的待机时间都很令人头痛,能节省就节省吧。

 

电子罗盘,也叫方位感应器(传感器)
电子罗盘,也叫数字指南针,是利用地磁场来定北极的一种方法。古代称为罗经,现代利用先进加工工艺生产的磁阻传感器为罗盘的数字化提供了有力的帮助。现在一般有用磁阻传感器和磁通门加工而成的电子罗盘。这个就是电子版指南针,配合GPS和地图时非常好用,不会整的晕头转向。
当然除了这些较为常见的传感器之外,在女性手机上可以见到紫外线传感器,在军用手机上可以看到气压和温度传感器等等。

还有一些介绍:

人机完美互动 盘点手机传感器的那些事儿


http://tech.hexun.com/2012-01-09/137061708.html

人机交互基石 手机里的传感器实例解析

http://digi.it.sohu.com/20131011/n387942992.shtml


这篇关于手机传感器及交互方式总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/852415

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

二分最大匹配总结

HDU 2444  黑白染色 ,二分图判定 const int maxn = 208 ;vector<int> g[maxn] ;int n ;bool vis[maxn] ;int match[maxn] ;;int color[maxn] ;int setcolor(int u , int c){color[u] = c ;for(vector<int>::iter

整数Hash散列总结

方法:    step1  :线性探测  step2 散列   当 h(k)位置已经存储有元素的时候,依次探查(h(k)+i) mod S, i=1,2,3…,直到找到空的存储单元为止。其中,S为 数组长度。 HDU 1496   a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 。 x在 [-100,100] 解的个数  const int MaxN = 3000

状态dp总结

zoj 3631  N 个数中选若干数和(只能选一次)<=M 的最大值 const int Max_N = 38 ;int a[1<<16] , b[1<<16] , x[Max_N] , e[Max_N] ;void GetNum(int g[] , int n , int s[] , int &m){ int i , j , t ;m = 0 ;for(i = 0 ;

go基础知识归纳总结

无缓冲的 channel 和有缓冲的 channel 的区别? 在 Go 语言中,channel 是用来在 goroutines 之间传递数据的主要机制。它们有两种类型:无缓冲的 channel 和有缓冲的 channel。 无缓冲的 channel 行为:无缓冲的 channel 是一种同步的通信方式,发送和接收必须同时发生。如果一个 goroutine 试图通过无缓冲 channel

9.8javaweb项目总结

1.主界面用户信息显示 登录成功后,将用户信息存储在记录在 localStorage中,然后进入界面之前通过js来渲染主界面 存储用户信息 将用户信息渲染在主界面上,并且头像设置跳转,到个人资料界面 这里数据库中还没有设置相关信息 2.模糊查找 检测输入框是否有变更,有的话调用方法,进行查找 发送检测请求,然后接收的时候设置最多显示四个类似的搜索结果

cell phone teardown 手机拆卸

tweezer 镊子 screwdriver 螺丝刀 opening tool 开口工具 repair 修理 battery 电池 rear panel 后盖 front and rear cameras 前后摄像头 volume button board 音量键线路板 headphone jack 耳机孔 a cracked screen 破裂屏 otherwise non-functiona

java面试常见问题之Hibernate总结

1  Hibernate的检索方式 Ø  导航对象图检索(根据已经加载的对象,导航到其他对象。) Ø  OID检索(按照对象的OID来检索对象。) Ø  HQL检索(使用面向对象的HQL查询语言。) Ø  QBC检索(使用QBC(Qurey By Criteria)API来检索对象。 QBC/QBE离线/在线) Ø  本地SQL检索(使用本地数据库的SQL查询语句。) 包括Hibern