Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Capteurs > Capteurs de position > Boussole CMPS10 avec cap corrigé

Boussole CMPS10 avec cap corrigé

samedi 8 février 2014, par Julien H.

Faisons simple : la boussole électronique CMPS10 contient des accéléromètres et des magnétomètres en technologie MEMS.

Cela permet d’avoir un cap (nord magnétique) mais également l’orientation. Contrairement à d’autres modèles que nous avions utilisé (HMC6343), la valeur lue par la liaison I2C pour la direction ("bearing" en anglais) n’est pas directement compensée.

Il est donc nécessaire de faire un petit algorithme que voici :

int angle(void)
{
  int bear = compass.bearing();
  int pitc = compass.pitch();
  int rol = compass.roll();

  if (bear >= 180) {
    return bear - pitc - (rol / 4);
  } 
  else {
    return bear + pitc + (rol / 4); 
  }
}

L’angle est alors compensé et plus proche de la valeur de cap à l’horizontal.

Mise à jour

Voici un extrait de la console :

Bearing: 45.90 Pitch: -13 Roll: 1 Direction: 32
Bearing: 48.10 Pitch: -16 Roll: 1 Direction: 32
Bearing: 50.60 Pitch: -20 Roll: 1 Direction: 30
Bearing: 54.30 Pitch: -23 Roll: 0 Direction: 31
Bearing: 57.50 Pitch: -27 Roll: 1 Direction: 30
Bearing: 61.90 Pitch: -31 Roll: 1 Direction: 30
Bearing: 65.10 Pitch: -34 Roll: 1 Direction: 31
Bearing: 68.10 Pitch: -37 Roll: 0 Direction: 31
Bearing: 71.60 Pitch: -40 Roll: 0 Direction: 31
Bearing: 74.40 Pitch: -43 Roll: 0 Direction: 31
Bearing: 76.80 Pitch: -45 Roll: 0 Direction: 31
Bearing: 71.70 Pitch: -41 Roll: 0 Direction: 30
Bearing: 60.30 Pitch: -30 Roll: 0 Direction: 30
Bearing: 49.90 Pitch: -18 Roll: 0 Direction: 31

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.