新手上路,MPU6050的DMP问题
潜水看了一些帖子,目前,我已经能读到MPU6050普通的加速度,陀螺仪,温度这样的值,
但看了DMP的效果,确实很诱人,有几个疑问,希望前人搞过的解答一下了,
1)怎样开启DMP,是配置某个寄存器使能一下呢,还是要给MPU6050刷新固件?(需不需要每次上电都刷?)
2)除了配置寄存器,是不是还要移植库,对平台有没有依赖?(目前网上流传的代码有AVR和SMT32的,能不能移植到cortex-M?)
3)开启DMP后,用来做四轴,还需要哪些读取哪些值?
谢谢大家了。
Gif
用什么软件做的 本帖最后由 aki_studio 于 2013-6-8 20:56 编辑
rei1984 发表于 2013-6-8 20:46 static/image/common/back.gif
Gif
用什么软件做的
貌似新手不能发外链,你搜一下 coocox MPU6050 driver
你的进度怎么样了?想找个进度差不多的人交流,大家一起解决遇到的问题 http://www.amobbs.com/thread-5528472-1-1.html
建议楼主看看这篇帖子 wscjun 发表于 2013-6-8 21:17 static/image/common/back.gif
http://www.amobbs.com/thread-5528472-1-1.html
建议楼主看看这篇帖子
多谢,我潜心看看,能解释上面的疑问,我就在这里跟帖给大家交代下过程。 使用DMP,那个FSYNC 引脚要用到吗? 不清楚哦,我在试编译那个帖子提供的代码,很容易就可以编译通过,
跟了下代码
dmp_load_motion_driver_firmware(..)
mpu_load_firmware(..)
mpu_write_mem(..)
mpu_read_mem(..)
memcmp(..)失败在这一行了
...
看功能看起来像是我提的第一个疑问:1)是不是要给MPU6050刷新固件?
是先写,后读,再比较,却在这里失败了
你使用stm32读6050的数据么?能把程序发给我一份么?谢谢啦,779331420@qq.com 马学家 发表于 2013-6-9 21:57 static/image/common/back.gif
你使用stm32读6050的数据么?能把程序发给我一份么?谢谢啦,
用的这个帖子的代码
http://www.amobbs.com/thread-5528472-1-1.html
貌似是MSP430平台的,默认编译时会提示遇到错误,
#errorWhich gyro are you using? Define MPUxxxx in your compiler options.
加上MPU6050 和 (EMPL_TARGET_MSP430或MOTION_DRIVER_TARGET_MSP430) 这两个宏就可以编译过了
我也刚开始看,这个帖子当是笔记吧,遇到的问题将会记录在这里
现在将I2C的读写都打印出来,
>>>>> start
mpu_i2c_write : 6b --> 80
mpu_i2c_write : 6b --> 00
mpu_i2c_read: 06 <-- 00 5c ff 9b 05 58
mpu_i2c_write : 1b --> 18
mpu_i2c_write : 1c --> 00
mpu_i2c_write : 1a --> 03
mpu_i2c_write : 19 --> 13
mpu_i2c_write : 1a --> 04
mpu_i2c_write : 38 --> 00
mpu_i2c_read: 6a <-- 00
mpu_i2c_write : 6a --> 20
mpu_i2c_write : 37 --> 80
mpu_i2c_write : 6b --> 40
mpu_i2c_write : 6c --> 3f
mpu_i2c_write : 6b --> 01
mpu_i2c_write : 6c --> 00
mpu_i2c_write : 38 --> 01
mpu_i2c_write : 38 --> 00
mpu_i2c_write : 23 --> 00
mpu_i2c_write : 6a --> 00
mpu_i2c_write : 6a --> 04
mpu_i2c_write : 6a --> 40
mpu_i2c_write : 38 --> 01
mpu_i2c_write : 23 --> 78
mpu_i2c_write : 19 --> 09
mpu_i2c_write : 1a --> 03
mpu_write_mem..
mpu_i2c_write : 6d --> 00 00
mpu_i2c_write : 6f --> 00 00 70 00 00 00 00 24 00 00 00 02 00 03 00 00
mpu_read_mem..
mpu_i2c_write : 6d --> 00 00
mpu_i2c_read: 6f <-- 00 2b fd e9 7c d6 f3 d3 3d ff 2f 89 2e ad ff cf
memcmp..
dmp_load_motion_driver_firmware: -2 {:mad:}
... ...
先把代码跑起来再慢慢理解了 上面的dmp_load_motion_driver_firmware问题确认为i2c驱动没写好,
支持一次性写16字节之后,就pass了。明天再继续{:lol:} aki_studio 发表于 2013-6-10 01:12 static/image/common/back.gif
上面的dmp_load_motion_driver_firmware问题确认为i2c驱动没写好,
支持一次性写16字节之后,就pass了。明 ...
我刚学stm32,大二的,楼主也是大学生吧 本帖最后由 aki_studio 于 2013-6-10 19:54 编辑
回楼上,楼主已经工作了(原来是学物理的,仅懂一点电子,对控制理论一窍不通)
本帖告一段落,开启DMP读取欧拉角和四元数OK。
之前所提的三个疑问解答如下:
1)参照lotsbiss的帖子,需要给mpu6050刷新固件(见dmp_load_motion_driver_firmware函数)
2)移植mpu的运动库,没有平台依赖性(但是会用到浮点运算,比较烂的CPU就不要考虑了)
3)可以通过运动库读取到欧拉角和四元数(暂时不知道怎么用到PID上)
下面将继续学习PID,
特别录制了一段实际效果,向 lotsbiss 和 wscjun 致谢,这是我正在做的四轴控制板,多谢大家。
新手上路啊,顶一下 新手刚上路
大三学生 学发动机的
完全不懂电子。。。
也想自己做个四轴
LZ给点指点吧
现在还不知道从哪里入手 aki_studio 发表于 2013-6-10 19:44 static/image/common/back.gif
回楼上,楼主已经工作了(原来是学物理的,仅懂一点电子,对控制理论一窍不通)
本帖告一段落,开启DMP读取欧 ...
LZ
gif里那个测试软件什么啊?能共享么? reAper07 发表于 2013-6-11 14:27 static/image/common/back.gif
LZ
gif里那个测试软件什么啊?能共享么?
软件用vc写的,私有软件,
是这样实现的:实时解析下位机传上来的欧拉角(xyz轴的旋角),然后用openGL的glRotatef(...)对十字架做旋转,就完成了(openGL俺也只会些皮毛)
另外,
无刷四轴真危险,昨天给朋友演示一下就打坏了3个浆,这两天要淘宝新的浆,只看资料不调代码了
PID要怎么调??
哪位搞过的,介绍些比较好的帖子来看啊。。。。(表示在学校时,连PID都没听过,现在看的是稀里糊涂) 新手上路,顶一个! 问一下,欧拉角怎么读出来的,在文件上都没看到具体的操作。 我也一直卡在dmp_load_motion_driver_firmware(..),返回-2.楼主到底是怎么解决的? 高手,学习。。。。 mark。。。。。。 aki_studio 发表于 2013-6-12 07:44 static/image/common/back.gif
软件用vc写的,私有软件,
是这样实现的:实时解析下位机传上来的欧拉角(xyz轴的旋角),然后用openGL的 ...
你好,我想问问传过来的三个欧拉角是说的是物体绕自身坐标轴旋转的角度么?我试过用这三个值直接glRotatef(xrot, 1.0 ,0.0 ,0.0); //x轴旋转分量 glRotatef(yrot, 0.0 ,1.0 ,0.0); //y轴旋转分量 glRotatef(zrot, 0.0 ,0.0 ,1.0); //z轴旋转分量 这样是不行的,会出现旋转顺序的问题,那么我想问的是,是不是要通过传回来的三个物体绕自身坐标轴旋转的角度,解算出物体一次绕世界坐标系的旋转轴向以及算出旋转的角度?那么是不是要用四元数法来解算?(w,x,y,z)里面的x,y,z是不是就是传回来的三个角度? monroeking 发表于 2013-9-1 12:13
我也一直卡在dmp_load_motion_driver_firmware(..),返回-2.楼主到底是怎么解决的?
我也卡在这里了,同求解决方案! ilovepp 发表于 2013-11-26 20:13
我也卡在这里了,同求解决方案!
后来解决了,是I2C程序没写正确。 aki_studio 发表于 2013-6-10 19:44
回楼上,楼主已经工作了(原来是学物理的,仅懂一点电子,对控制理论一窍不通)
本帖告一段落,开启DMP读取欧 ...
楼主请问下图片中的左侧黑色那部分,有白色数据在走的也是VC程序的一部分 ?
aki_studio 发表于 2013-6-12 07:44
软件用vc写的,私有软件,
是这样实现的:实时解析下位机传上来的欧拉角(xyz轴的旋角),然后用openGL的 ...
还想请教下楼主:VC和openGL怎么联系起来啊?openGL怎么读到VC解析出来的XYZ的值啊? mark! 我的QQ是7066482,楼主能加我的QQ聊聊么?想请教上位机的问题,定重谢!{:handshake:} Mark!----- MARK!! 本帖最后由 huang_1688 于 2014-3-10 14:29 编辑
强人啊,时间长会不会飘 ? 这个上位机软件很爽 本帖最后由 huang_1688 于 2014-3-18 14:58 编辑
http://v.youku.com/v_show/id_XNjg2NjkxODY0.html
楼主,根据你 VC 编写的那个G i f,我也自己搞了调试软件,下位机还没开始搞。谢谢你 最近刚好也要用这个芯片! 也在搞MPU6050 aki_studio 发表于 2013-6-10 01:12
上面的dmp_load_motion_driver_firmware问题确认为i2c驱动没写好,
支持一次性写16字节之后,就pass了。明 ...
楼主,是怎么解决的啊?我也卡这了,希望楼主传授下 monroeking 发表于 2013-11-27 00:02
后来解决了,是I2C程序没写正确。
请问你具体是怎么解决的?我也是这个问题,麻烦你了 shishine 发表于 2014-7-15 21:56
请问你具体是怎么解决的?我也是这个问题,麻烦你了
I2C读与写的时序一定要正确,程序就能顺利进行下去,你是移植的么? monroeking 发表于 2014-7-15 23:31
I2C读与写的时序一定要正确,程序就能顺利进行下去,你是移植的么?
对,我先用自己的I2C读取了基本的数据,确定I2C可以之后再移植的。现在卡在那个地方了{:cry:} huang_1688 发表于 2014-3-18 14:53
楼主,根据你 VC 编写的那个G i f,我也自己搞了调试软件,下位机还没开始搞。谢谢你 ...
这个是怎么实现的啊?
还请详细解释一下,好炫的样子 上位机挺好的样子 LZ你的三维姿态图有软件吗,可不可以传一份上来,还有DMP的文件也传上来? yanpenghao 发表于 2014-8-4 23:48
这个是怎么实现的啊?
还请详细解释一下,好炫的样子
http://www.amobbs.com/forum.php?mod=viewthread&tid=5573259&page=1#pid7444034 huang_1688 发表于 2014-8-7 09:11
http://www.amobbs.com/forum.php?mod=viewthread&tid=5573259&page=1#pid7444034
谢谢了,已发邮件,请注意查收 aki_studio 发表于 2013-6-10 01:12
上面的dmp_load_motion_driver_firmware问题确认为i2c驱动没写好,
支持一次性写16字节之后,就pass了。明 ...
lz,我也遇到同样的问题,ID能读,但就是死在memcmp这里 {:handshake:}{:handshake:} 这么刷固件库额,每次开机都要刷一次吗 不错,不错,真不错 公司的广泛大使馆的 学习学习 路过,能顶一下吗
路过,也纠结过。。
页:
[1]