Salut !
Voici la procédure pour utiliser ces deux librairies :
1) Télécharger les librairies :
Il te faut télécharger sur mon github :
-> vertaccel
-> kalmanvert
-> rpicopter_lib
Il faut également la librairie i2cdev :
->
http://www.i2cdevlib.com/ (il faut juste le dossier ./Arduino/I2CDev à mettre dans libraries)
2) Mettre les includes dans ton code:
#include <I2Cdev.h>
#include <vertaccel.h>
#include <inv_mpu.h>
#include <kalmanvert.h>
3) Paramétrer l'accéléromètre :
Dans ./libraries/rpicopter_lib/inv_mpu.h
Il faut mettre le modèle de ton accéléromètre (voir mon README). Si tu as un MPU9250 tu n'a rien a changer.
4) Créer les object :
Dans le haut de ton code tu créé :
kalmanvert kalmanvert;
5) Initialise l'accéléromètre et kalman :
Dans la fonction setup() :
-> tu initialise I2C
-> tu initialise l'accéléromètre :
vertaccel_init();
-> Tu t'assures d'avoir au moins une valeur d'altitude et d'accélération :
while( ! ( vertaccel_dataReady() && ta_fonction_qui_vérifie_qu'on peut_lire_une_alti() ) ) {
}
-> tu demande une valeur d'accélération et d'alti :
vertaccel_updateData();
ta_fonction_pour_avoir_un_valeur_d'alti()
-> tu initialise le filtre de kalman :
kalmanvert.init(ta_première_alti, vertaccel_getValue(), 0.1, 0.3, millis() );
6) Dans le boucle loop :
Lorsque tu as une nouvelle valeur d'altitude et d'accélération (pour l'accélération utilise vertaccel_dataReady() ), tu les donnes au filtre de kalman :
vertaccel_updateData();
kalmanvert.update( ta_nouvelle_alti, vertaccel_getValue(), millis() );
7) Ensuite tu peut demander au filtre :
-> ton altitude
kalmanvert.getPosition()
-> ta vitesse verticale
kalmanvert.getVelocity()
-> ton acceleration :
kalmanvert.getAcceleration()
Voilà.
N'hésite pas a demander si tu as besoin de plus de détails.
Tu peux essayer également d'adapter l'intégralité de mon code en changeant les parties sur le "ms5611" avec tes parties sur le "bmp280".