大家好,有人能给我讲解一下android底层如何读取磁传感器的原始数据一层一层传递到java层的(问题补充)
还有为什么用android手机在空中画个8字磁传感器的值就会变化,导致我计算的方位角发生了变化?怎么才能避免对手机在空中的8字操作后,不影响我计算的方位角值?谢谢!...
还有为什么用android手机在空中画个8字磁传感器的值就会变化,导致我计算的方位角发生了变化?怎么才能避免对手机在空中的8字操作后,不影响我计算的方位角值?谢谢!
展开
1个回答
展开全部
现在这些传感器sensor硬件基本见底了,做的很廉价了。如果你是硬件玩家,可能关注相关已经从厂商的信息。磁传感器的引脚pin能在加电后,输出磁偏角,当然高层的java安卓开发者不用接触pin这层次的编程,其上的c代码会进一步封装,再JNI供java调用。
其实这类传感器最核心的价值是传感器的厂商对编程器件的封装,他封装了最多的传感器实现,这里面设计信号处理,噪声等大多数问题。无论是c还是java层的编程,只是读读传感器的输出值而已。比如陀螺仪会输入xyz三个值等。
画八字是校正传感器,因为传感器数子采样还是容易误差,画八字是一个最大程度改变磁场方向的方式。
变化率越大,越容易变硬件软件实现获得更好的数据样本来校正自身,如果你画个一字,磁场更本没机会变化。
其实这类传感器最核心的价值是传感器的厂商对编程器件的封装,他封装了最多的传感器实现,这里面设计信号处理,噪声等大多数问题。无论是c还是java层的编程,只是读读传感器的输出值而已。比如陀螺仪会输入xyz三个值等。
画八字是校正传感器,因为传感器数子采样还是容易误差,画八字是一个最大程度改变磁场方向的方式。
变化率越大,越容易变硬件软件实现获得更好的数据样本来校正自身,如果你画个一字,磁场更本没机会变化。
追问
1.请问8字校正后,校正所得到的值存在什么地方?
2.一旦校正后,对所有app的传感器都会有影响吗?
3.我怎样才能避免校正对我的app的影响?我不想通过8字校正我的app传感器。
追答
1,我不确定这个需不需要存什么参数值,这个我不太了解,你可以参考参考霍尔元件的原理。但是应该是在传感器里面。现在的硬件都是模块化设备,饥饿销售的那些人自己都不懂软硬件,只是找各种代工。从哪种角度考虑都是在各自模块中实现。我认为没什么值要存。
2,是
3,我认为你编程的方向有问题,你不是考虑校正对你app的影响,而是应该考虑,在传感器失效,如你把手机放在了强磁场的周围,放在了带线圈的磁卡周围,这期间,你的传感器读书都是错误的,后期校正是必须的。你应该考虑怎么判断如果读数有效的问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询