Aller au contenu

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


Chronogps

Recommended Posts

Posté(e)

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 !

Posté(e)

Oui je constate exactement les mêmes soucis avec le programme AccelerometerValues sur le market (a la fois l'anomalie sur le Z et valeur énorme en cas de petits chocs, genre poser le téléphone sur un bureau)

Posté(e)

ba ton téléphone à peut-être un souci ou peut-être qu'on peut réinitialiser l'accéléromètre (aucune idée)

t'as regardé sur le net les valeurs normales pour ton téléphone ?

Posté(e)

heu je vais tester ça

EDIT:

HTC Magic : sur le dos (ecran visible) : Z : 9.8

sur le ventre : Z : -9.8

par contre au niveau du mouvement j'ai aussi des valeurs jusqu'à 29 (et -29)

  • 7 months later...
Posté(e)

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.

Posté(e)

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.

Heu plutôt pour la boussole, à cause des champs magnétiques terrestres.

Archivé

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

×
×
  • Créer...