欢迎来到亿配芯城! | 免费注册
你的位置:FUJI(富士)模块全系列-亿配芯城全系列-亿配芯城 > 芯片资讯 > 一文浅谈传感器开发流程
一文浅谈传感器开发流程
发布日期:2024-11-27 06:59     点击次数:141
    传感器     传感器(英文称号:transducer/sensor)是一种检测安装,能感遭到被丈量的信息,并能将感遭到的信息,按一定规律变换成为电信号或其他所需方式的信息输出,以满足信息的传输、处置、存储、显现、记载和控制等请求。     传感器的特性包括:微型化、数字化、智能化、多功用化、系统化、网络化。它是完成自动检测和自动控制的首要环节。传感器的存在和开展,让物体有了触觉、味觉和嗅觉等感官,让物体渐渐变得活了起来。通常依据其根本感知功用分为热敏元件、光敏元件、气敏元件、力敏元件、磁敏元件、湿敏元件、声敏元件、放射线敏感元件、色敏元件和味敏元件等十大类。     主要作用     人们为了从外界获取信息,必需借助于觉得器官。     而单靠人们本身的觉得器官,在研讨自然现象和规律以及消费活动中它们的功用就远远不够了。为顺应这种状况,就需求传感器。因而能够说,传感器是人类五官的延长,又称之为电五官。     新技术反动的到来,世界开端进入信息时期。在应用信息的过程中,首先要处理的就是要获取精确牢靠的信息,而传感器是获取自然和消费范畴中信息的主要途径与手腕。     在现代工业消费特别是自动化消费过程中,要用各种传感器来监视和控制消费过程中的各个参数,使设备工作在正常状态或最佳状态,并使产品到达最好的质量。因而能够说,没有众多的优秀的传感器,现代化消费也就失去了根底。     在根底学科研讨中,传感器更具有突出的位置。现代科学技术的开展,进入了许多新范畴:例如在宏观上要察看上千光年的茫茫宇宙,微观上要察看小到fm的粒子世界,纵向上要察看长达数十万年的天体演化,短到 s的霎时反响。此外,还呈现了对深化物质认识、开辟新能源、新资料等具有重要作用的各种极端技术研讨,如超高温、超低温、超高压、超高真空、超强磁场、超弱磁场等等。显然,要获取大量人类感官无法直接获取的信息,没有相顺应的传感器是不可能的。许多根底科学研讨的障碍,首先就在于对象信息的获取存在艰难,而一些新机理和高灵活度的检测传感器的呈现,常常会招致该范畴内的打破。一些传感器的开展,常常是一些边缘学科开发的先驱。     传感器早已浸透到诸如工业消费、宇宙开发、海洋探测、环境维护、资源调查、医学诊断、生物工程、以至文物维护等等极端之泛的范畴。能够毫不夸大地说,从茫茫的太空,到浩瀚的海洋,以致各种复杂的工程系统,简直每一个现代化项目,都离不开各种各样的传感器。     由此可见,传感器技术在开展经济、推进社会进步方面的重要作用,是非常明显的。世界各国都非常注重这一范畴的开展。置信不久的未来,传感器技术将会呈现一个飞跃,到达与其重要位置相称的新程度。     主要特性     传感器的特性包括:微型化、数字化、智能化、多功用化、系统化、网络化,它不只促进了传统产业的改造和更新换代,而且还可能树立新型工业,从而成为21世纪新的经济增长点。微型化是树立在微电子机械系统(MEMS)技术根底上的,已胜利应用在硅器件上做成硅压力传感器。     传感器的组成     传感器普通由敏感元件、转换元件、变换电路和辅助电源四局部组成。     敏感元件直接感受被丈量,并输出与被丈量有肯定关系的物理量信号;转换元件将敏感元件输出的物理量信号转换为电信号;变换电路担任对转换元件输出的电信号停止放大调制;转换元件和变换电路普通还需求辅助电源供电。     主要功用     常将传感器的功用与人类5大觉得器官相比较:     光敏传感器——视觉     声敏传感器——听觉     气敏传感器——嗅觉     化学传感器——味觉     压敏、温敏、     流体传感器——触觉     敏感元件的分类:     物理类,基于力、热、光、电、磁和声等物理效应。     化学类,基于化学反响的原理。     生物类,基于酶、抗体、和激素等分子辨认功用。     通常据其根本感知功用可分为热敏元件、光敏元件、气敏元件、力敏元件、磁敏元件、湿敏元件、声敏元件、放射线敏感元件、色敏元件和味敏元件等十大类(还有人曾将敏感元件分46类)。 浅谈传感器开发流程

  理解安卓传感器主要分为三种

  动作传感器:加速传感器,重力传感器,陀螺仪传感器,旋转向量传感器

  环境传感器,光线传感器,温度传感器(听说还有大气压传感器)

  位置传感器:方向传感器,磁场传感器

  其中这些传感器又分为硬件传感器和软件传感器!所谓硬件传感器就是地道基于手机硬件获取的数据

  而软件传感器并不是真实存在,而是基于硬件传感器基于一系列算法产生的伪传感器,比方方向传感器就是基于间隔传感器和磁场传感器经过这两个传感器一系列算法得出!

  在安卓开发中,曾经提供了传感器的API>就是

  1 SensorManager类,该类是用来注册,监听,销毁监听器的办法,以及获取传感器数量品种精度等办法

  2 Sensor类是提供了传感器的信息比方传感器的类型,版本,制造商等等比方常见的SensorType类型

  序号传感器Sensor类中定义的TYPE常量

  1加速度传感器TYPE_ACCELEROMETER

  2温度传感器TYPE_AMBIENT_TEMPERATURE

  3陀螺仪传感器TYPE_GYROSCOPE

  4光线传感器TYPE_LIGHT

  5磁场传感器TYPE_MAGNETIC_FIELD

  6压力传感器TYPE_PRESSURE

  7临近传感器TYPE_PROXIMITY

  8湿度传感器TYPE_RELATIVE_HUMIDITY

  9方向传感器TYPE_ORIENTATION

  10重力传感器TYPE_GRAVITY

  11线性加速传感器TYPE_LINEAR_ACCELERATION

  12旋转向量传感器TYPE_ROTATION_VECTOR

  3 SensorEventListener接口,主要就是传感器开发的监听回调,传感器的数值发作变化时就会调用这个办法

  4 SensorEvent类是回调监听的参数,主要封装了传感器的监听数值(以数组方式存在)

  这个就是传感器开发会用到的主要API,话说查了不少材料。..

  待会后面的一些内容是我这次项目开发用不到的,但是为了思索以后会遇上,我就一并记载在这里了,这样之后在停止传感器开发,我不用再去查材料了,直接看我这篇帖子就包括了大局部的材料

  然后是我们要肯定传感器的开发流程

  1创立传感器管理类,

  mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

  2选择项目开发中会遇到的传感器(最好打印出列表看手机支持那些传感器,主要用来看手机支持那些传感器,实践开发不需求这行代码)

  List《Sensor》 sensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);//主要用来看看手机支持哪些传感器,能够不写

  3注册你要监听的传感器监听器,完成监听办法

  我的项目经过我的测试实践用到的是方向传感器

  //方向传感器

  mSensorManager.registerListener(this,

  mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),

  SensorManager.SENSOR_DELAY_UI);

  这里要留意了,要为了用户担任,注册了就要反注册,否则传感器可是耗电大户,我们普通在onResume注册监听,在onPause停止解绑

  mSensorManager.unregisterListener(this);

  这里引见下监听器的三个参数

  registerListener(参数一,参数二,参数三)

  参数一就是监听回调对象,完成这个接口,编译器会自动复写这两个办法,我们下面再引见这两个办法

  参数二你需求监听的传感器类型

  参数三 传感器获取数值的形式,你能够了解成传感器监听四周变化块慢,这个参数是一个常量,普通有四种

  SENSOR_DELAY_FASTEST 最快,耗电大户 ,监听的越快耗电量越大,这种形式普通不倡议运用,由于监听四周大量的数据,算法假如不好将会影响游戏逻辑以及UI性能

  SENSOR_DELAY_GAME 普通用来开发游戏,用于实行性较高的游戏比方一些赛车游戏,游戏开发倡议用这个形式

  SENSOR_DELAY_NORMAL 默许的平率,关于普通的益智类游戏运用,比方依据重力来调整小球进洞的小游戏,假如这个形式应用在赛车游戏上,采样率太低会招致跳帧

  SENSOR_DELAY_UI 依据传感器更新UI,我们普通依据传感器的值变化用来绘制我们相应的UI,延迟一点反而好不用平凡的绘制UI形成性能糜费

  4 开端思索传感器采集的数据以及算法逻辑了,以上三步全是模板代码,第四步才是传感器开发的中心!

  首先要晓得不同的传感器返回的采样数据是不同的,如下

  4-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。

  4-2 磁力传感器

  磁力传感器简称为M-sensor,返回x、y、z三轴的环境磁场数据。

  该数值的单位是微特斯拉(micro-Tesla),用uT表示。

  单位也能够是高斯(Gauss),1Tesla=10000Gauss。

  硬件上普通没有独立的磁力传感器,磁力数据由电子罗盘传感器提供(E-compass)。

  电子罗盘传感器同时提供下文的方向传感器数据。

  4-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-4 陀螺仪传感器

  陀螺仪传感器叫做Gyro-sensor,返回x、y、z三轴的角加速度数据。

  角加速度的单位是radians/second。

  依据Nexus S手机实测:

  程度逆时针旋转,Z轴为正。

  程度逆时针旋转,z轴为负。

  向左旋转,y轴为负。

  向右旋转,y轴为正。

  向上旋转,x轴为负。

  向下旋转,x轴为正。

  ST的L3G系列的陀螺仪传感器比拟盛行,iphone4和google的nexus s中运用该种传感器。

  4-5 光线感应传感器

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

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

  能够依据采样到的光强数值实时调整LCD的亮度。

  4-6 压力传感器

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

  4-7 温度传感器

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

  4-8 接近传感器

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

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

  因而,接近传感器将最大间隔返回远状态,小于最大间隔返回近状态。

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

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

  下面三个传感器是Android2新提出的传感器类型,目前还不太分明有哪些应用程序运用。

  4-9 重力传感器

  重力传感器简称GV-sensor,输出重力数据。

  在地球上,重力数值为9.8,单位是m/s^2。

  坐标系统与加速度传感器相同。

  当设备复位时,重力传感器的输出与加速度传感器相同。

  4-10 线性加速度传感器

  线性加速度传感器简称LA-sensor。

  线性加速度传感器是加速度传感器减去重力影响获取的数据。

  单位是m/s^2,坐标系统与加速度传感器相同。

  加速度传感器、重力传感器和线性加速度传感器的计算公式如下:

  加速度 = 重力 + 线性加速度

  4-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经过算法计算后得出。

  算法普通是传感器公司的私有产权。

  看到了吧,不同的传感器,返回的数值单位不只不一样,就连返回值的数量也不同,所以业务逻辑算法差距都是十分大的,既然说到了X,Y,Z的正负值,就不得不说手机的坐标系了

  X Y Z分别对应values[0]到[2](监听回调返回的数组)

  这里对传感器举下例子

  加速度感应检测——Accelerometer

  Accelerometer Sensor丈量的是一切施加在设备上的力所产生的加速度的负值(包括重力加速度)。加速度所运用的单位是m/sec^2,数值是加速度的负值。

  SensorEvent.values[0]:加速度在X轴的负值

  SensorEvent.values[1]:加速度在Y轴的负值

  SensorEvent.values[2]:加速度在Z轴的负值

  例如:

  当手机Z轴朝上平放在桌面上,并且从左到右推进手机,此时X轴上的加速度是正数。

  当手机Z轴朝上静止放在桌面上,此时Z轴的加速度是+9.81m/sec^2。

  当手机从空中自在落体,此时加速度是0

  当手机向上以Am/sec^2的加速度向空中抛出,此时加速度是A+9.81m/sec^2

  重力加速度感应检测——Gravity

  重力加速度,其单位是m/sec^2,其坐标系与Accelerometer运用的分歧。当手机静止时,gravity的值和Accelerometer的值是分歧的。

  线性加速度感应检测——Linear-Acceleration

  Accelerometer、Gravity和Linear-Acceleration三者的关系如下公式:

  accelerometer = gravity + linear-acceleration

  地磁场感应检测——Magnetic-field

  地磁场的单位是micro-Tesla(uT),检测的是X、Y、Z轴上的绝对地磁场。

  陀螺仪感应检测——Gyroscope

  陀螺仪的单位是弧度/秒,丈量的是物体分别盘绕X,Y,Z轴旋转的角速度。它的坐标系与加速度传感器的坐标系相同。逆时针方向旋转的角度正的。也就是说,假如设备逆时针旋转,察看者向X,Y,Z轴的正方向看去,就报告设备是正转的。请留意,这是规范的正旋转的数学定义。

  光线感应检测——Light

  values[0]:表示环境光照的程度,单位是SI lux。

  位置迫近感应检测——Proximity

  values[0]:迫近的间隔,单位是厘米(cm)。有一些传感器只能支持近和远两种状态,这种状况下,传感器必需报告它在远状态下的maximum_range值和在近状态下的小值。

  旋转矢量感应检测——Rotation Vector

  旋转向量是用来表示设备的方向,它是由角度和轴组成,就是设备盘绕x,y,z轴之一旋转θ角度。旋转向量的三个要素是,这样旋转向量的大小等于sin(θ/2),旋转向量的方向等于旋转轴的方向。

  values[0]: x*sin(θ/2)

  values[1]: y*sin(θ/2)

  values[2]: z*sin(θ/2)

  values[3]: cos(θ/2) (optional: only if value.length = 4)

  方向感应检测——Orientation

  其单位是角度

  values[0]: Azimuth(方位),地磁北方向与y轴的角度,盘绕z轴旋转(0到359)。0=North, 90=East, 180=South, 270=West

  values[1]: Pitch(俯仰),盘绕X轴旋转(-180 to 180), 当Z轴向Y轴运动时是正值

  values[2]: Roll(滚),盘绕Y轴旋转(-90 to 90),当X轴向Z轴运动时是正值



  • 上一篇:史上最大芯片出炉,专为AI设计
  • 下一篇:没有了