Ce module permet de gérer un compas magnétique 3 axes.
-----— Convention des axes utilisée -----—
La convention utilisée est celle des aéronefs :
- X axe longitudinal (dans le sens de la marche), c'est l'axe du roulis (roll). Positif lorsque l'aile droite descend (virage droite)
- Y axe transversal, c'est l'axe du tangage ou piqué (pitch). Positif à monter.
- Z axe normal au plan XY (vertical), c'est l'axe de lacel (yaw) Positif vers la droite (dans le sens horaire).
En ce qui converne l'accélaration, la convention est que tout axe aligné sur la gravité terrestre vers le bas aura une valeur de +1g. Ainsi les accélérations en g seront :
- à l'horizontal {0,0,1}
- en piqué à descendre {1,0,0}
- en virage sur l'aile droite {0,1,0)
float fCompass3dHeadingRadian |
( |
const float * |
fAtt, |
|
|
const float * |
fMag, |
|
|
float |
fMagDeclinaison |
|
) |
| |
Retourne la route ou le cap du compas en radians.
- Paramètres
-
[in] | fAtt | Pointeur sur le vecteur d'attitude (Roll/Pitch) |
[in] | fMag | Pointeur sur le vecteur de mesure magnétique |
| fMagDeclinaison | Déclinaison magnétique du lieu |
- Renvoie
- Cap entre 0 et 2PI
int iCompass3dCalibrate |
( |
FILE * |
xOutStream, |
|
|
xButMask |
xBut |
|
) |
| |
Calibrage du compas.
Procède au calibrage. Le résultat étant stocké en EEPROM et rechargé automatiquement à chaque initialisation iCompass3dInit(), il n'est pas nécessaire de recalibrer à chaque fois.
- Paramètres
-
[in] | xOutStream | Flux de sortie pour les messages |
| xBut | Bouton pour la gestion du calibrage |
- Renvoie
- 0 en cas de succès, une valeur négative sur erreur.
int iCompass3dHeading |
( |
const float * |
fAtt, |
|
|
const float * |
fMag, |
|
|
float |
fMagDeclinaison |
|
) |
| |
Retourne la route ou le cap du compas.
- Renvoie
- Cap entre 0 et 359°
int iCompass3dHeadingFrom |
( |
const float * |
fFrom | ) |
|
Retourne la route ou le cap du compas à partir du repère xFrom.
- Paramètres
-
[in] | fFrom | Pointeur sur le vecteur de référence du calcul |
- Renvoie
- Cap entre 0 et 359° ou -1 en cas de compas non calibré
int iCompass3dInit |
( |
void |
| ) |
|
Initialise le module Compass.
- Renvoie
- 0 en cas de succès, COMPASS3D_NOT_CALIBRATED si une calibration est nécessaire, une valeur négative sur erreur.
int iCompass3dRead |
( |
float * |
fMag | ) |
|
Lecture des champs magnétiques d'un compas.
Cette fonction nécessite que le compas ait été calibré une fois
- Paramètres
-
[out] | fMag | Pointeur sur le vecteur dans lequel sont stockées les valeur normées de champs magnétique (entre -1 et +1) |
- Renvoie
- 0 en cas de succès, une valeur négative sur erreur.
int iCompass3dReadRaw |
( |
int * |
iMag | ) |
|
Lecture brute des champs magnétiques d'un compas.
- Paramètres
-
[out] | iMag | Pointeur sur le vecteur dans lequel sont stockées les valeur de champs magnétique (lecture brute dans le compas en LSB) |
- Renvoie
- 0 en cas de succès, une valeur négative sur erreur.
Lecture de l'étalonnage du compas.
- Paramètres
-
[out] | xCalibration | Pointeur sur l'étalonnage courant. |
Sauvegarde de l'étalonnage du compas.
- Paramètres
-
[in] | xCalibration | Pointeur sur l'étalonnage courant. |