IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Synchroniser entre l'accéléromètre et le gyromètre


Sujet :

Android

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 31
    Points : 35
    Points
    35
    Par défaut Synchroniser entre l'accéléromètre et le gyromètre
    Bonjour,

    Je veux récupérer les données de l'accéléromètre et le gyromètre exactement au même moment. Avez-vous une aidé comment faire.

    Merci.
    A+

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Je ne pense pas que ce soit possible puisque les capteurs sous android fonctionne à base d'un listener.
    C'est le sensor qui déclenche ton listener quand ses données ont changées et non pas toi qui l'intérroge à intervalle régulier.

    Il me parrait donc difficile de synchroniser les deux capteurs.

    En revanche tu peux conditionner l'utilisation des données reçues des 2 capteurs pour ne les utiliser que lorsque les deux ont des nouvelles valeurs
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    J'aurais envie de dire que c'est peut-être possible
    Je n'ai pas mon code d'accéléromètre sous la main mais j'ai trouvé celui-ci.
    http://mathias-seguy.developpez.com/...iser-capteurs/

    On passe par un SensorEventListener.
    Remarquez l'objet Sensor accelerometer.
    Ensuite il récupère les valeurs x,y,z dans onSensorChanged (que ce soit l'accéleromètre ou le gyro).
    Il faudrait tester


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    public class SensorAccelerationTutoActivity extends Activity implements SensorEventListener {
     
        // Déclaration de l'attribut en tant qu'attribut de l'activité
        // Le sensor manager (gestionnaire de capteurs)
        SensorManager sensorManager;
     
        // L'accéléromètre
        Sensor accelerometer;
     
    /***************************************************************************/
    /** Manage life cycle ******************************************************/
    /***************************************************************************/
     
        // Appelé à la création de l'activité. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            // Faire quelque chose
            // Gérer les capteurs*:
            // Instancier le gestionnaire des capteurs, le SensorManager
            sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
            // Instancier l'accéléromètre
            accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
            // Faire d'autres trucs
        }
     
        @Override
        protected void onPause() {
            // unregister the sensor (désenregistrer le capteur)
            sensorManager.unregisterListener(this, accelerometer);
            super.onPause();
        }
     
        @Override
        protected void onResume() {
            /* Ce qu'en dit Google*dans le cas de l'accéléromètre :
             * «* Ce n'est pas nécessaire d'avoir les évènements des capteurs à un rythme trop rapide.
             * En utilisant un rythme moins rapide (SENSOR_DELAY_UI), nous obtenons un filtre
             * automatique de bas-niveau qui "extrait" la gravité  de l'accélération.
             * Un autre bénéfice étant que l'on utilise moins d'énergie et de CPU.*»
             */
            sensorManager.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_UI);
            super.onResume();
        }
     
    /********************************************************************/
    /** SensorEventListener*************************************************/
    /********************************************************************/
     
        @Override
        public void onAccuracyChanged(Sensor sensor, intaccuracy) {
            // Rien à faire la plupart du temps
        }
     
        @Override
        public void onSensorChanged(SensorEvent event) {
            // Récupérer les valeurs du capteur
            floatx, y, z;
            if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
                x = event.values[0];
                y = event.values[1];
                z = event.values[2];
            }
        }

    La ligne qui tue:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER)
    Pourquoi tester si c'est connu d'avance!
    Si la réponse vous a aidé, pensez à cliquer sur +1

  4. #4
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Citation Envoyé par grunk Voir le message
    Il me parait donc difficile de synchroniser les deux capteurs.
    Ca parait effectivement compliqué mais peut-être que des librairies comme RxJava peuvent aider...
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

Discussions similaires

  1. Synchronisation entre client et server // gestion du lag
    Par phraides dans le forum Développement 2D, 3D et Jeux
    Réponses: 3
    Dernier message: 26/07/2006, 19h01
  2. synchronisation entre BD Oracle : Redo logs
    Par karimarien dans le forum Oracle
    Réponses: 7
    Dernier message: 17/07/2006, 18h49
  3. Réponses: 9
    Dernier message: 21/12/2005, 19h05
  4. Synchronisation entre 2 bases ACCESS
    Par Tchupacabra dans le forum Access
    Réponses: 2
    Dernier message: 18/10/2005, 15h24
  5. Synchronisation entre 2 threads
    Par bodbod dans le forum C++
    Réponses: 8
    Dernier message: 20/08/2004, 18h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo