用MPU6050的dmp得到的数据乱的一塌糊涂,求指导。
本帖最后由 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; // FIFO storage buffer
Quaternion q; // quaternion container
VectorFloat gravity; // gravity vector
float ypr; // 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 * 180/M_PI);
// Serial.print(",");
// Serial.print(ypr * 180/M_PI);
// Serial.print(",");
// Serial.println(ypr * 180/M_PI);
}
哪里错了,求各位指点。
那个DMP融合貌似我试过了官方的库一直无法运行,不过据说;论坛有人调试成功了,但是测试几乎无法通过.... 用了github上下载下来的库和范例程序,得到的数据都挺稳定的呀 goodboy3 发表于 2013-7-26 20:08 static/image/common/back.gif
用了github上下载下来的库和范例程序,得到的数据都挺稳定的呀
在MPU6050_DMP6里面加delay(300)才能得到正确的数据,延时小于300得到的数据就如我帖子里的图一样,但1/0.3这样的频率也低得让人无法接受 ShadowWalker 发表于 2013-7-27 12:39 static/image/common/back.gif
在MPU6050_DMP6里面加delay(300)才能得到正确的数据,延时小于300得到的数据就如我帖子里的图一样,但1 ...
我不加delay貌似也OK嘛 串口监视器显示的数据满稳定的如果模块不移动的话 试试用现成的成品代码调试 来测试器件工作状况
比如用 MWC代码来测试下看看?
在 Arduino forum发帖的收获,先贴给大家看看,我也好好研究一下。 goodboy3 发表于 2013-7-26 20:08 static/image/common/back.gif
用了github上下载下来的库和范例程序,得到的数据都挺稳定的呀
小菜一枚,求github链接 lukefan2008 发表于 2013-7-30 12:38 static/image/common/back.gif
小菜一枚,求github链接
https://github.com/jrowberg/i2cdevlib goodboy3 发表于 2013-8-1 08:31 static/image/common/back.gif
https://github.com/jrowberg/i2cdevlib
谢谢楼主,不甚感激 goodboy3 发表于 2013-8-1 08:31 static/image/common/back.gif
https://github.com/jrowberg/i2cdevlib
可是链接怎么打不开呢? lukefan2008 发表于 2013-8-2 21:05 static/image/common/back.gif
可是链接怎么打不开呢?
我好像可以打开,要不你换个时间段试试看,或者是找个代理翻墙 ShadowWalker 发表于 2013-7-30 10:30 static/image/common/back.gif
在 Arduino forum发帖的收获,先贴给大家看看,我也好好研究一下。
英语不济。。。回复是说噪声比较大的话吧motinapp20.h这个文件里的01改成09么?上面是要做什么? 是不是要滤个波? 同lz,碰到一样的问题
加了个300ms的延时,数据是稳定了,但三行里有两行都是overflow
话说楼主解决了没求指导
页:
[1]
2