mpu6050的陀螺仪的角速度换成角度算法

[复制链接]
25911|20
 楼主| huster_tjs 发表于 2014-3-18 13:59 | 显示全部楼层 |阅读模式
本帖最后由 huster_tjs 于 2014-3-18 14:09 编辑

下面是我的读取陀螺仪数据的程序
/************************陀螺仪计算Y轴的角速度***************/
float Read_Gry(void)
{
   static float angleG;
   int read_gyro_y;
   float Angle_gyro;
   int Gyro_y_offset=0x00;                             
                                       //角速度量程见配置   本处使用2000 deg/s。scal系数为16.4 LSB

        read_gyro_y= GetData(GYRO_YOUT_H)+Gyro_y_offset; //静止时角速度Y轴输出            //Gyro_y_offset计算方法gyro静止时候N多个数据的算术均值        
        Angle_gyro= -(float)read_gyro_y/16.4; //去除零点偏移,计算角速度值,负号为方向处理
        angleG+=Angle_gyro*0.05;                          //角速度积分
        return angleG;
}

下面是测得的图像
怎么回事这个样子呢?,,,程序有什么问题没有?
我不知道时间怎么确定,,那个0.05是估计的,可不可以用调试程序测出两次调用函数时的时间间隔?
黄色是加速度计的,蓝色是陀螺仪的。
360桌面截图20140318133554.png





file:///C:/Users/Administrator/Desktop/360桌面截图20140318133554.png
wang168506 发表于 2014-3-18 20:50 | 显示全部楼层
能加下QQ嘛?想进一步了解下这块!
 楼主| huster_tjs 发表于 2014-3-18 20:56 | 显示全部楼层
本帖最后由 huster_tjs 于 2015-3-27 12:54 编辑
wang168506 发表于 2014-3-18 20:50
能加下QQ嘛?想进一步了解下这块!

我也是菜鸟:lol
烈火狂龙 发表于 2014-3-20 14:35 | 显示全部楼层
直接有陀螺仪积分可以算角度,但是时间长了会漂,还有你起码要知道每次读取的时间,要不然积分出来的数值肯定就不对了。
 楼主| huster_tjs 发表于 2014-3-20 15:28 | 显示全部楼层
烈火狂龙 发表于 2014-3-20 14:35
直接有陀螺仪积分可以算角度,但是时间长了会漂,还有你起码要知道每次读取的时间,要不然积分出来的数值肯 ...

每次读取的时间怎么看?
烈火狂龙 发表于 2014-3-20 15:58 | 显示全部楼层
用定时器定时去读或用systick去算
 楼主| huster_tjs 发表于 2014-3-20 16:34 | 显示全部楼层
烈火狂龙 发表于 2014-3-20 15:58
用定时器定时去读或用systick去算

好,,谢谢
网络孤客 发表于 2014-3-22 08:36 | 显示全部楼层
关注,学习!
290399937 发表于 2014-3-28 17:57 来自手机 | 显示全部楼层
read_gyro_y= GetData(GYRO_YOUT_H)+Gyro_y_offset;//这里我觉得是减号!
还有16.4和0.05可以自己小算一下!少一次浮点运算
 楼主| huster_tjs 发表于 2014-3-29 12:39 | 显示全部楼层
290399937 发表于 2014-3-28 17:57
read_gyro_y= GetData(GYRO_YOUT_H)+Gyro_y_offset;//这里我觉得是减号!
还有16.4和0.05可以自己小算一下 ...

read_gyro_y= GetData(GYRO_YOUT_H)+Gyro_y_offset;//这个我将Gyro_y_offset设置成了0x00;因为当我按在桌子上的时候它基本都是零。但是拿在手里静止它却只往上面漂,不知道原因在哪?

下面两个建议,我试试看,谢谢你的回答!
dreamsaey2008 发表于 2014-4-6 12:21 | 显示全部楼层
单纯的陀螺仪或加速度计得出的倾角都不准,最好是将两者融合得出倾角
001zhang001 发表于 2014-4-18 15:51 | 显示全部楼层
有没有大神调出来的
易天无尘 发表于 2014-4-23 10:29 | 显示全部楼层
大神,我也在做用mpu6050算角度,用的是STC89C52单片机和6050通信,能读出角加速度和角速度的值,打算用积分把角度算出来,在1602液晶显示屏上显示出来,现在遇到麻烦了,请问你做成功了吗?你能帮帮我吗?谢谢了!!!!

评分

参与人数 1威望 +1 收起 理由
001zhang001 + 1 我也要做这个,你做出来没、?.

查看全部评分

001zhang001 发表于 2014-4-23 11:01 | 显示全部楼层
我也要这么 做,你做出来没?
xuyan021 发表于 2014-5-16 22:03 | 显示全部楼层
是陀螺仪是个积分器件,会累加误差的。
759646015 发表于 2014-7-23 15:48 | 显示全部楼层
001zhang001 发表于 2014-4-23 11:01
我也要这么 做,你做出来没?

加油哦,一起讨论加我,QQ号=用户名
伊泽瑞拉 发表于 2014-7-28 22:43 | 显示全部楼层
xukaihp 发表于 2014-7-30 13:25 | 显示全部楼层
互补滤波
下次 发表于 2015-1-20 15:43 | 显示全部楼层
易天无尘 发表于 2014-4-23 10:29
大神,我也在做用mpu6050算角度,用的是STC89C52单片机和6050通信,能读出角加速度和角速度的值,打算用积 ...

你做出来没,我也要做这个,做出来了同分享
icegoat 发表于 2015-1-22 12:06 | 显示全部楼层
dreamsaey2008 发表于 2014-4-6 12:21
单纯的陀螺仪或加速度计得出的倾角都不准,最好是将两者融合得出倾角

你说的很有道理,但是如何融合?有没有更详细的信息?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

31

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部