Aller au contenu

Valeurs retournées par l'accéléromètre


Chronogps

Recommended Posts

J'ai mis en place un monitoring de l'accéléromètre via le code suivant :

        
       sensor=(SensorManager)getSystemService(Context.SENSOR_SERVICE);
       sensor.registerListener(new SensorListener()
           {
           public void onAccuracyChanged(int sensor,int accuracy)
               {
               }
           public void onSensorChanged(int sensor,float[]values)
               {
               switch(sensor)
                   {
                   case SensorManager.SENSOR_ACCELEROMETER:
                       // Eliminer les valeurs abhérentes
                       if (Math.abs(values[0]/9.80665)>Math.abs(AccX))
                           AccX=values[0]/9.80665;
                       if (Math.abs(values[1]/9.80665)>Math.abs(AccY))
                           AccY=values[1]/9.80665;
                       if (Math.abs(values[2]/9.80665)>Math.abs(AccZ))
                           AccZ=values[2]/9.80665;
                       Echantillon++;
                       break;
                   /*case SensorManager.SENSOR_MAGNETIC_FIELD:
                       break;
                   case SensorManager.SENSOR_ORIENTATION:
                       break;
                   case SensorManager.SENSOR_DELAY_FASTEST:
                       break;*/
                   }
               }
           },SensorManager.SENSOR_ACCELEROMETER|SensorManager.SENSOR_DELAY_GAME);

Je rencontre 2 problèmes :

1/ Mon échantillonnage est très variable (de 0 a 10 valeurs par secondes) sans que je sache expliquer pourquoi ou dans quelles circonstances

2/ J'obtiens des valeurs incohérentes sur 2 points :

A/ Appareil posé à l'horizontale j'ai une valeur de -1,27g en Z (et +0,75 posé sur l'écran) alors que je devrais avoir 1g/-1g

Appareil posé sur la tranche ou à la verticale j'ai bien une valeur de +/-1g en X,Y avec une valeur "résiduelle" de 0,27g sur l'axe Z (au passage les valeurs X/Y s'inversent automatiquement lorsque l'écran switch d'orientation, je suppose que c'est normal)

B/ Lorsque je manipule l'appareil doucement j'ai des valeur cohérente, par contre lorsque je secoue un peu plus j'ai des valeur a 10,20 voire 30g ce qui ne me semble pas possible

Y'a-t-il un bug dans ce code élémentaire, manque-t-il quelque chose ?

Merci pour vos lumières chers collègues !

Lien vers le commentaire
Partager sur d’autres sites

  • 7 months later...

Dans l'application SkyMaps ils disent de tracer des 8 en l'air avec le téléphone pour recalibrer l'accéléromètre.

Sinon pour les valeurs en mouvement, à mon avis le taux d'erreur est assez élevé sur des petits gestes, ce qui explique des valeurs aberrantes.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...