|
|
本帖最后由 ShadowWalker 于 2013-7-26 12:52 编辑
- #include "Wire.h"
- #include "I2Cdev.h"
- #include "MPU6050_6Axis_MotionApps20.h"
- MPU6050 mpu;
- bool dmpReady = false; // set true if DMP init was successful
- uint8_t mpuIntStatus; // holds actual interrupt status byte from MPU
- uint8_t devStatus; // return status after each device operation (0 = success, !0 = error)
- uint16_t packetSize; // expected DMP packet size (default is 42 bytes)
- uint16_t fifoCount; // count of all bytes currently in FIFO
- uint8_t fifoBuffer[64]; // FIFO storage buffer
- Quaternion q; // [w, x, y, z] quaternion container
-
- VectorFloat gravity; // [x, y, z] gravity vector
-
- float ypr[3]; // [yaw, pitch, roll] yaw/pitch/roll container and gravity vector
- void setup()
- {
-
- Wire.begin();
- Serial.begin(115200);
- while (!Serial); // wait for serial port to connect. Needed for Leonardo only
- mpu.initialize();
- devStatus = mpu.dmpInitialize(); //为0是成功
- mpu.setDMPEnabled(true);
- packetSize = mpu.dmpGetFIFOPacketSize(); //默认42byte
-
- }
- void loop()
- {
- fifoCount = mpu.getFIFOCount();
- while (fifoCount < packetSize)
- fifoCount = mpu.getFIFOCount();
- // read a packet from FIFO
- mpu.getFIFOBytes(fifoBuffer, packetSize);
- // track FIFO count here in case there is > 1 packet available
- // (this lets us immediately read more without waiting for an interrupt)
- fifoCount -= packetSize;
- mpu.dmpGetQuaternion(&q, fifoBuffer);
- mpu.dmpGetGravity(&gravity, &q);
- mpu.dmpGetYawPitchRoll(ypr, &q, &gravity);
- Serial.println(ypr[0] * 180/M_PI);
- // Serial.print(",");
- // Serial.print(ypr[1] * 180/M_PI);
- // Serial.print(",");
- // Serial.println(ypr[2] * 180/M_PI);
- }
复制代码
哪里错了,求各位指点。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|