Accueil > Forum > La communauté > Vos projets > Paramétrage mpu6050

Paramétrage mpu6050

✔ Ce sujet est résolu
lucasmrslle lucasmrslle 3 Messages
Au cours de mon projet en SI(science de l'ingénieur), je dois utiliser un gyromètre accéléromètre MPU6050 monté sur une perceuse afin de percer verticalement. Alors voilà mon problème, j'ai un gyrometre/accéléromètre arduino mpu6050, et j'aimerais, le remettre à 0 ( reset) afin de prendre le mur comme référence, et ainsi redéfinir les axes en fonction du plan à percer, mais dans ma recherche, sur internet je n'ai trouvé aucune commande permettant d'effectuer cette action, si une commande de ce genre n'existe pas
Comment enregistrer la variable de chaque angle( calculée après un delay (10) ) dans une variable fixe qui s'enregistrer à sur la carte après avoir appuyé sur un bouton? (xemple, les angles défilent, j'appuie sur le bouton, l'angle à ce moment s'enregistre dans une nouvelle variable. Sil vous plait aidez moi je suis complètement désespéré
lobodol lobodol 430 Messages BIG BOSS
Salut et bienvenue.
Je te ferai une réponse complète ce soir mais y'a une solution poivron problème
A chaque faute d'orthographe que vous faites, votre sexe rétrécit inexorablement ...
lucasmrslle lucasmrslle 3 Messages
Merci beaucoup, j'ai longtemps chercher et même mon prof n'avait pas trouvé, je débute vraiment en arduino, et c'est le seul problème que je rencontre dans mon code
lobodol lobodol 430 Messages BIG BOSS
Yo, du coup pour ton problème, rien de bien compliqué.
Je te propose de déclencher une interruption lors de l'appui sur un bouton poussoir. Durant cette interruption tu vas enregistrer la valeurs des angles X Y & Z dans une variable (un tableau notamment) et le tour est joué.
D'ailleurs, si tu ne cherches qu'à mesure l'angle vertical, tu n'as pas besoin d'un gyro 3 axes, un seul axe suffit.
Quoi qu'il en soit, voilà à quoi ça pourrait ressembler en code Arduino:


#define YAW      0
#define PITCH    1
#define ROLL     2

volatile float angles[3] = {0,0,0};
int button_pin = 2;

void setup()
{
	attachInterrupt(digitalPinToInterrupt(button_pin), saveAngles, LOW);
}

void loop()
{
	// Le code pour lire les angles ici, cf drone chapitre 5
}

/**
 * Sauvegarde les angles lorsqu'on appui sur le bouton poussoir.
 */
void saveAngles()
{
	angles[YAW]   = ypr[YAW];
	angles[PITCH] = ypr[PITCH];
	angles[ROLL]  = ypr[ROLL];
}


Est-ce que ça répond à ta problématique ?
A chaque faute d'orthographe que vous faites, votre sexe rétrécit inexorablement ...
lucasmrslle lucasmrslle 3 Messages
Merci beaucoup, je pense que ça va faire parfaitement l'affaire. En réalité j'utilise un 3 axes car les autres personnes de mon projet en utilise 1 chacun. merci encore pour ce code!
Vous devez être connecté pour pouvoir répondre à ce sujet.