大家好,我最近又在研究重力传感器了,现在在开发lis33de的linux驱动。但是现在在最后有个问题比较难解决。我手机是静止不动的,我读取了重力传感器的三个值后,发现各个轴的变化比较大。比如我水平放着手机时,z轴在9.8左右变化的幅度比较大。有时为9.2,有时为9.5,有时为10,因为变化的幅度有点大,所以影响上层java应用程序(android系统的),比如指南针程序,那条针一直在动,根本不会静止下来。请问大家有什么好方法来解决这个变化的问题,让传感器报上去的数据比较稳定一点呢?

解决方案 »

  1.   

    就是传感器本身输出的数值变化比较大,我不知道HTC的手机怎么处理的,它的就变化的比较小,所以对程序没多大影响。也可能跟它用的传感器有关,但我这个情况也要处理啊
      

  2.   

    之前在做W910上的J2ME程序时也有发现,数据的确变化大,只能不时地取他们的平均值了
      

  3.   

    lis33de?st的啊,我好像也做过这个的驱动,寄存器配置里不是有个门槛值来着,你可以改改看啊。
    而且重力感应器就是感应xyz三个轴上的重力分量的变化来确定屏幕所处的方向(甩屏切歌什么的不算,只是说手机静止时),你平放的时候z轴就是重力加速度9.8啊,很正常。
      

  4.   

    谁有个DEMO发上来看看别!我倒是在网上找到一个,看不大明白.