极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8307|回复: 4

菜鸟想啃DMP,求大神助攻!!!

[复制链接]
发表于 2014-2-17 00:33:08 | 显示全部楼层 |阅读模式
本帖最后由 赤色强袭 于 2014-2-17 14:07 编辑

在论坛里翻了几天帖子,无奈才疏学浅,实在是没有一点头绪,有几个问题困扰很久,请各位大神帮帮忙啊!

1.因为原来一直用的是51+Keil,Arduino的程序读起来也不是很懂,库函数调用也不熟悉,想用51实现DMP是不是有点天方夜谭    了?我想把DMP移植到51上,可行吗?

2.现在手里面有这么几个文件:
helper_3dmath.h;
I2Cdev.h;
I2Cdev.cpp;
MPU6050.cpp;
MPU6050.h;
MPU6050_6AXIS_MOTIONApps20.h;
MPU6050_6AXIS_MOTIONApps20.h;
MPU6050_DMP6.ino。
我只知道cpp是c++的源文件,想知道这里面同名的cpp和h文件之间是什么关系,各个文件之间又是怎么个调用关系?

3.我看到有人说要想移植DMP,只要把I2C改了就可以了?这种说法对吗?我看到上面几个文件里面有调用Arduino的文件,只改I2Cdev可以吗?

4.开启DMP的原理具体是什么,是不是给6050的特定寄存器写特定值就可以了?如果是,我用I2C给每个要用到的寄存器写值的方法能不能开启DMP?

5.如果我按照MPU6050.cpp的意思,用C写一遍,那么是不是就可以在51上跑DMP了呢?

本人菜鸟一只,但是在想弄懂DMP到底怎么搞得,还望各位大神不吝赐教。水平有限,还望拍砖。

大神们别让我的帖子零回复啊!!!@Randy@弘毅
回复

使用道具 举报

发表于 2014-2-17 20:05:55 | 显示全部楼层
先不说51的性能, 光是移植来说, 工作量很大.
那些.h文件都是类似C++的语法, 相当于需要重写.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-17 20:36:26 | 显示全部楼层
Lance 发表于 2014-2-17 20:05
先不说51的性能, 光是移植来说, 工作量很大.
那些.h文件都是类似C++的语法, 相当于需要重写.

那有没有什么办法直接摸透开启DMP的原理,绕过这些库文件,不用他们。直接操作其内部的寄存器来开启DMP呢?
回复 支持 反对

使用道具 举报

发表于 2014-2-18 18:33:02 | 显示全部楼层
赤色强袭 发表于 2014-2-17 20:36
那有没有什么办法直接摸透开启DMP的原理,绕过这些库文件,不用他们。直接操作其内部的寄存器来开启DMP呢 ...

这要看你打算利用DMP来实现什么.
目前的资料对MPU的寄存器描述是不完整的. 还是得通过程序来了解这些配置过程.
芯片中的DMP能计算出加速度, 角速度, 四元数, 但是这些值是相对于哪个坐标系的, 这个你得考虑一下。
jrowberg写的库实现的功能是比较完整的. 能计算出pitch, yaw, roll角度, 并且对数据提供矢量形式的保存, 更方便了后续的处理, 如卡尔曼滤波.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-19 20:53:02 | 显示全部楼层
Lance 发表于 2014-2-18 18:33
这要看你打算利用DMP来实现什么.
目前的资料对MPU的寄存器描述是不完整的. 还是得通过程序来了解这些配置 ...

厄,其实就是想得出一个载体坐标系相对于地理坐标系的yaw,pitch,roll角度……
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-23 14:27 , Processed in 0.042841 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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