搜索
bottom↓
回复: 59

MPU9150内置DMP获取四元数并送至上位机显示

  [复制链接]

出0入0汤圆

发表于 2013-5-10 08:54:22 | 显示全部楼层 |阅读模式
本帖最后由 风见流雅 于 2013-5-10 09:11 编辑

坛子里有不少同学要这份源码,在这里公布出来便于大家移植时参考。
楼主使用的是PIC32系列的单片机,开发环境是microchip的MPLAB。
楼主这份代码还有问题:就是姿态解算结果绕x轴的旋转方向正常,绕y轴和z轴的旋转都是反向的,至今还在debug,但是同dmp的通信,配置和读取都已调试通过。
有能力的同学可以拿去试试,也可以相互交流。

补充一下,这里调试用的上位机程序就是motion driver中用python写的那个motion-driver-client.py 使用方法见手册。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-5-10 09:05:55 | 显示全部楼层
十分感谢无私的楼主,同时期待楼主早日调试完成给出无误的代码....

出0入0汤圆

 楼主| 发表于 2013-5-10 09:10:20 | 显示全部楼层
kmani 发表于 2013-5-10 09:05
十分感谢无私的楼主,同时期待楼主早日调试完成给出无误的代码....

不是很难实现,等我有空把我修改过的文件、实现的函数单独列出来。
大家调试时候应该会碰到跟我一样的问题。

出0入0汤圆

发表于 2013-5-10 09:11:26 | 显示全部楼层
旋转方向可以通过初始化矩阵进行调整
  1. static signed char gyro_orientation[9] = {-1, 0, 0,
  2.                                            0,-1, 0,
  3.                                            0, 0, 1};
复制代码
修改矩阵符号就行了

出0入0汤圆

 楼主| 发表于 2013-5-10 09:13:19 | 显示全部楼层
lotsbiss 发表于 2013-5-10 09:11
旋转方向可以通过初始化矩阵进行调整修改矩阵符号就行了

我知道问题出在这里,可是官方没给这个矩阵的配置方法。大侠明白这个矩阵各个元素代表的意义么?

出0入0汤圆

发表于 2013-5-10 09:16:23 | 显示全部楼层
风见流雅 发表于 2013-5-10 09:13
我知道问题出在这里,可是官方没给这个矩阵的配置方法。大侠明白这个矩阵各个元素代表的意义么? ...


这就是个初始旋转矩阵
你在网上找找矩阵旋转就知道了

对角线上的3个1就是XYZ的方向
你随便改改正负就能把旋转方向校正过来了

出0入0汤圆

发表于 2013-5-10 09:25:39 | 显示全部楼层
多谢lz   无私分享哈                                                                                                  

出0入0汤圆

发表于 2013-5-10 10:17:58 | 显示全部楼层
首先谢谢楼主的分享,像楼上说的修改旋转矩阵就行了。楼主可以到InvenSense官方查找这篇应用笔记 AppNote - 9-Axis MotionFusion and Calibration Algorithms,里面有详细讲解旋转矩阵。

出0入0汤圆

发表于 2013-5-10 10:21:56 | 显示全部楼层
虽然有段时间不做运动模块开发了,但是楼主的资料又一次激发了我的兴趣。
谢谢楼主的无私!

出0入0汤圆

 楼主| 发表于 2013-5-10 11:06:52 | 显示全部楼层
wscjun 发表于 2013-5-10 10:17
首先谢谢楼主的分享,像楼上说的修改旋转矩阵就行了。楼主可以到InvenSense官方查找这篇应用笔记 AppNote - ...

多谢提醒,我也是才开始做这个领域

出0入0汤圆

发表于 2013-5-10 12:14:31 | 显示全部楼层
风见流雅 发表于 2013-5-10 11:06
多谢提醒,我也是才开始做这个领域

呵呵,我也刚刚开始在开这方面的资料,正打算移植到STM32里面,谢谢你的分享。

出75入34汤圆

发表于 2013-5-10 12:22:07 | 显示全部楼层
感谢楼主的贡献~!

出0入0汤圆

发表于 2013-5-10 13:07:22 | 显示全部楼层
motion driver     上位机楼主能共享一下啊

出0入0汤圆

发表于 2013-5-10 13:14:16 | 显示全部楼层
Rocky_Zou 发表于 2013-5-10 13:07
motion driver     上位机楼主能共享一下啊

坛子里面有共享了的上位机的,常见这篇帖子http://www.amobbs.com/thread-5515784-1-1.html

出0入0汤圆

发表于 2013-5-10 14:03:47 | 显示全部楼层
wscjun 发表于 2013-5-10 13:14
坛子里面有共享了的上位机的,常见这篇帖子http://www.amobbs.com/thread-5515784-1-1.html ...

我是想看一下  python  写的那个上位机

出0入0汤圆

发表于 2013-5-10 17:12:54 | 显示全部楼层
楼主,芯片那里买呀?

出0入0汤圆

 楼主| 发表于 2013-5-10 19:23:47 | 显示全部楼层
ppa2001 发表于 2013-5-10 17:12
楼主,芯片那里买呀?

香港找人带了两片

出0入0汤圆

发表于 2013-5-10 19:31:10 | 显示全部楼层
风见流雅 发表于 2013-5-10 19:23
香港找人带了两片

哦,那只好在等等了·

出0入0汤圆

发表于 2013-5-10 21:04:54 | 显示全部楼层
正好我现在在弄这个,进来学习下

出0入0汤圆

发表于 2013-5-11 21:54:16 | 显示全部楼层
mark一下   ....

出0入0汤圆

发表于 2013-5-12 16:04:02 | 显示全部楼层
感谢楼主分享

出0入0汤圆

发表于 2013-5-12 20:24:38 | 显示全部楼层
我也正在玩这个片子,不过不打算用DMP,更新率200Hz不满足现在的需求,参考下吧,感谢楼主分享

出0入0汤圆

发表于 2013-5-18 20:45:16 | 显示全部楼层
shouxiale~~~

出0入0汤圆

发表于 2013-5-28 16:26:32 | 显示全部楼层
首先,感谢楼主分享。
我现在在做的是用stm32硬件IIC与9150通信,但调试时发送7位地址后,一直是无应答,进入EV6的while死循环。
用模拟IIC,貌似能写,但读不到WHO AM I寄存器的值。下载下来研究下,希望大家一起研究分享心得。

出0入0汤圆

发表于 2013-5-30 11:58:39 | 显示全部楼层
fearus 发表于 2013-5-28 16:26
首先,感谢楼主分享。
我现在在做的是用stm32硬件IIC与9150通信,但调试时发送7位地址后,一直是无应答,进 ...

一起讨论讨论,我也用stm32调dmp,qq1516867224

出0入0汤圆

发表于 2013-6-24 10:37:21 | 显示全部楼层
正在做这个东西,谢谢楼主分享以及其他坛友提供的信息!

出0入0汤圆

发表于 2013-6-24 11:15:48 | 显示全部楼层
fearus 发表于 2013-5-28 16:26
首先,感谢楼主分享。
我现在在做的是用stm32硬件IIC与9150通信,但调试时发送7位地址后,一直是无应答,进 ...

我也在做这个东西,希望能互相探讨学习,qq81659667

出40入198汤圆

发表于 2013-7-25 21:05:31 | 显示全部楼层
先mark,有空再来学习~!

出0入0汤圆

发表于 2013-7-25 21:35:41 | 显示全部楼层
lz 好样的

出0入0汤圆

发表于 2013-8-5 00:41:43 | 显示全部楼层
wscjun 发表于 2013-5-10 12:14
呵呵,我也刚刚开始在开这方面的资料,正打算移植到STM32里面,谢谢你的分享。 ...

麻烦问一下前辈,你这个做的怎么样?往STM32上移植成功了么?能不能共享开源啊?

出0入0汤圆

发表于 2013-8-6 08:29:23 | 显示全部楼层
lukefan2008 发表于 2013-8-5 00:41
麻烦问一下前辈,你这个做的怎么样?往STM32上移植成功了么?能不能共享开源啊? ...

建议你好好看看 lotsbiss 的http://www.amobbs.com/thread-5528472-1-1.html,楼主已经把所有的需要注意的地方都有讲解到的。祝你好运。

出0入0汤圆

发表于 2013-8-7 13:49:15 | 显示全部楼层
敢问楼主,python中怎么加载motion-driver-client。py?手册看过了。没看懂

出0入0汤圆

发表于 2013-8-9 15:00:25 | 显示全部楼层
wscjun 发表于 2013-5-10 10:17
首先谢谢楼主的分享,像楼上说的修改旋转矩阵就行了。楼主可以到InvenSense官方查找这篇应用笔记 AppNote - ...

小弟上官网没有找到这篇笔记啊,大神可否给个链接啊

出0入0汤圆

发表于 2013-8-10 09:05:00 | 显示全部楼层
jwl5879 发表于 2013-8-9 15:00
小弟上官网没有找到这篇笔记啊,大神可否给个链接啊

要在官网下载资料首先是要注册的,我这里帮你下载了哈

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-8-11 11:46:30 | 显示全部楼层
mark......
顶一个...

出0入0汤圆

发表于 2013-8-16 10:48:14 | 显示全部楼层
wscjun 发表于 2013-8-10 09:05
要在官网下载资料首先是要注册的,我这里帮你下载了哈

谢谢这位大神啦,但我上官网怎么连注册的地方也找不到?难道在网站上买了片子才能注册?

出0入0汤圆

发表于 2013-8-29 14:13:35 | 显示全部楼层
看看 学习学习

出0入0汤圆

发表于 2013-8-31 10:23:26 | 显示全部楼层
感谢楼主,最近正在搞这个,多谢了

出0入0汤圆

发表于 2013-9-4 16:24:47 | 显示全部楼层
苦逼的电子竞赛学生到此一游。感谢大神赐予我们宝贵的资源

出0入0汤圆

发表于 2013-10-22 09:25:54 | 显示全部楼层
楼主 ,会漂移么 ?6050用dmp航向角几分钟就要漂一度,我最需要的是航向角,用指南针又受干扰,不知道这个指南针加陀螺仪的融合能把这两个东西校正过来么?

出0入0汤圆

发表于 2013-10-22 09:51:00 | 显示全部楼层
lufthansa 发表于 2013-10-22 09:25
楼主 ,会漂移么 ?6050用dmp航向角几分钟就要漂一度,我最需要的是航向角,用指南针又受干扰,不知道这个 ...

不可能不漂,因为你的参照系在一定程度上就是不定的,比如磁场。
几分钟一度算正常吧?过几分钟说不定漂回来呢?如果朝一个方向漂,再不济软件校正。。

出0入0汤圆

发表于 2013-11-17 02:09:36 | 显示全部楼层
都开始用9150了,我还在看6050呢。9150一个就100多 玩不起啊

出0入0汤圆

发表于 2014-1-24 20:27:48 | 显示全部楼层
9150使用起来更方便啊,就是贵了

出0入0汤圆

发表于 2014-1-31 16:46:13 | 显示全部楼层
多谢分享,以后在、留着再用。

出0入0汤圆

发表于 2014-2-13 20:45:48 | 显示全部楼层
这个是在microchip官网下的吗?

出0入0汤圆

 楼主| 发表于 2014-2-14 10:56:39 | 显示全部楼层
9HJ9 发表于 2014-2-13 20:45
这个是在microchip官网下的吗?

自己写的好么亲

出0入0汤圆

发表于 2014-3-29 18:21:39 | 显示全部楼层
谢谢分享,下载学习一下

出0入0汤圆

发表于 2014-5-16 14:50:10 | 显示全部楼层
标记一下学习。现在正在痛苦的电调~

出0入0汤圆

发表于 2014-8-4 22:31:10 | 显示全部楼层
fearus 发表于 2013-5-28 16:26
**** 作者被禁止或删除 内容自动屏蔽 ****

应该是地址没有左移1bit, 那个代码是430的I2C, 地址要改为0xD0(如果Ad0=1,0xD2)

出0入0汤圆

发表于 2014-11-4 11:42:02 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2014-11-7 19:54:58 | 显示全部楼层
你好,我想问一下9150内置DMP出来的四元数可否用来将加速度从机体坐标系转到地理坐标系?

出0入0汤圆

发表于 2014-11-7 19:55:20 | 显示全部楼层
你好,我想问一下9150内置DMP出来的四元数可否用来将加速度从机体坐标系转到地理坐标系?

出0入0汤圆

发表于 2014-11-25 14:27:58 | 显示全部楼层
谢谢分享!!

出0入0汤圆

发表于 2015-1-2 13:31:04 | 显示全部楼层
mark 学习了

出0入0汤圆

发表于 2015-1-8 13:21:30 | 显示全部楼层
这个个一般的电脑可以运行吗?那个上位机?

出0入0汤圆

发表于 2015-8-21 17:03:47 | 显示全部楼层
谢谢楼主无私奉献

出0入0汤圆

发表于 2015-8-25 14:48:30 | 显示全部楼层
**** 作者被禁止或删除 内容自动屏蔽 ****

出0入0汤圆

发表于 2015-10-27 16:47:13 | 显示全部楼层
真的是好资料,值得研究

出0入0汤圆

发表于 2015-11-15 13:16:14 | 显示全部楼层
zjzly 发表于 2014-11-7 19:55
你好,我想问一下9150内置DMP出来的四元数可否用来将加速度从机体坐标系转到地理坐标系? ...

我也想这样做,用来积分出运动轨迹,但是我发现加速度计的向量方向与欧拉角的z轴不重合,这样积分出来的数据漂移特别严重,需要自己计算旋转矩阵将加速度计测得的重力方向与z轴重合。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2022-5-24 03:03

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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