码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2019-03-24 00:03:47      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:images   思考   测试   1.5   ips   复杂度   image   倾斜   oid   

关于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框架

技术图片

  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

技术图片

  1. Light sensor

技术图片

具体请参考我的免费的linux各种驱动开发课程如下:
https://edu.51cto.com/course/17138.html

另外我的相关培训视频请看:
欢迎观看我发布的各个课程: https://edu.51cto.com/lecturer/8896847.html

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

标签:images   思考   测试   1.5   ips   复杂度   image   倾斜   oid   

原文地址:https://blog.51cto.com/8906847/2367939

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!