Ce module permet de gérer un accéléromètre 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)
int iAccelero3dCalibrate |
( |
uint16_t |
usNumOfSamples | ) |
|
Calibration de l'accelero.
Calcul la valeur du zéro par moyennage d'un certains nombre de mesures et stocke le résultat en EEPROM
- Paramètres
-
usNumOfSamples | Nombre d'échantillons de mesure utilisés pour le calcul |
- Renvoie
- 0 en cas de succès, une valeur négative sur erreur.
int iAccelero3dInit |
( |
void |
| ) |
|
Le circuit est initialisé et la valeur du zéro est chargée de l'EEPROM. Si la valeur stockée en EEPROM est corrompue, la valeur du zéro est remise à zéro et stockée en EEPROM et la fonction retourne ACCELERO3D_NOT_CALIBRATED.
- Renvoie
- 0 en cas de succès, ACCELERO3D_NOT_CALIBRATED si une calibration est nécessaire, une valeur négative sur erreur.
int iAccelero3dRead |
( |
float * |
fAcc | ) |
|
Lecture des accelérations d'un Accelero.
- Paramètres
-
[out] | fAcc | Pointeur sur le vecteur dans lequel sont stockées les accelérations (en g) |
- Renvoie
- 0 en cas de succès, une valeur négative sur erreur.
int iAccelero3dReadRaw |
( |
int * |
iAcc | ) |
|
Lecture des accelérations d'un Accelero.
- Paramètres
-
[out] | iAcc | Pointeur sur le vecteur dans lequel seront stockées les accelérations (en LSB) |
- Renvoie
- 0 en cas de succès, une valeur négative sur erreur.
void vAccelero3dAttitude |
( |
float * |
fAtt, |
|
|
const float * |
fAcc, |
|
|
float |
fAlpha |
|
) |
| |
Calcul des angles de piqué (x) et de roulis (y) par rapport à la verticale à partir des accélérations.
- Paramètres
-
void vAccelero3dSetZero |
( |
const int * |
iZero | ) |
|
Modification du calage du zéro.
La valeur est aussi stockée en EEPROM afin d'être rechargée lors de l'initialisation.
- Paramètres
-
[in] | iZero | Pointeur sur le vecteur de zéro |
void vAccelero3dZero |
( |
int * |
iZero | ) |
|
Lecture du calage du zéro.
- Paramètres
-
[out] | iZero | Pointeur sur le vecteur dans lequel sont stockées les accelérations calculées lors du calibrage(en LSB) |