为什么一些IEPE传感器指定“激励电压”( 二 )


如何在android的驱动程序中对加速度传感器的数据进行方向和坐标的转一部智能手机或便携设备应具有Wi-Fi 和互联网功能,能够运行应用软件等诸多特征,而且一定会具有内置传感器 。高端智能手机可能集成接近传感器,环境光传感器,3
轴加速度计,以及磁力计等多种传感器 。Android 2.3
添加了一些支持多种新型传感器的API,包括陀螺仪、旋转向量、线性加速度、重力和气压传感器等 。应用软件可以使用这些新型传感器,将它们组合起来,就可以实现高精确度的高级运动检测功能 。
3 轴加速度计或低g 值传感器是Android API
支持的传感器之一,具有特定的坐标系统,可以给应用程序提供标准的接口数据 。坐标空间的定义与手机屏幕的默认方向有关,如图1所示 。

图
1. 3 轴加速度计的Android 坐标系统
在Android 坐标系统中,坐标原点位于屏幕的左下角,X 轴水平指向右侧,Y 轴垂直指向顶部,Z
轴指向屏幕前方 。在该系统中,屏幕后方的坐标具有负的Z 轴值 。Android 加速度计数据定义为:
Sensor.TYPE_ACCELEROMETER
所有数值都采用SI
标准单位(m/s2),测量手机的加速度值,并减去重力加速度分量 。
values[0]:x 轴上的加速度值减去Gx
values[1]:y
轴上的加速度值减去Gy
values[2]:z 轴上的加速度值减去Gz
例如,当设备平放在桌上并推着其左侧向右移动时,x
轴加速度值为正 。当设备平放在桌上时,加速度值为+9.81,这是用设备的加速度值 (0 m/s2) 减去重力加速度值 (-9.81 m/s2)得到的 。
当设备平放在桌上放,并以加速度A m/s2 朝天空的方向推动时,加速度值等于A+9.81,这是用设备加速度值(+A
m/s2)减去重力加速度值(-9.81 m/s2)得到的 。
表 1
列出了与设备的各个位置相对应的传感器的加速度值读数 。用户可以用下表检查加速度计的方向与系统坐标是否一致 。
通过加速度传感器读取3 轴加速度值时,需要假设传感器的3
轴方向与系统坐标是一致的 。但是在实际的产品中,可能会使用不同的传感器芯片,或者采用不同的安装方向,因此数据方向也会不同 。图2 所示的是飞思卡尔MMA8452Q
3 轴加速度传感器的方向定义 。
在图 2 中,我们可以看到当安装芯片时,必须让引脚1 处于右下角的位置(PD),并安装在PCB 的前方,这样才能与Android
坐标系统的默认位置相符 。这样安装后,用户可确定数据方向与系统坐标定义是一致的 。在任何其他情形下,数据都无法与系统定义保持完全一致,所以需要更改数据方向和坐标 。在某些情况下,X
和Y 轴必须交换,或者既要改变方向,也要交换X-Y 轴 。
判断是否需要改变方向或交换X-Y 轴的方法如下所述:
1.
将设备放置在朝上(UP)的位置,如表1 中所示 。
2. 从传感器中读取3 轴的数据 。如果Y 轴上的数据为 ±1 g
(±9.81m/s2),其他两个轴上的数据大约为0,则不需要交换X-Y 轴 。否则,需要交换X 和Y 轴,请转至步骤3 。
2.1.
在该位置上,如果Y 轴上读取的数据为+1 g (+9.81m/s2),则Y 轴的方向不需要改变,如果数据为负,则Y 轴的方向需要改变 。
2.2.
将设备放置在朝左(LEFT)的位置,如表1 中所示 。X 轴上读取的数据应为±1g (±9.81m/s2),其他两个轴上的数据应大约为0 。如果X
轴上的数据为正,则其方向不需要改变;否则X 轴的方向需要改变 。然后,执行第4 步判断Z 轴的方向 。
3.
设备仍然放置在朝上(UP)的位置,并从传感器中读取3 个轴的数据 。此时X 轴上的数据应为 ±1 g
(±9.81m/s2),其他两个轴上的数据大约为0,需要X-Y 交换 。
3.1. 在该位置上,如果X 轴的数据读取为+1 g
(+9.81m/s2),则X 轴的方向不需要改变;否则需要改变 。
3.2. 将设备放置在向左(LEFT)位置上,如表1 中所示 。Y
轴上读取的数据应为±1g (±9.81m/s2),其他两个轴上的数据应大约为0 。如果Y 轴上的数据为正,则其方向不需要改变;否则需要改变 。然后执行第4 步判断Z
轴的方向 。
4. 将设备放置在正面朝上(FRONT-UP)的位置,并从传感器中读取3 轴数据 。如果 Z轴上的数据为+1 g
(+9.81m/s2),其他两个轴上的数据大约为0,则Z 轴方向无需改变;如果Z 轴数据为-1 g (-9.81m/s2),则Z 轴方向需要改变 。
在 Android 系统中,传感器数据由内核空间中的Linux 驱动读取,然后由HAL 层驱动发送至API 。分层结构如图3
所示 。因此,传感器数据可以在Linux 驱动层或在HAL 层上进行转换 。
【为什么一些IEPE传感器指定“激励电压”】