发布日期:2022-10-09 点击率:42
目前手机集成了多个不同用途的传感器。最近项目中需要用到加速度传感器和方向传感器,故做一下笔记。
加速度传感器,用于检测手机运动状态。
方向传感器,用于检测手机方向状态。
传感器调用方式:
1、初始化
2、注册监听
3、实现OnSensorChange方法,获取 x,y,z三轴的坐标。
4、使用完毕,记得注销
需要说明的是,不同手机的传感器灵敏度不同,而且传感器的调用是不间断的,所以使结果更准确,最好是取一段时间内的传感器变化,为适配大多数手机,需要设定一个阈值或者范围。
例如调用加速度传感器,检测手机摇一摇:
关于方向传感器坐标轴
z是指向地心的方位角,x轴是仰俯角(由静止状态开始前后反转),y轴是翻转角(由静止状态开始左右反转)。
方向传感器结合地磁传感器可以实现指南针功能。单独使用,可以检测手机的方向,例如竖屏横屏状态。
其实检测竖屏横屏有多种方式,但有些方法会存在适配问题,有些机子不管用,传感器基本都适用,灵敏度会有差异而已
现在的手机或者其他便携设备中用到了越来越多的传感器,什么加速度传感器,方向传感器、重力传感器、陀螺仪、g-sensor、o-sensor等等,这些传感器到底是干什么用的,各自有什么特点,彼此之间又有什么区分?本文就对他们进行简单的对比介绍。
1、加速度传感器
加速度传感器又叫G-sensor,获取的是x、y、z三轴的加速度数值。
该数值包含地心引力的影响,单位是m/s^2。
将手机平放在桌面上,x轴默认为0,y轴默认0,z轴默认9.81。
将手机朝下放在桌面上,z轴为-9.81。
加速度传感器可能是最为成熟的一种mems产品,市场上的加速度传感器种类很多。手机中常用的加速度传感器有BOSCH(博世)的BMA系列,AMK的897X系列,ST的LIS3X系列等。这些传感器一般提供±2G至±16G的加速度测量范围,采用I2C或SPI接口和MCU相连,数据精度小于16bit。
2、磁力传感器
磁力传感器简称为M-sensor,返回x、y、z三轴的环境磁场数据。
该数值的单位是微特斯拉(micro-Tesla),用uT表示。也可以是高斯(Gauss),1Tesla=Gauss。
硬件上一般没有独立的磁力传感器,磁力数据由电子罗盘传感器提供(E-compass)。电子罗盘传感器在提供磁力传感器数据的同时,还能提供方向传感器数据。
3、方向传感器
方向传感器简称为O-sensor,返回三轴的角度数据,方向数据的单位是角度。
如上所述,电子罗盘E-compass在获取到G-sensor的数据之后,经过计算生产O-sensor数据以及M-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个象限。
4、陀螺仪传感器
陀螺仪传感器叫做Gyro-sensor,返回x、y、z三轴的角加速度数据。
角加速度的单位是radians/second。
根据Nexus S手机实测:
水平逆时针旋转,Z轴为正。
水平逆时针旋转,z轴为负。
向左旋转,y轴为负。
向右旋转,y轴为正。
向上旋转,x轴为负。
向下旋转,x轴为正。
5、重力传感器
重力传感器简称GV-sensor,输出重力数据。
在地球上,重力数值为9.8,单位是m/s^2。
坐标系统与加速度传感器相同。
当设备复位时,重力传感器的输出与加速度传感器相同。
6、线性加速度传感器
线性加速度传感器简称LA-sensor。
线性加速度传感器是加速度传感器减去重力影响获取的数据。
单位是m/s^2,坐标系统与加速度传感器相同。
加速度传感器、重力传感器和线性加速度传感器的计算公式如下:
加速度 = 重力 + 线性加速度。
7、旋转矢量传感器
旋转矢量传感器简称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] = xsin(theta/2)
sensors_event_t.data[1] = ysin(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经过算法计算后得出。
摘要:
[问题]提供一种能够自动地判定搭载于车辆的加速度传感器的方向的,加速度传感器的安装方向判定装置和安装方向判定方法.[解决手段]该安装方向判定装置判定加速度传感器相对于车辆安装的安装方向,所述加速度传感器能够检测第一方向上的第一加速度和第二方向上的第二加速度.安装方向判定部通过将加速度传感器的实测值与判定基准数据进行比较来判定安装方向.在判定基准数据中规定了第一加速度和第二加速度的检测结果与安装方向的组合.
展开
加速度传感器是测量加速度的常用电子元器件。它可以用于检测由于坠落、倾斜、运动、定位、振动和冲击等产生的力的变化。 安装加速度传感器时,有时可能难以确定加速度传感器的正确传感轴方向,以下提示应该可以帮助您确定其轴方向。
1)从数据手册中查找感测方向
例如,ADI公司ADXL344 加速度传感器的数据手册中,通过实际元器件的引脚分配显示封装中X、Y和Z轴的感测方向。 如果您知道引脚1在哪里,便可以从数据手册中找到传感轴在传感器上的位置。
640.jpg (33.85 KB, 下载次数: 34)
下载附件
保存到相册
2018-8-30 12:04 上传
2) 用重力检查输出
通常加速度传感器在感测重力时具有输出响应,包括地球的重力。
我们可以通过检查实际芯片在不同方向受到地球重力而产生不同的输出响应,来识别加速度传感器上的每个传感轴方向。
643.jpg (26.67 KB, 下载次数: 39)
下载附件
保存到相册
2018-8-30 12:10 上传
圖片來源: AnalogDevice 的MEMS加速度传感器
下一篇: PLC、DCS、FCS三大控
上一篇: 电气控制线路图控制原