[Programmation] Arduino MPU6050
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Arduino MPU6050



  1. #1
    Prectrus75

    Arduino MPU6050


    ------

    Bonjour, j'aimerais savoir où puis je trouver les valeurs de yaw pitch et roll dans ce code(pour faire bouger des ervomoteurs)
    Code:
    #include "I2Cdev.h"
      #include "MPU6050_6Axis_MotionApps20.h"
      #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
      #include "Wire.h"
      #endif
      
      MPU6050 mpu;
      #define OUTPUT_TEAPOT
      #define LED_PIN 13
      bool blinkState = false;
      bool dmpReady = false;
      uint8_t mpuIntStatus;
      uint8_t devStatus;
      uint16_t packetSize;
      uint16_t fifoCount;
      uint8_t fifoBuffer[64];
      Quaternion q;
      VectorInt16 aa;
      VectorInt16 aaReal;
      VectorInt16 aaWorld;
      VectorFloat gravity;
      float euler[3];
      float ypr[3];
      uint8_t teapotPacket[14] = { '$', 0x02, 0,0, 0,0, 0,0, 0,0, 0x00, 0x00, '\r', '\n' };
      volatile bool mpuInterrupt = false;
      void dmpDataReady() {
      mpuInterrupt = true;
      }
      
      void setup() {
      
      #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
      Wire.begin();
      TWBR = 24;
      #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE
      Fastwire::setup(400, true);
      #endif
      
      Serial.begin(38400);
      while (!Serial);
      mpu.initialize();
      devStatus = mpu.dmpInitialize();
      mpu.setXGyroOffset(220);
      mpu.setYGyroOffset(76);
      mpu.setZGyroOffset(-85);
      mpu.setZAccelOffset(1788);
      
      if (devStatus == 0) {
      mpu.setDMPEnabled(true);
      attachInterrupt(0, dmpDataReady, RISING);
      mpuIntStatus = mpu.getIntStatus();
      dmpReady = true;
      packetSize = mpu.dmpGetFIFOPacketSize();
      } else {
      Serial.print(F("DMP Initialization failed (code "));
      Serial.print(devStatus);
      Serial.println(F(")"));
      }
      pinMode(LED_PIN, OUTPUT);
      }
      
      void loop() {
      
      if (!dmpReady) return;
      
      while (!mpuInterrupt && fifoCount < packetSize) {
      // other program behavior stuff here
      }
      
      mpuInterrupt = false;
      mpuIntStatus = mpu.getIntStatus();
      fifoCount = mpu.getFIFOCount();
      
      if ((mpuIntStatus & 0x10) || fifoCount == 1024) {
      mpu.resetFIFO();
      Serial.println(F("FIFO overflow!"));
      } else if (mpuIntStatus & 0x02) {
      
      while (fifoCount < packetSize) fifoCount = mpu.getFIFOCount();
      mpu.getFIFOBytes(fifoBuffer, packetSize);
      fifoCount -= packetSize;
      
      #ifdef OUTPUT_TEAPOT
      teapotPacket[2] = fifoBuffer[0];
      teapotPacket[3] = fifoBuffer[1];
      teapotPacket[4] = fifoBuffer[4];
      teapotPacket[5] = fifoBuffer[5];
      teapotPacket[6] = fifoBuffer[8];
      teapotPacket[7] = fifoBuffer[9];
      teapotPacket[8] = fifoBuffer[12];
      teapotPacket[9] = fifoBuffer[13];
      Serial.write(teapotPacket, 14);
      teapotPacket[11]++;
      #endif
      
      blinkState = !blinkState;
      digitalWrite(LED_PIN, blinkState);
      }
      }

    -----

  2. #2
    freepicbasic

    Re : Arduino MPU6050

    Code:
    math   English Français     commande
    ====================================
    X      roll     (roulie)    aileron
    Y      pitch    (tanguage)  profondeur
    Z      yaw      (lacet)     palonnier
    à condition de respecter le sens qui est donné par le datasheet du MPU50
    X le sens des écritures ,
    y le haut et bas de l'écriture et
    Z dessus ,dessous le chip.

    https://www.quora.com/How-do-I-calcu...-accelerometer

    voir un exemple plus simple ici;
    http://electronics.stackexchange.com...s-from-mpu6050
    A+, pat

  3. #3
    Prectrus75

    Re : Arduino MPU6050

    Merci d'avoir répondu.
    J'ai essayer avec le code http://electronics.stackexchange.com...s-from-mpu6050 cependant impossible de trouver le yaw(et le suppose que le pitch et roll sont ry et rz)

  4. #4
    freepicbasic

    Re : Arduino MPU6050

    Cette ligne

    // collect readings
    accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

    Ce sont les données qui viennent du gyro
    g pour gyro
    a pour accel

    Dans leur prog ils calculent un angle pour chaque axe.
    A+, pat

  5. A voir en vidéo sur Futura
  6. #5
    freepicbasic

    Re : Arduino MPU6050

    Pour les x,y,z si tu respecte le sens du datasheet (image ci jointe) ce sera les même , sinon il faudra les mettre en correspondance.

    Il suffit de connecter le port série et envoyer les données pour voir ce qui bouge...
    Images attachées Images attachées  
    A+, pat

  7. #6
    Prectrus75

    Re : Arduino MPU6050

    Oui c'est ce que j'ai fais, mais on ne capte pas les yaw avec ces codes, j'avais déjà cherché avant d'ouvrir ce post et j'ai testé plein de code mais 1 seul trouve le yaw(car il le met en action grâce a processing et le teapot) et c'est celui que j'ai posté c'est pourquoi je voulais savoir ou se trouvait les informations (yaw pitch et roll) dans ce code.

  8. #7
    freepicbasic

    Re : Arduino MPU6050

    vérifie ton câblage peut être une erreur!

    Personnellement j'ai testé la librairie avec l'exemple ça a fonctionné.

    gx,gy,gz pour le gyro
    ça envoie sur le port série.
    A+, pat

  9. #8
    Prectrus75

    Re : Arduino MPU6050

    bon alors ça fais 3 jours que je me casse la tête la dessus, et là j'ai tout bien refait(branchement, retéléchargement des programmes) ET ça marche enfin.
    Merci à toi.
    Une dernière question pense tu que grâce a ce systeme je peux capter les mouvement de mon bras ?

Discussions similaires

  1. [Numérique] Pas de réponse du MPU6050 par I2C
    Par greg2fs dans le forum Électronique
    Réponses: 1
    Dernier message: 23/06/2016, 07h05
  2. (Arduino) problème de téléversement de programme Arduino
    Par walidjake dans le forum Électronique
    Réponses: 1
    Dernier message: 17/05/2016, 09h28
  3. Carte Arduino UNO R3 ou Arduino Mega 2560 R3 ?
    Par theoze dans le forum Électronique
    Réponses: 10
    Dernier message: 11/03/2015, 15h36
  4. Arduino anti rebond avec arduino
    Par sari12 dans le forum Électronique
    Réponses: 13
    Dernier message: 23/10/2014, 17h04
  5. Communication arduino-arduino avec module Xbee
    Par TPESI22012 dans le forum Électronique
    Réponses: 2
    Dernier message: 23/12/2013, 17h24
Découvrez nos comparatifs produits sur l'informatique et les technologies.