戴↑Ω听歌 发表于 2013-8-10 20:30:00

MPU6050中加速度计的校准

各位高手,大家好,小弟最近在用MPU6050时遇到了个问题:传感器在水平放置时,Z轴输出的数据只有大约+0.5G左右,翻过来,理论上应该是-1G,但实际大约是-1.5G左右,其他两个X,Y轴输出正常,这是传感器坏了,还是MPU6050的加速度计没有校准?关于陀螺仪的校准,我觉得比较简单:在传感器静止不动时,测出陀螺仪各轴的偏移值,保存,以后每次的测量数据减去这个偏移值就行了。加速度计如果是没校准的话,该如何校准,期待各位的帮助。还有个问题就是关于ADC的输出值:MPU6050中每个轴的ADC是16位的,假设加速度计的量程是±2g,ADC的16位数据中,最高位为符号位,剩下的15位为数值位,2的15次方为32768,也就是当测量的加速度为2g时,输出值为32768,测量的加速度1g时,输出值为16384,这验证了数据手册上的传感器分辨率16,384LSB/g,我现在的问题是,量程选为2G,静止时Z轴输出的数据才3000+,翻转180°,输出数据-10000+,而X,Y轴的输出原始数据范围是±6000左右,目前卡在这里,求各位大神帮帮忙~~
下面是测试时的图片:

firedphoenix 发表于 2013-8-10 20:55:07

楼主比俺走得远一些,俺刚才把数据读上来,数据的物理含义,一个都还不清楚呢

tinymilk 发表于 2013-8-11 08:14:53

给你说个最简单的校准方法,把mwc的程序烧进去,然后用它的上位机一键校准,效果很好

戴↑Ω听歌 发表于 2013-8-11 10:43:06

唉,等了这么久也没人回贴。我在国外的MWC上也看到了同样的问题:
void ACC_init () {
i2c_writeReg(MPU6050_ADDRESS, 0x1C, 0x10);             //ACCEL_CONFIG-- AFS_SEL=2 (Full Scale = +/-8G); ACCELL_HPF=0   //note something is wrong in the spec.
//note: something seems to be wrong in the spec here. With AFS=2 1G = 4096 but according to my measurement: 1G=2048 (and 2048/8 = 256)
//confirmed here: http://www.multiwii.com/forum/vi ... &start=10#p7480
#if defined(FREEIMUv04)
    acc_1G = 255;
#else
    acc_1G = 512;
#endif

这是MWC开源飞控作者的代码,他的加速度计的量程选择的是+-8g,理论上1G对应的ADC输出值为4096,但他实际的测量输出值也只有2048,跟我的问题基本上一样。现在我只能这么理解了:加速度的ADC为15位或者是国外所说的“I have found that the MPU-6050 accelerometer sensitivity is half that stated in the datasheet for all ranges; ie 1g output is ~1024, ~2048, ~4096 and ~8192 for ranges 16, 8, 4 and 2 g respectively.”论坛有大婶遇到过这个问题没啊

戴↑Ω听歌 发表于 2013-8-11 10:50:16

firedphoenix 发表于 2013-8-10 20:55 static/image/common/back.gif
楼主比俺走得远一些,俺刚才把数据读上来,数据的物理含义,一个都还不清楚呢

慢慢来,一起学习~~~~~~

戴↑Ω听歌 发表于 2013-8-11 10:50:32

tinymilk 发表于 2013-8-11 08:14 static/image/common/back.gif
给你说个最简单的校准方法,把mwc的程序烧进去,然后用它的上位机一键校准,效果很好

我去研究下MWC的代码

学慧放弃 发表于 2013-8-11 13:43:12

很想买一块楼主那显示器,和下面那块板子,主要是显示器周围没有设置的功能那种图标,楼主记得告诉我哈,一直想买个显示器用来做实验用

ianon 发表于 2013-8-12 17:49:55

也在为加速度的校准头疼

china彬 发表于 2014-1-25 19:30:27

ianon 发表于 2013-8-12 17:49 static/image/common/back.gif
也在为加速度的校准头疼

我也是,毕业设计跟加速度计校准有关求相关的帖子

shihaipeng04 发表于 2014-3-3 11:07:54

我也是迷迷糊糊的状态,不知道陀螺仪芯片型号一样不,我那个好像记得说z轴是和xy轴共用2个寄存器,每边各取4位。是不是计算上有问题啊?看楼主的描述好像有点复合这个状况

转角 发表于 2014-3-3 13:38:54

请看
http://arduino.googlecode.com/files/arduino-1.0.5-windows.zip

上面源码的相关文章 http://bbs.5imx.com/bbs/forum.php?mod=viewthread&tid=803115&highlight=

zacy2011 发表于 2015-8-21 21:29:19

应该就是没校准了,估计是贴得不好导致偏差这么大,0.5g+1.5g就是2g了,需要加上0.5g的偏差,对应的MPU6050的寄存器为0x06-0x0B,写入进去就可以硬件校准了。应该是这样了,陀螺仪温飘也是写进0x13-0x18中。

zacy2011 发表于 2015-8-21 21:36:31

应该就是没校准了,估计是贴得不好导致偏差这么大,0.5g+1.5g就是2g了,需要加上0.5g的偏差,对应的MPU6050的寄存器为0x06-0x0B,写入进去就可以硬件校准了。应该是这样了,陀螺仪温飘也是写进0x13-0x18中。BGC云台的做法是一面或6面校准,一面应该就是当另两个轴的值最小时(可认为重力的分量都落在第三轴上)然后取其距离1g或-1g的差值作为偏差,6面的话应该就是取最大和最小的平均了。一般来说,z轴的偏差会比其他轴大,所以多数是只校正z轴的。个人见解,不喜勿喷。
页: [1]
查看完整版本: MPU6050中加速度计的校准