关于android各种sensor的思考(Accelerometer,Magnetometer,Gy

书到用时方恨少,事非经过不知难。这篇文章主要讲述关于android各种sensor的思考(Accelerometer,Magnetometer,Gy相关的知识,希望能为你提供帮助。
关于android各种sensor的思考(Accelerometer,Magnetometer,Gyroscope)

  1. 芯片选型主要考虑方面
key-parameter:
1)Power performance 功耗,不仅仅是芯片本身的功耗(这个一般很小),更大的功耗是这个driver和其daemon(algorithm library)的算法复杂度问题,越复杂,越需要大量的MIPS(兆指令每秒),cpu频率要求越高,cpu功耗越高。
2)Physical size 芯片尺寸
3)Accuracy准确度
4)Resolution- and Noise-handling分辨率(精度),抗各种干扰能力
5)Range 量程
6)Sampling rate 采样率,决定了输出数据的频率(ODR output data rate)。有些应用需要高的数据输出率。Android的CDD也有此要求。 但输出率越高,cpu处理的数据越多,功耗越大。
  1. 高通sensor框架
关于android各种sensor的思考(Accelerometer,Magnetometer,Gy

文章图片

  1. Sensor的calibration问题
所谓的校准,其实就是调整可以修改的参数,使得sensor的各个坐标的输出值(多个采样平均)达到目标值,此时的参数记录下来,作为校准值。
例如Accelerometer校准,就是水平放置手机,然后逐步调整bias(设定步幅),使得输出的多次采样平均在x=0,y=0,z=9.8左右,左右的误差有一个接受的范围。
Proximity校准,则是在手机p sensor上方特定高度有个挡板,然后调整p sensor的红外发光强度(按照一定步幅),调整接收的threshold,使得刚好探测到挡板的临界值。类似的过程。
  1. compass测试用例:
使用snaptic.compass_v1.1.apk软件,利用它的标记双红线做标记,手机水平旋转compass 180度,看指针偏差多少度,转360度,再看指针偏差多少度。
compass软件打开,放一个金属块在compass芯片上面,旁边,然后拿开,看compass可否回复(自动校准回来,校准速度)。硬币粘在那,然后校准好,看compass能否正确,看它抗磁场扭曲的干扰性。
强磁铁,看compass抗干扰性,拿开后可否恢复。
手机绕x轴,或者y轴,转一定角度时(即上下翻转一点或者左右翻转一点时),指针应该方向不变,如果变化,说明acc的补偿没有给mag的fusion库,或者mag的fusion库有问题。
抗RF干扰。例如打电话对compass的影响,是否能恢复。
1).测试抗干扰性,能否通过校准补偿,恒定干扰磁场例如喇叭的磁铁。硬磁场。
2).射频干扰问题,GSM、CDMA等射频。变化的电场引起变化磁场)(另外是软磁干扰问题,例如硬币等金属块把各种磁场扭曲了。)
3). 抗饱和值问题.
对于android的指南针compass sensor厂家处理:
通过Accelerometer的加入,可以保证手机倾斜而不是水平放置时,显示的指南针角度仍然正常。
通过加入Gyroscope,可以实现如果瞬间有大磁场靠近时,但手机没有转动方向时,指南针的角度仍然不变,即保持正确的方向。
5.关于Accelerometer、Magnetometer、Gyroscope
关于android各种sensor的思考(Accelerometer,Magnetometer,Gy

文章图片

  1. Light sensor
关于android各种sensor的思考(Accelerometer,Magnetometer,Gy

文章图片

具体请参考我的免费的linux各种驱动开发课程如下:
https://edu.51cto.com/course/17138.html
【关于android各种sensor的思考(Accelerometer,Magnetometer,Gy】另外我的相关培训视频请看:
欢迎观看我发布的各个课程: https://edu.51cto.com/lecturer/8896847.html

    推荐阅读