Table des matières:

Comment mesurer l'angle avec le MPU-6050 (GY-521) : 3 étapes
Comment mesurer l'angle avec le MPU-6050 (GY-521) : 3 étapes

Vidéo: Comment mesurer l'angle avec le MPU-6050 (GY-521) : 3 étapes

Vidéo: Comment mesurer l'angle avec le MPU-6050 (GY-521) : 3 étapes
Vidéo: Как использовать акселерометр и гироскоп MPU-6050 с кодом Arduino 2024, Novembre
Anonim
Comment mesurer l'angle avec MPU-6050 (GY-521)
Comment mesurer l'angle avec MPU-6050 (GY-521)

Dans ce Instructable, nous allons mesurer l'angle avec un Arduino. Nous avons besoin de quelques câbles, d'un Arduino UNO et d'un GY-521 (MPU-6050) afin de mesurer l'angle.

Étape 1: connexion du MPU-6050 à Arduino UNO

Connexion du MPU-6050 à Arduino UNO
Connexion du MPU-6050 à Arduino UNO

Nous avons besoin de câbles mâle-femelle, d'un capteur Arduino UNO et GY-521 (MPU-6050) pour mesurer l'angle. Nous devons connecter MPU-6050 à Arduino UNO comme indiqué sur l'image. Donc,

  • VCC à 5V (MPU-6050 fonctionne avec 3.3V mais GY-521 l'augmente à 5V.),
  • GND à GND,
  • SCL à A5,
  • SDA vers A4,
  • ADO à GND,
  • INT à la broche numérique 2.

Étape 2: Coder

Code
Code

Voici le code. Il utilise I2C. J'ai pris certaines parties du code d'Internet. (partie I2C)

//Écrit par Ahmet Burkay KIRNIK//Mesure de l'angle avec MPU-6050(GY-521)

#comprendre

const int MPU_addr=0x68; int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ;

int minVal=265; int maxVal=402;

double X; double y; double z;

void setup(){ Wire.begin(); Wire.beginTransmission(MPU_addr); Wire.write(0x6B); Wire.write(0); Wire.endTransmission(true); Serial.begin(9600); } boucle vide(){ Wire.beginTransmission(MPU_addr); Wire.write(0x3B); Wire.endTransmission(false); Wire.requestFrom(MPU_addr, 14, true); AcX=Wire.read()<<8|Wire.read(); AcY=Wire.read()<<8|Wire.read(); AcZ=Wire.read()<<8|Wire.read(); int xAng = map(AcX, minVal, maxVal, -90, 90); int yAng = map(AcY, minVal, maxVal, -90, 90); int zAng = map(AcZ, minVal, maxVal, -90, 90);

x= RAD_TO_DEG * (atan2(-yAng, -zAng)+PI); y= RAD_TO_DEG * (atan2(-xAng, -zAng)+PI); z= RAD_TO_DEG * (atan2(-yAng, -xAng)+PI);

Serial.print("AngleX= "); Serial.println(x);

Serial.print("AngleY= "); Serial.println(y);

Serial.print("AngleZ= "); Serial.println(z); Serial.println("------------------------------------------"); retard (400); }

Étape 3: Terminé

Terminé!
Terminé!

C'est fait! Si cela ne fonctionne pas ou si vous avez besoin d'aide, veuillez laisser un commentaire ou envoyer un e-mail. Vous pouvez trouver mon adresse e-mail dans les commentaires. Au fait, mon anglais n'est pas très bon alors je m'excuse pour mon mauvais anglais.

Ahmet Burkay KIRNIK

Istanbul, Turquie

Edit: Après 2 ans, mon anglais s'est amélioré alors j'ai corrigé quelques erreurs.

Conseillé: