AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR
Compas magnétique 3 axes

Description détaillée

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 :

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 :

Graphe de collaboration de Compas magnétique 3 axes:

Structures de données

struct  xCompass3dCalibration
 

Fonctions

float fCompass3dHeadingRadian (const float *fAtt, const float *fMag, float fMagDeclinaison)
 Retourne la route ou le cap du compas en radians. Plus de détails...
 
int iCompass3dCalibrate (FILE *xOutStream, xButMask xBut)
 Calibrage du compas. Plus de détails...
 
int iCompass3dHeading (const float *fAtt, const float *fMag, float fMagDeclinaison)
 Retourne la route ou le cap du compas. Plus de détails...
 
int iCompass3dHeadingFrom (const float *fFrom)
 Retourne la route ou le cap du compas à partir du repère xFrom. Plus de détails...
 
int iCompass3dInit (void)
 Initialise le module Compass. Plus de détails...
 
int iCompass3dRead (float *fMag)
 Lecture des champs magnétiques d'un compas. Plus de détails...
 
int iCompass3dReadRaw (int *iMag)
 Lecture brute des champs magnétiques d'un compas. Plus de détails...
 
void vCompass3dCalibration (xCompass3dCalibration *xCalibration)
 Lecture de l'étalonnage du compas. Plus de détails...
 
void vCompass3dClearCalibration (void)
 Remets à zéro l'étalonnage du compas.
 
void vCompass3dSetCalibration (const xCompass3dCalibration *xCalibration)
 Sauvegarde de l'étalonnage du compas. Plus de détails...
 

Macros

#define COMPASS3D_NOT_CALIBRATED   (1)
 Indique que le compas n'a pas été calibré
 

Définitions de type

typedef struct xCompass3dCalibration xCompass3dCalibration
 

Documentation des fonctions

float fCompass3dHeadingRadian ( const float *  fAtt,
const float *  fMag,
float  fMagDeclinaison 
)

Retourne la route ou le cap du compas en radians.

Paramètres
[in]fAttPointeur sur le vecteur d'attitude (Roll/Pitch)
[in]fMagPointeur sur le vecteur de mesure magnétique
fMagDeclinaisonDé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]xOutStreamFlux de sortie pour les messages
xButBouton 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]fFromPointeur 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]fMagPointeur 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]iMagPointeur 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.
void vCompass3dCalibration ( xCompass3dCalibration xCalibration)

Lecture de l'étalonnage du compas.

Paramètres
[out]xCalibrationPointeur sur l'étalonnage courant.
void vCompass3dSetCalibration ( const xCompass3dCalibration xCalibration)

Sauvegarde de l'étalonnage du compas.

Paramètres
[in]xCalibrationPointeur sur l'étalonnage courant.