曾经in 发表于 2016-6-10 22:27

MPU6050陀螺仪数据抖动问题

本帖最后由 曾经in 于 2016-6-10 22:36 编辑

最近在慢慢的搞四轴,但是不是太顺利,前段调24l01没法接收,估计硬件有问题买了模块来替换,现在又出状况了
一波还未平息
一波又来侵袭
茫茫人海狂风暴雨
一波还来不及
一波早就过去
一生一世如梦初醒


好吧,不感慨了
在四轴的的板上运行,静止时X轴陀螺仪数据抖动非常厉害,z轴有小抖动,y轴数据平稳
改用开发板+模块的话同样的代码,3轴数陀螺仪据都能正常接收而且非常平稳,

#include "HAR_I2C.h"
#include "MPU6050.h"

#define MPU_INT PAin(10)

#define MPU6050_ADDRESS         0x68
#define MPU_RE_REG(reg,buf,num) IIC_ReadBuffer(buf,MPU6050_ADDRESS,reg,num)

uint32_t MPU_WR_REG(uint8_t reg,uint8_t value)
{
      return I2C_WriteBuffer(&value,MPU6050_ADDRESS,reg,1);
}

void mpu6050_init(void)
{
      uint8_t test;
      IIC_init();
      MPU_WR_REG(POWER_MANAGEMENT_1,0x00);          //唤醒
      MPU_WR_REG(SAMPLE_RATE_DIVIDER                ,0x07);          //采样率
      MPU_WR_REG(CONFIGURATION                              ,0x07);          //低通滤波
      MPU_WR_REG(GYROSCOPE_CONFIGURATION      ,0x00<<3);          //陀螺仪配置
      MPU_WR_REG(ACCELEROMETER_CONFIGURATION,0x00);          //加速度计配置

}

void char2int(unsigned char *puc,uint16_t *pui)
{
      unsigned charxy;
      for(xy=6;xy>0;xy--)
      {
                *pui=(*puc++)<<8;
                *(pui++)+=*(puc++);
      }
}
void mpu6050_re(uint16_t *poin)
{
      unsigned char hc;      
      MPU_RE_REG(ACCELEROMETERMEASUREMENTS,hc,6);
      MPU_RE_REG(GYROSCOPE_MEASUREMENTS,hc+6,6);
      char2int(hc,poin);
}四轴上MPU6050部分原理图

四轴上读到的MPU6050陀螺仪数据:(整个过程都是静止的,但是数据抖动的很厉害)
用模块读到的数据:(后半部分是静止的,较平稳)


没什么头绪呢,大家什么看



yl20084784 发表于 2016-6-11 00:18

电源好好检查下,滤波做好

曾经in 发表于 2016-6-11 02:27

yl20084784 发表于 2016-6-11 00:18
电源好好检查下,滤波做好

都是USB供电,四轴SP6205稳压,开发板1117稳压

leifengfirst 发表于 2016-6-11 20:32

模块是相同的吗?是不是模块布线的问题?

曾经in 发表于 2016-6-11 20:37

leifengfirst 发表于 2016-6-11 20:32
模块是相同的吗?是不是模块布线的问题?

一个是买的独立模块,
四轴上的mpu6050是画在四轴板一起的

leifengfirst 发表于 2016-6-11 20:40

那就是布线的问题了,参考单独模块的布线看看你的硬件,特别是地线

hinii23 发表于 2016-6-12 09:10

有原厂的参考吧

hinii23 发表于 2016-6-12 09:11

有原厂的参考吧 没有滤波的代码吗?

chenzhufly 发表于 2016-6-12 11:01

6050在PCB上 有没有方向的问题

曾经in 发表于 2016-6-12 20:50

hinii23 发表于 2016-6-12 09:11
有原厂的参考吧 没有滤波的代码吗?

不是滤波的问题,两是完全相同的程序,都是原始数据,效果完全不同

不知道叫什么 发表于 2016-6-15 14:51

pcb布线的问题,信号线尽量远离电源线,再主要就是看看地线。

Scarborough7 发表于 2016-9-21 13:42

卡尔曼滤波

曾经in 发表于 2016-9-21 21:32

Scarborough7 发表于 2016-9-21 13:42
卡尔曼滤波

硬件问题,估计芯片坏了

包弟 发表于 2020-1-22 19:08

<p>我的也是,下图是陀螺仪数据导数(角加速度)的波形,尖峰实在是没找到原因,分析了一下数据,怀疑是MPU6050寄存器更新一半的时候被IIC读了造成错误?链接是波形图</p>

<p>https://sm.ms/image/WTf3GXMimyPE5kI</p>

wudizhr 发表于 2025-1-19 21:14

<p>抱歉挖坟,LZ最后解决了吗。我和你一摸一样的问题自己画的板子上的MPU波动幅度很大,用的模块就很正常程序也都是同一套。不确定是不是芯片问题。</p>
页: [1]
查看完整版本: MPU6050陀螺仪数据抖动问题