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

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

[复制链接]
xyc2690 发布时间:2015-1-29 16:52
本帖最后由 xyc2690 于 2015-1-29 17:09 编辑
& N# Z# X+ {  {* ^0 u7 u% p4 |  o! S2 ^. g+ M
1422516698921.jpg
* r4 F" \' L2 m8 b2 h" ?: m8 N( b: f
/ X) o; ?/ n; E6 U# [7 M3 d功能:DMP读取MPU6050四元数,转换成欧拉角。
, U* a) A% f4 h. |
8 L2 M# w. a8 c5 |" O引脚:5 ^9 p0 k6 [( J. R  W1 \
0 u& I7 f. z; Z% ~3 a( V- s- R
        MPU6050:
( {8 K7 }4 X# t                SCL-->PB8
8 u8 {) l2 ]; X/ j# w                SDA-->PB98 i: C, N. d1 n# f1 T! X
                ADO-->GND2 D8 h% d4 o8 P) V4 t% L' |

* h; I2 e9 n& a5 E, [' ]; }; T0 O; f        USART1: Tx PA9
4 f! c" j8 L1 J7 i9 k- L1 }6 R' K/ F! B
官方提供的DMP移植到Nucleo F072RB1 c- R* Y, v. Y; r/ s" T; C

- l" Q. @; l1 O5 J3 B) s+ G" e欧拉角:Roll Pitch Yaw3 f" a% E( n9 V$ X1 I# E8 k. \! v

# L) V- L+ M/ D3 C4 U6 l2s左右初始化建立时间。, a% E: k% p6 `. z) Z2 k1 }
8 L! J1 h( y5 G' r
Roll和Pitch比较稳定。静止时数据没有漂移。
; \  l" x9 a, L5 M& G) |& b3 N8 a
Yaw会漂移,MPU6050,6轴无法校正。需要用磁力传感器。
1 B/ i5 Q( P. A) E
8 g6 Q8 e% F& o# X/ \ QQ截图20150129170500.jpg
, Y( r/ w0 @/ h  S; ^2 l之前直接去读原始数据,读出三轴加速度和三轴角加速度,但是数据融合一直不好,要做平衡车的话用到俯仰角和一轴角加速度就行了,后来才发现用DMP处理好的数据更方便。网上有许多移植到STM32F103的,但是手头没有103的板子,加上准备学习用新的HAL库,于是折腾了2天移植到活动送的NucleoF072上,IIC比较关键,认真的做好时序之后会很省心。最后读出的四元数是Q30的,要除一下。# K8 n7 x; w) d9 j
QQ截图20150129145351.jpg
1 Q7 @( n6 B0 V- c0 r( t% X! oIIC驱动那边需要注意一下,6050官方库里的函数返回值,成功返回0,异常返回-1,-2 等。  一般写1表示成功,0表示失败。大家移植的时候注意一下。
- g& e  x9 z! B1 s8 X) W存在FIFO溢出的问题,具体在dmp_read_fifo()函数里的mpu_read_fifo_stream()的最后
3 f- n* E5 _4 i' h$ z: P7 H
  1. if (tmp[0] & BIT_FIFO_OVERFLOW)
    , }# {9 r- J1 e0 Y1 T6 c- V
  2. {3 U  T1 T* M& T! @4 Y: K' U
  3.   mpu_reset_fifo();
    + M$ P- _7 Z! C6 `
  4.   return -2;
    0 T2 T& V: ~1 r: Q
  5. }
复制代码
7 Y; c* v; N! j/ c5 Z2 d
暂时把它注释掉了,有人知道如何解决吗?
) x+ Q" P! `% L  S- O# p5 ]
8 |0 f' l$ I9 ]( h参加活动有NucleoF072rb的板子并且有MPU6050的朋友可以试一下
$ U. o1 }& N* t5 h4 E程序:% K- A, g! s0 b& ]3 l- H9 I
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 ; n% [& A+ r; @$ }0 b* y1 o
xyc2690 回答时间:2015-1-30 17:23:22
逍遥李 发表于 2015-1-30 07:49% e1 l$ w8 r/ @; G* Y* q
可是我手里只有那种TT电机,楼主选的是什么电机?
5 ?) S2 i8 U+ Y, ?8 }8 C$ R
也是用的减速电机,
0 K. M3 v, d, m6 @电机的话看参数:电流/扭矩常数、电压/转速常数) P2 m( ?. e1 x) \5 P+ s7 {& o
选力矩大一些的电机就行了。
逍遥李 回答时间:2015-1-31 14:18:28
xyc2690 发表于 2015-1-30 17:23! l- ^3 _- Y$ k! J
也是用的减速电机,$ s( S- }$ ^, _& o
电机的话看参数:电流/扭矩常数、电压/转速常数# h0 X, f) {* z3 g
选力矩大一些的电机就行了。 ...
  O0 S( _8 l& m
好的,多谢,回头做了还需要楼主多多指点!
沐紫 回答时间: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
9 Q1 K9 I) X: L. U果然有人搞MPU6050二轮车了!顶你啊楼主,我也想用nucleo弄一个二轮车,期待下次活动! ...

  k# u# p" p7 R' F电机好好选哈~
xyc2690 回答时间:2015-1-29 23:04:35
沐紫 发表于 2015-1-29 17:53
9 `  F8 }, J* {+ O谢谢!
. e7 C( I& ?4 ?, |! L
多谢版主的开发板
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
8 {; B1 J% f5 }# O电机好好选哈~
  k9 P" Y% u# V! x
可是我手里只有那种TT电机,楼主选的是什么电机?
埃斯提爱慕 回答时间:2015-1-30 11:50:50
提示: 作者被禁止或删除 内容自动屏蔽
wu1169668869 回答时间:2015-1-30 12:57:36
QianFan 发表于 2015-1-29 20:07
# ~9 l; V: o/ }% y话说那一坨焊锡挺值钱的。。。

) u% \- @6 ^; Q; M5 g' I+ E, b好诡异的关注点哈哈
123下一页

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版