OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 43659|回复: 72

MPU6050 DMP直接读出四元数,然后计算出欧拉角 适用mini板

[复制链接]

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
发表于 2014-3-25 15:38:24 | 显示全部楼层 |阅读模式
    经过移植,终于可以在MINI板上运行了,买的MPU6050模块,AD0直接接开发板GND,SCL接开发板PC12,SDA接开发板PC11,VCC接开发板+5V,GND接开发板GND,其它的不接,上位机软件附件里面也有

MPU6050空中鼠标工程.rar

8.54 MB, 下载次数: 44366

合肥-文盲
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

85

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2013-11-24
在线时间
0 小时
发表于 2014-3-25 19:21:21 | 显示全部楼层
回复【楼主位】合肥-文盲:
---------------------------------
NICE!
学一天不会,我学两天;再不会,再两天·········
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-3-25 21:22:48 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
 楼主| 发表于 2014-3-26 09:08:22 | 显示全部楼层
回复【2楼】正点妹子:
---------------------------------
里面的roll和yaw输出的角度反了,也不知道是不是陀螺仪轴向设置反了,昨晚我直接在计算的roll和yaw结果前面加了个负号,然后就正确了
合肥-文盲
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
 楼主| 发表于 2014-3-26 09:08:58 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
还有很多待改进,期待原子哥出教程呀
合肥-文盲
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
 楼主| 发表于 2014-4-1 10:55:20 | 显示全部楼层
Yaw晃动几下就不准了,郁闷,另外2个很准,找不到原因呀
合肥-文盲
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-4-1 22:01:49 | 显示全部楼层
回复【5楼】合肥-文盲:
---------------------------------
没用过这个,呵呵。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2013-9-2
在线时间
3 小时
发表于 2014-4-25 16:29:20 | 显示全部楼层
楼主上位机代码怎么加的
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
 楼主| 发表于 2014-4-28 09:59:28 | 显示全部楼层
协议吗??
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2012-9-25
在线时间
1 小时
发表于 2014-5-16 11:33:19 | 显示全部楼层
回复【4楼】合肥-文盲:
---------------------------------请问楼上 回复【6楼】合肥-文盲:
--------------------------------
请问楼上Yaw   不稳定如何解决的?
回复 支持 反对

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
发表于 2014-5-16 11:51:41 | 显示全部楼层
回复【6楼】合肥-文盲:
---------------------------------
我在一篇帖子上看到说,芯片对yaw没有校准。
永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
 楼主| 发表于 2014-5-16 16:33:03 | 显示全部楼层
回复【11楼】科科1987:
----------------------------
是的  要磁力计校正
合肥-文盲
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
 楼主| 发表于 2014-5-16 16:33:20 | 显示全部楼层
回复【10楼】柴桑:
---------------------------------
用磁力计校正
合肥-文盲
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2012-9-25
在线时间
1 小时
发表于 2014-5-16 21:35:10 | 显示全部楼层
回复【13楼】合肥-文盲:
---------------------------------哦哦   只能拿磁力计矫正?为啥啊!
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
 楼主| 发表于 2014-5-16 23:48:40 | 显示全部楼层
回复【14楼】柴桑:
---------------------------------
因为加速度计只能矫正roll和pitch,实际上不管自己操作还是DMP,他也只矫正了roll、pitch,加速度计就这能力,对于yaw,加速度计无能为力
合肥-文盲
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2014-5-17
在线时间
0 小时
发表于 2014-5-17 08:40:19 | 显示全部楼层
回复【4楼】合肥-文盲:
---------------------------------
楼主,我想用1602显示,可是全是0,我的II2C设置如下;
//IO方向设置
#define SDA_IN()  {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=8<<28;} 
#define SDA_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=3<<28;}

//IO操作函数  
#define IIC_SCL    Bout(6) //SCL
#define IIC_SDA    Bout(7) //SDA  
#define READ_SDA   Bin(7)  //输入SDA 



void IIC_Init(void)
{      
GPIO_InitTypeDef GPIO_InitStructure;
//RCC->APB2ENR|=1<<4;//先使能外设IO ORTC时钟 
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE );
   
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;   //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
 
IIC_SCL=1;
IIC_SDA=1;
}


谢谢
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2014-5-17
在线时间
0 小时
发表于 2014-5-17 08:43:32 | 显示全部楼层
下面是我的工程,改正了上面的

//IO操作函数  
#define IIC_SCL    Bout(6) //SCL
#define IIC_SDA    Bout(7) //SDA  
#define READ_SDA   PBin(7)  //输入SDA 

还是000

MPU6050自平衡.rar

8.76 MB, 下载次数: 14728

回复 支持 反对

使用道具 举报

13

主题

79

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
359
金钱
359
注册时间
2013-9-24
在线时间
74 小时
发表于 2014-5-24 13:35:23 | 显示全部楼层
是不是通过dmp读出来的roll和pitch,就不用卡尔曼滤波只是简单地滤一下波就可以了,可以直接拿来用
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
 楼主| 发表于 2014-5-26 09:09:53 | 显示全部楼层
回复【18楼】↗:
---------------------------------
DMP只能读出原始数据和四元数,欧拉角roll和pitch需要自己根据三角函数计算出来,DMP读出来的四元数计算出欧拉角还是很准的
合肥-文盲
回复 支持 反对

使用道具 举报

11

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
341
金钱
341
注册时间
2014-6-16
在线时间
43 小时
发表于 2014-6-20 01:54:29 | 显示全部楼层
学习学习!谢谢分享!
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
 楼主| 发表于 2014-6-20 10:23:03 | 显示全部楼层
回复【20楼】RAM_ok:
---------------------------------
哈哈  可以深入研究研究
合肥-文盲
回复 支持 反对

使用道具 举报

8

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2013-11-6
在线时间
7 小时
发表于 2014-7-24 14:31:12 | 显示全部楼层
回复【21楼】合肥-文盲:
---------------------------------
楼主上位机怎么连的?mini板通过USB线下载程序,串口连电脑也是那根线吗?不用外接串口线连电脑?打开上位机,端口设置正确,打开端口没反应啊,MPU6050是根据楼主说的连的,上位机还需要配置什么吗?
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
 楼主| 发表于 2014-7-24 16:05:05 | 显示全部楼层
回复【22楼】火焰山:
---------------------------------就那根串口线,总共也就一根串口线,设置好串口号、波特率就行,你的MPU6050连接正确吧?
合肥-文盲
回复 支持 反对

使用道具 举报

8

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2013-11-6
在线时间
7 小时
发表于 2014-7-24 17:05:21 | 显示全部楼层



线检查都连对了,串口、波特率都设置了,打开没有数据
回复 支持 反对

使用道具 举报

8

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2013-11-6
在线时间
7 小时
发表于 2014-7-24 17:12:49 | 显示全部楼层
回复【23楼】合肥-文盲:
---------------------------------
楼主软件显示的姿态解算和上传帧率是什么样的?我的感觉不正常啊
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
 楼主| 发表于 2014-7-30 10:54:55 | 显示全部楼层
回复【25楼】火焰山:
---------------------------------
好久没玩这个了
合肥-文盲
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
 楼主| 发表于 2014-7-30 10:55:54 | 显示全部楼层
回复【25楼】火焰山:
---------------------------------
你的MPU6050模块上面的电源指示灯亮了吗
合肥-文盲
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2014-8-5
在线时间
0 小时
发表于 2014-8-9 14:06:58 | 显示全部楼层
楼主,为何用dmp fifo 读出的accel老是飞的很厉害啊,感觉全是噪点啊,楼主注意到这个问题了吗?
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
 楼主| 发表于 2014-8-15 13:08:38 | 显示全部楼层
回复【28楼】湖北佬:
---------------------------------
没用FIFO读原始数据,直接去读过寄存器数据,acc有点跳动,但整体还是可以的
合肥-文盲
回复 支持 反对

使用道具 举报

12

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2014-7-11
在线时间
0 小时
发表于 2014-8-19 18:42:41 | 显示全部楼层
用这个来推mpu9250是否可以?
回复 支持 反对

使用道具 举报

15

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
285
金钱
285
注册时间
2014-2-17
在线时间
39 小时
发表于 2014-9-25 15:59:12 | 显示全部楼层
回复【29楼】合肥-文盲:
---------------------------------
为啥我的读出来数据不动呢,好奇怪啊
花自飘零水自流,生命不息,奋斗不止
回复 支持 反对

使用道具 举报

15

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
285
金钱
285
注册时间
2014-2-17
在线时间
39 小时
发表于 2014-9-25 16:21:36 | 显示全部楼层
回复【29楼】合肥-文盲:
---------------------------------
你好,我使用的是战舰的板子,对你的程序移植,看了下,只有LED还有模拟IIC的端口进行改变,程序编译成功,但是为什么跟上位机进行通信,三个 值读出来的都是0,而且感觉都不变化呢?求大神验证,讲解。
花自飘零水自流,生命不息,奋斗不止
回复 支持 反对

使用道具 举报

15

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
285
金钱
285
注册时间
2014-2-17
在线时间
39 小时
发表于 2014-9-25 16:29:22 | 显示全部楼层
战舰板的工程,请求讲解,我这样移植有什么地方有错误没有?为什么会没数据呢???  我已经用Printf函数进行过简单的测试了,串口基本通信是可以的

DMP计算欧拉角战舰板移植.rar

8.52 MB, 下载次数: 3808

花自飘零水自流,生命不息,奋斗不止
回复 支持 反对

使用道具 举报

15

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
285
金钱
285
注册时间
2014-2-17
在线时间
39 小时
发表于 2014-9-26 09:10:09 | 显示全部楼层
回复【33楼】开荤的唐僧:
---------------------------------
这个我自己已经发现是IIC初始化过程不对了,没配置好端口。但是我的没事数据线,只有3D显示,好纠结中
花自飘零水自流,生命不息,奋斗不止
回复 支持 反对

使用道具 举报

4

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2014-4-24
在线时间
0 小时
发表于 2014-10-27 18:57:40 | 显示全部楼层
回复【4楼】合肥-文盲:
---------------------------------
LZ  这个上位机程序怎么加啊
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2014-12-3
在线时间
0 小时
发表于 2014-12-9 16:20:47 | 显示全部楼层
软件不会用,帮忙啊
抓住前进的感觉才能走的更远
回复 支持 反对

使用道具 举报

14

主题

225

帖子

3

精华

高级会员

Rank: 4

积分
623
金钱
623
注册时间
2014-7-8
在线时间
26 小时
发表于 2014-12-9 21:43:26 | 显示全部楼层
不进行数据融合,应该是不行的,精度低漂移严重。
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2014-12-1
在线时间
0 小时
发表于 2015-1-8 16:01:39 | 显示全部楼层
楼主,感谢你的程序,我调了两天没调通的DMP,用了你的程序立刻好了。
有一点我不太明白,为什么模拟IIC的引脚配置是推挽输出,不应该是开漏输出吗?如果是推挽输出的话,在这根主线上不就没法再挂载其他的IIC器件了吗?

回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2014-12-1
在线时间
0 小时
发表于 2015-1-8 16:42:22 | 显示全部楼层
另外,请教楼主,我设置的端口是com7、波特率是9600。为什么我的板子一连接上位机,打开端口就会是这种错误?





如果用另一个上位机的话,则不提示错误,而是卡死,必须退出。



回复 支持 反对

使用道具 举报

13

主题

225

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
289
金钱
289
注册时间
2013-11-12
在线时间
29 小时
发表于 2015-1-8 23:04:31 | 显示全部楼层
回复【24楼】火焰山:
---------------------------------
这个上位机是不是只能在xp上用?
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
 楼主| 发表于 2015-1-9 16:00:03 | 显示全部楼层
回复【40楼】jiushibuzhidao:
---------------------------------
WINDOW 7也可以
合肥-文盲
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2014-12-1
在线时间
0 小时
发表于 2015-1-9 20:09:38 | 显示全部楼层
你好,为什么我连接上位机尝试通信,会出现这种情况:

波特率和端口设置都没有问题,你遇到过同样的问题吗?有什么可以尝试的解决方式?
回复 支持 反对

使用道具 举报

13

主题

225

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
289
金钱
289
注册时间
2013-11-12
在线时间
29 小时
发表于 2015-1-11 18:10:23 | 显示全部楼层
回复【41楼】合肥-文盲:
---------------------------------
我在win7上好像只能看波形一样,3D那个不能显示。
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
 楼主| 发表于 2015-1-12 09:07:41 | 显示全部楼层
回复【43楼】jiushibuzhidao:
---------------------------------
我以前在win7上面也试过是可以的呀,我家的笔记本就是win7的
合肥-文盲
回复 支持 反对

使用道具 举报

20

主题

89

帖子

2

精华

高级会员

Rank: 4

积分
576
金钱
576
注册时间
2014-8-3
在线时间
18 小时
发表于 2015-1-12 13:56:21 | 显示全部楼层
顶一个!感谢分享
回复 支持 反对

使用道具 举报

2

主题

13

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2015-3-13
在线时间
1 小时
发表于 2015-4-13 22:06:11 | 显示全部楼层
回复【24楼】火焰山:
---------------------------------
我也是没数据
回复 支持 反对

使用道具 举报

2

主题

13

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2015-3-13
在线时间
1 小时
发表于 2015-4-14 10:19:45 | 显示全部楼层
回复【46楼】stm32-zg:
---------------------------------
3d怎么用啊
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2014-8-20
在线时间
1 小时
发表于 2015-4-14 18:57:31 | 显示全部楼层
回复【44楼】合肥-文盲:
---------------------------------
楼主你的迷你板子怎么是RB的
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
 楼主| 发表于 2015-4-14 22:41:45 | 显示全部楼层
回复【48楼】飓风:
---------------------------------
mini板早期版本是RB
合肥-文盲
回复 支持 反对

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2013-7-13
在线时间
7 小时
发表于 2015-4-16 09:31:34 | 显示全部楼层
楼主  我用了你的程序  不知道为什么只有欧拉角  而没有加速度和陀螺仪的数据

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 03:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表