书到用时方恨少,事非经过不知难。这篇文章主要讲述关于android各种sensor的思考(Accelerometer,Magnetometer,Gy相关的知识,希望能为你提供帮助。
关于android各种sensor的思考(Accelerometer,Magnetometer,Gyroscope)
- 芯片选型主要考虑方面
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处理的数据越多,功耗越大。
- 高通sensor框架
文章图片
- Sensor的calibration问题
例如Accelerometer校准,就是水平放置手机,然后逐步调整bias(设定步幅),使得输出的多次采样平均在x=0,y=0,z=9.8左右,左右的误差有一个接受的范围。
Proximity校准,则是在手机p sensor上方特定高度有个挡板,然后调整p sensor的红外发光强度(按照一定步幅),调整接收的threshold,使得刚好探测到挡板的临界值。类似的过程。
- compass测试用例:
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
文章图片
- Light sensor
文章图片
具体请参考我的免费的linux各种驱动开发课程如下:
https://edu.51cto.com/course/17138.html
【关于android各种sensor的思考(Accelerometer,Magnetometer,Gy】另外我的相关培训视频请看:
欢迎观看我发布的各个课程: https://edu.51cto.com/lecturer/8896847.html
推荐阅读
- Android中关于如何限制上层应用只在特定区间画图
- 关于linux input device输入子系统架构及android中的框架
- 关于android使用自己的launcher替换默认launcher的方法
- 用Cubism 2制作自己的Live2D(尝试向)——android sdk样本的下载与Android studio编译!
- Android Studio 常用应用
- create-react-app项目配置
- ----uni-app之修改头像----
- com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@1035079 -- APPARENT DEADLOCK!!! C
- Android Sqlite 批量插入性能优化