你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【Nucleo】F072RB DMP移植 ----六轴MPU6050 欧拉角  

[复制链接]
xyc2690 发布时间:2015-1-29 16:52
本帖最后由 xyc2690 于 2015-1-29 17:09 编辑
" t2 h7 r* S3 c1 r9 u, z$ I6 b! r) P# A( b2 j3 V' I$ D- _
1422516698921.jpg
: M& }  m0 x, z; I1 u2 @
, c" r: u) ?7 W$ _0 n功能:DMP读取MPU6050四元数,转换成欧拉角。8 V+ j8 k& y& D2 l

* n! T0 D, ]4 s! m引脚:! }( T: a3 M! Q; f/ P; y& n. Y

+ D; {, \6 J+ T; m9 A# f; a$ {! S        MPU6050:
5 c/ J0 g. y5 I( g                SCL-->PB8, h0 X2 a0 o) N: K7 ~; Y2 e( J
                SDA-->PB9% m* n" n# s% K
                ADO-->GND8 L4 T- [" j3 X/ C3 f( X6 I7 y9 T$ b& F8 l
3 j# w# P# p- X% [
        USART1: Tx PA9
( p0 b9 R$ x5 F5 O. f
# K5 D  F) T' s官方提供的DMP移植到Nucleo F072RB; F( m' a; a3 r- T8 q* E6 V" X1 c

( a; h+ X- X/ D欧拉角:Roll Pitch Yaw- `) U: g. @# ^8 X

8 Z0 H- f. f' x- `& k) F$ p( l2s左右初始化建立时间。
5 B% q9 J1 p% z9 }4 m
. ^6 N. m3 l8 K' ARoll和Pitch比较稳定。静止时数据没有漂移。
& J# K5 N% q! ^/ x/ ~3 d# S- I- S5 `& A+ `; f
Yaw会漂移,MPU6050,6轴无法校正。需要用磁力传感器。$ A0 s" B0 H/ `

0 C: }* E8 p% |9 W8 U QQ截图20150129170500.jpg
" u$ s% ]( V% r3 B之前直接去读原始数据,读出三轴加速度和三轴角加速度,但是数据融合一直不好,要做平衡车的话用到俯仰角和一轴角加速度就行了,后来才发现用DMP处理好的数据更方便。网上有许多移植到STM32F103的,但是手头没有103的板子,加上准备学习用新的HAL库,于是折腾了2天移植到活动送的NucleoF072上,IIC比较关键,认真的做好时序之后会很省心。最后读出的四元数是Q30的,要除一下。
. y' A' H: `% p$ m  E% x) C QQ截图20150129145351.jpg
5 e. M; N' ?  l% vIIC驱动那边需要注意一下,6050官方库里的函数返回值,成功返回0,异常返回-1,-2 等。  一般写1表示成功,0表示失败。大家移植的时候注意一下。
: b9 O9 X/ Z' x# ~% g9 ]- ~存在FIFO溢出的问题,具体在dmp_read_fifo()函数里的mpu_read_fifo_stream()的最后
9 r( W9 I2 i" ]8 ~- P" [) W  s9 ?
  1. if (tmp[0] & BIT_FIFO_OVERFLOW) 9 f1 E1 l4 g  |. v
  2. {- U# v% h0 i1 g& I2 R
  3.   mpu_reset_fifo();
    1 ~0 y0 X( T6 r; Z# t. x+ p
  4.   return -2;
    ! @) P% J7 [9 ^2 b4 X
  5. }
复制代码
0 _. O8 c7 ^: I4 \8 ~& }
暂时把它注释掉了,有人知道如何解决吗?
. p  n( x9 w' x4 x2 I( A* \% \6 K- n4 p9 J7 d- n0 ?8 g3 q$ b
参加活动有NucleoF072rb的板子并且有MPU6050的朋友可以试一下. V5 b: Y' s& a. o
程序:
$ v6 u) h$ v1 t# O2 d2 g; `% g* G4 v Nocleo_soft_i2c_test1 - 移植失败1失败2失败3成功4.zip (4.07 MB, 下载次数: 2995)
赞 收藏 3 评论38 发布时间:2015-1-29 16:52

举报

38个回答
党国特派员 回答时间:2015-1-31 14:04:03
学习了。 nothing.png nothing.png nothing.png nothing.png nothing.png nothing.png nothing.png nothing.png nothing.png nothing.png $ w5 l5 F' v. ~3 H
xyc2690 回答时间:2015-1-30 17:23:22
逍遥李 发表于 2015-1-30 07:49+ F2 w1 O: Y* U
可是我手里只有那种TT电机,楼主选的是什么电机?

! O/ E% i) X* l9 C' ~) g* d5 X8 |7 T也是用的减速电机,; l; H( w0 X- ?- R. o! |8 m
电机的话看参数:电流/扭矩常数、电压/转速常数7 U% c! b' S- d; E5 e# s* {8 M
选力矩大一些的电机就行了。
逍遥李 回答时间:2015-1-31 14:18:28
xyc2690 发表于 2015-1-30 17:23' Z) |$ r, y/ r, e6 o
也是用的减速电机,
9 Q4 @. @5 o; v+ w! x" g) m电机的话看参数:电流/扭矩常数、电压/转速常数
: {& b  w! ^4 g6 u选力矩大一些的电机就行了。 ...

1 B+ @. {0 y# j  K好的,多谢,回头做了还需要楼主多多指点!
沐紫 回答时间:2015-1-29 17:53:38
谢谢!
逍遥李 回答时间:2015-1-29 18:40:44
果然有人搞MPU6050二轮车了!顶你啊楼主,我也想用nucleo弄一个二轮车,期待下次活动!
qianfan 回答时间:2015-1-29 20:07:46
话说那一坨焊锡挺值钱的。。。
万里-363223 回答时间:2015-1-29 21:31:16
好东西,谢谢分享.......
lkl0305 回答时间:2015-1-29 21:34:44
楼主辛苦
zhangdaijin 回答时间:2015-1-29 21:57:29
moyanming2013 回答时间:2015-1-29 22:31:48
很高大。。。。。。
xyc2690 回答时间:2015-1-29 23:03:31
逍遥李 发表于 2015-1-29 18:40
- [1 E% R& N- S- X" v果然有人搞MPU6050二轮车了!顶你啊楼主,我也想用nucleo弄一个二轮车,期待下次活动! ...
; |1 o: q) ]$ A; |( N
电机好好选哈~
xyc2690 回答时间:2015-1-29 23:04:35
沐紫 发表于 2015-1-29 17:53' Q8 W' `5 z* x; V7 h  C5 k. I
谢谢!
; [  o9 e8 u6 @2 w( t$ r* x, q. H
多谢版主的开发板
MouseCat 回答时间:2015-1-29 23:17:52
MARK围观学习了
小蚂蚁快溜跑 回答时间:2015-1-29 23:47:23
学习。。电脑y400.。
逍遥李 回答时间:2015-1-30 07:49:19
xyc2690 发表于 2015-1-29 23:03: R, Z! O% ]3 @+ f" n  C4 T
电机好好选哈~
: e/ r! o) {. L0 M  V
可是我手里只有那种TT电机,楼主选的是什么电机?
埃斯提爱慕 回答时间:2015-1-30 11:50:50
提示: 作者被禁止或删除 内容自动屏蔽
wu1169668869 回答时间:2015-1-30 12:57:36
QianFan 发表于 2015-1-29 20:07. b) a. a3 K; E) L+ i) C8 Q- x' k- M! U
话说那一坨焊锡挺值钱的。。。
+ B3 p: B2 A9 m" ?# _
好诡异的关注点哈哈
123下一页

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版