打印

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

[复制链接]
24309|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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是估计的,可不可以用调试程序测出两次调用函数时的时间间隔?
黄色是加速度计的,蓝色是陀螺仪的。






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 | 只看该作者
直接有陀螺仪积分可以算角度,但是时间长了会漂,还有你起码要知道每次读取的时间,要不然积分出来的数值肯定就不对了。

使用特权

评论回复
5
huster_tjs|  楼主 | 2014-3-20 15:28 | 只看该作者
烈火狂龙 发表于 2014-3-20 14:35
直接有陀螺仪积分可以算角度,但是时间长了会漂,还有你起码要知道每次读取的时间,要不然积分出来的数值肯 ...

每次读取的时间怎么看?

使用特权

评论回复
6
烈火狂龙| | 2014-3-20 15:58 | 只看该作者
用定时器定时去读或用systick去算

使用特权

评论回复
7
huster_tjs|  楼主 | 2014-3-20 16:34 | 只看该作者
烈火狂龙 发表于 2014-3-20 15:58
用定时器定时去读或用systick去算

好,,谢谢

使用特权

评论回复
8
网络孤客| | 2014-3-22 08:36 | 只看该作者
关注,学习!

使用特权

评论回复
9
290399937| | 2014-3-28 17:57 | 只看该作者
read_gyro_y= GetData(GYRO_YOUT_H)+Gyro_y_offset;//这里我觉得是减号!
还有16.4和0.05可以自己小算一下!少一次浮点运算

使用特权

评论回复
10
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;因为当我按在桌子上的时候它基本都是零。但是拿在手里静止它却只往上面漂,不知道原因在哪?

下面两个建议,我试试看,谢谢你的回答!

使用特权

评论回复
11
dreamsaey2008| | 2014-4-6 12:21 | 只看该作者
单纯的陀螺仪或加速度计得出的倾角都不准,最好是将两者融合得出倾角

使用特权

评论回复
12
001zhang001| | 2014-4-18 15:51 | 只看该作者
有没有大神调出来的

使用特权

评论回复
13
易天无尘| | 2014-4-23 10:29 | 只看该作者
大神,我也在做用mpu6050算角度,用的是STC89C52单片机和6050通信,能读出角加速度和角速度的值,打算用积分把角度算出来,在1602液晶显示屏上显示出来,现在遇到麻烦了,请问你做成功了吗?你能帮帮我吗?谢谢了!!!!

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
001zhang001 + 1 我也要做这个,你做出来没、?.
14
001zhang001| | 2014-4-23 11:01 | 只看该作者
我也要这么 做,你做出来没?

使用特权

评论回复
15
xuyan021| | 2014-5-16 22:03 | 只看该作者
是陀螺仪是个积分器件,会累加误差的。

使用特权

评论回复
16
759646015| | 2014-7-23 15:48 | 只看该作者
001zhang001 发表于 2014-4-23 11:01
我也要这么 做,你做出来没?

加油哦,一起讨论加我,QQ号=用户名

使用特权

评论回复
17
伊泽瑞拉| | 2014-7-28 22:43 | 只看该作者
MARK

使用特权

评论回复
18
xukaihp| | 2014-7-30 13:25 | 只看该作者
互补滤波

使用特权

评论回复
19
下次| | 2015-1-20 15:43 | 只看该作者
易天无尘 发表于 2014-4-23 10:29
大神,我也在做用mpu6050算角度,用的是STC89C52单片机和6050通信,能读出角加速度和角速度的值,打算用积 ...

你做出来没,我也要做这个,做出来了同分享

使用特权

评论回复
20
icegoat| | 2015-1-22 12:06 | 只看该作者
dreamsaey2008 发表于 2014-4-6 12:21
单纯的陀螺仪或加速度计得出的倾角都不准,最好是将两者融合得出倾角

你说的很有道理,但是如何融合?有没有更详细的信息?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

31

帖子

0

粉丝