搜索
bottom↓
楼主: _spetrel

原码放送,MPU6050的DMP用STM32成功的实现,内有移植问题说明

  [复制链接]

出0入0汤圆

发表于 2013-9-12 16:06:25 | 显示全部楼层
默默七 发表于 2013-9-1 11:25
PITCH转动到90度后,ROLL和YAW乱跳,这个是万向锁。

什么意思,能详细说一下吗?

出0入0汤圆

发表于 2013-9-12 16:29:47 | 显示全部楼层
默默七 发表于 2013-9-1 11:25
PITCH转动到90度后,ROLL和YAW乱跳,这个是万向锁。

http://www.cnblogs.com/tclikang/archive/2012/11/09/2761988.html

出0入0汤圆

发表于 2013-9-12 22:18:39 | 显示全部楼层
芽芽小宝 发表于 2013-9-12 16:02
哪款芯片,ARM核的吗?

NU123      M0

出0入0汤圆

发表于 2013-9-13 08:18:47 | 显示全部楼层
NJ8888 发表于 2013-9-12 22:18
NU123      M0

嗯,跟我的差不多,我用的是nano100

出0入0汤圆

发表于 2013-9-13 16:51:02 | 显示全部楼层
谢过楼主  新手瞧瞧

出0入0汤圆

发表于 2013-9-13 22:44:22 | 显示全部楼层
请问楼主,我也调好了DMP,出来的数不连续怎么处理?

出0入0汤圆

发表于 2013-9-14 16:12:48 | 显示全部楼层
_spetrel 发表于 2013-6-18 20:54
attach://120109.rar  这个是我用MFC+openGL写的一个上位机,只能显示姿态,波特率9600,8个数据位,无校验 ...

hi,lz能不能分享一下你的上位机呢,452994922@qq.com,谢谢!

出0入0汤圆

发表于 2013-9-14 20:05:08 | 显示全部楼层
感谢无私的楼主

出0入0汤圆

发表于 2013-9-14 20:48:23 | 显示全部楼层
下来看看,多谢

出0入0汤圆

发表于 2013-9-14 21:12:53 | 显示全部楼层
默默七 发表于 2013-9-1 11:25
PITCH转动到90度后,ROLL和YAW乱跳,这个是万向锁。

有解决的思路没有? 不然 四轴 越不过那个点啊 。。。

出0入0汤圆

发表于 2013-9-14 21:16:55 | 显示全部楼层
感谢 楼主 在三天时间里 研究完你的代码  终于DMP成功。。。。
请问那个 get_ms() 是做什么用的 啊 一直纠结?

出0入0汤圆

发表于 2013-9-14 22:02:39 | 显示全部楼层
谢谢楼主了,正在找这个!

出0入0汤圆

发表于 2013-9-25 14:06:36 | 显示全部楼层
非常感谢楼主,目前已经在您的代码基础上调试通过了,在配合上位机验证输出数据的正确性,谢谢。

出0入0汤圆

发表于 2013-9-25 21:34:26 | 显示全部楼层
Thanks!

出0入0汤圆

发表于 2013-10-17 16:40:00 | 显示全部楼层
顶楼主!!!stm32 +6050

出0入0汤圆

发表于 2013-10-17 22:24:14 | 显示全部楼层
R2D1 发表于 2013-7-17 12:56
楼主程序,调出的数据。感谢楼主

怎么我用LZ的程序串口什么也没有啊。?串口的配置、引脚都是一样的、?

出0入0汤圆

发表于 2013-10-18 09:49:45 | 显示全部楼层
kongchen 发表于 2013-8-30 16:23
串口出来上是:ID read as 0 indicates device is either incompatible or an MPU3050.

我的也是这个问题。不知道你解决没有?是什么问题啊

出0入0汤圆

发表于 2013-10-19 22:01:08 | 显示全部楼层
顶一下

出0入0汤圆

发表于 2013-10-29 21:34:33 | 显示全部楼层
前面的调试信息和楼主一样,但是进不去if (sensors & INV_WXYZ_QUAT )  这是为啥

出0入0汤圆

发表于 2013-10-30 08:54:56 | 显示全部楼层
windless 发表于 2013-6-14 11:18
请问有没有接中断,我刚下了烧了一下发现PE口的没有数据,修改成PB口的可以,然后出来的是
我自己的dmp的代 ...

我和你的问题一样,现在解决了没有

出0入0汤圆

发表于 2013-11-17 22:18:13 | 显示全部楼层
我在avr上搞不定

出0入0汤圆

发表于 2013-11-20 12:24:52 | 显示全部楼层
学习来了咯

出0入0汤圆

发表于 2013-11-21 18:09:48 | 显示全部楼层
cshp138 发表于 2013-7-25 15:35
int mpu_read_fifo_stream(unsigned short length, unsigned char *data,
    unsigned char *more)
{

debug的时候读取速度慢 当然溢出了,正常运行应该是不溢出的

出0入0汤圆

发表于 2013-12-22 12:58:46 | 显示全部楼层
楼主,你好我移植了这个DMP,STM32F103CBT6+MPU6050。没有外挂电子罗盘。初始化完成后,数据yaw一直在增长。请问怎么回事勒?

出0入0汤圆

发表于 2013-12-22 13:13:41 | 显示全部楼层
楼主,你好,我移植了DMP。用的STM32F103CBT6+MPU6050,没有外挂电子罗盘!初始化完成后,串口输出的yaw一直在增长。
MPU6050焊接方向如图2

根据芯片手册上的标示,

发现串口输出的pitch 和roll 是相反的,刚开始玩四轴,很迷茫啊!还望楼主解答啊!谢谢,急等!




本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2013-12-30 22:41:50 | 显示全部楼层
好东西,再次顶一下,哈哈

出0入0汤圆

发表于 2014-1-3 17:11:10 | 显示全部楼层
最近刚接触,正在疯狂找资料学习,谢谢你的程序。

出0入0汤圆

发表于 2014-1-5 11:33:21 | 显示全部楼层
mark 学习

出0入0汤圆

发表于 2014-1-7 12:27:10 | 显示全部楼层
多谢分享

出0入0汤圆

发表于 2014-1-7 21:38:25 | 显示全部楼层
谢谢楼主分享。

出0入0汤圆

发表于 2014-1-11 01:02:32 | 显示全部楼层
领表涕零

出0入0汤圆

发表于 2014-1-12 18:57:10 | 显示全部楼层
十分感谢分享

出0入0汤圆

发表于 2014-1-17 16:04:12 | 显示全部楼层
感谢楼主无私开源,最近也在玩这个。

出0入0汤圆

发表于 2014-1-24 17:59:20 | 显示全部楼层
_spetrel 发表于 2013-6-18 20:54
attach://120109.rar  这个是我用MFC+openGL写的一个上位机,只能显示姿态,波特率9600,8个数据位,无校验 ...

这上位机程序很诱人啊,能分享给我一下么? 7066482@qq.om
加我的QQ好么?想多请教。我的QQ7066482.

出0入0汤圆

发表于 2014-2-13 18:14:34 | 显示全部楼层
楼主很感谢你的帖子。想问一下,在你的 STM32_I2C.h中, 这些宏定义代表什么?我在CM4内核的MCU上移植,现在遇到了一些小问题想请教一下~

#define CLI()      __set_PRIMASK(1)  
#define SEI()      __set_PRIMASK(0)

#define BYTE0(dwTemp)       (*(char *)(&dwTemp))
#define BYTE1(dwTemp)       (*((char *)(&dwTemp) + 1))
#define BYTE2(dwTemp)       (*((char *)(&dwTemp) + 2))
#define BYTE3(dwTemp)       (*((char *)(&dwTemp) + 3))

出0入0汤圆

发表于 2014-2-18 20:07:41 | 显示全部楼层
lgnativs 发表于 2013-7-23 14:32
从DMP里面出来的数据有几种
1.姿态四元数,二选一:DMP_FEATURE_LP_QUAT(只用陀螺仪计算得到)/DMP_FEATURE_6X ...

学习了,我的在自检的时候通不过,bias has not been modified ......我的自检结果是3,上面说要等于0x07才行,你遇到过这种问题吗?

出0入0汤圆

发表于 2014-2-18 20:10:07 | 显示全部楼层
楼主你的也是bias has not been modified ......没关系吗,这个是自检不成功的啊,

出0入0汤圆

发表于 2014-2-19 11:30:41 | 显示全部楼层
木君之上 发表于 2014-2-18 20:10
楼主你的也是bias has not been modified ......没关系吗,这个是自检不成功的啊,

gyro  + acc 自检正确结果 0x3. gyro + acc + compss 自检正确结果 0x7. 你没用compss 把0x7  该成 0x3.

出0入0汤圆

发表于 2014-2-19 11:32:25 | 显示全部楼层
我的静止时精度能达到0.02.运动时PITCH漂移 1.5. 不知道怎么弄.

出0入0汤圆

发表于 2014-2-19 11:40:52 | 显示全部楼层
williamzhang533 发表于 2014-2-19 11:30
gyro  + acc 自检正确结果 0x3. gyro + acc + compss 自检正确结果 0x7. 你没用compss 把0x7  该成 0x3. ...

专业解答,哈哈,我看到了让改03的,但是不知道为什么,现在知道了,谢谢!
真的通过了那个自检之后飘逸小多了,我就放在那个地方静止十多分钟仍然是不超过角度0.1
如果乱动的话,过一会儿静止后又能马上回到0.2左右然后到0.1,以前直接几度几度的飘,

出0入0汤圆

发表于 2014-2-19 20:23:29 | 显示全部楼层
赞一个,回帖收藏!

出0入0汤圆

发表于 2014-2-19 20:45:54 | 显示全部楼层
mark,虽然很久没动过了

出0入0汤圆

发表于 2014-2-19 20:46:17 | 显示全部楼层
mark,虽然很久没动过了

出0入0汤圆

发表于 2014-2-27 19:56:12 | 显示全部楼层
遇到与楼至相同问题,但是不想改成dmp

出0入0汤圆

发表于 2014-2-27 20:20:01 | 显示全部楼层
想问下楼主IIC初始化时干什么的,没有会怎么样?看你程序里特别标注了

出0入0汤圆

发表于 2014-3-7 19:58:14 | 显示全部楼层
R2D1 发表于 2013-7-17 12:56
楼主程序,调出的数据。感谢楼主

能给个代码学习一下不?

出0入0汤圆

发表于 2014-3-14 21:19:14 | 显示全部楼层
楼主,bias has not been modified ......出现这个对数据有什么影响呢?

出0入0汤圆

发表于 2014-3-19 16:51:04 | 显示全部楼层
谢谢楼主分享。

出0入0汤圆

发表于 2014-3-28 15:33:43 | 显示全部楼层
不错不错,学习了

出0入0汤圆

发表于 2014-3-29 14:49:40 | 显示全部楼层
学习中。。。。

出0入0汤圆

发表于 2014-3-30 00:52:06 | 显示全部楼层
gancai 发表于 2013-10-29 21:34
前面的调试信息和楼主一样,但是进不去if (sensors & INV_WXYZ_QUAT )  这是为啥

我的问题和你的一样,fifo_count总是0,不知道你的问题是否已经解决了?
多谢!

出0入0汤圆

发表于 2014-3-30 10:45:10 | 显示全部楼层
hero_kai 发表于 2014-3-30 00:52
我的问题和你的一样,fifo_count总是0,不知道你的问题是否已经解决了?
多谢! ...

重新又做了一边工程,解决了,可能是没移植好

出0入0汤圆

发表于 2014-3-30 20:04:37 | 显示全部楼层
gancai 发表于 2014-3-30 10:45
重新又做了一边工程,解决了,可能是没移植好

噢,了解了,那我再调调看吧,多谢!

出0入0汤圆

发表于 2014-4-10 08:51:22 | 显示全部楼层
kongchen 发表于 2013-8-30 16:23
**** 作者被禁止或删除 内容自动屏蔽 ****

大哥,我下载楼主的程序也是这个问题,你是怎么解决的呢?能告诉下我么?

出0入0汤圆

发表于 2014-4-11 23:51:41 | 显示全部楼层
真实帮了我大忙  谢谢

出0入0汤圆

发表于 2014-4-13 14:54:30 | 显示全部楼层
楼主,您好,我最近在移植DMP程序,我用的是STM32F103。
一直卡在dmp_read_fifo(gyro, accel, quat, &sensor_timestamp, &sensors,&more);         下的
   if (i2c_read(st.hw->addr, st.reg->fifo_count_h, 2, tmp))
        return -1;
    fifo_count = (tmp[0] << 8) | tmp[1];

这个地方,fifo_count 一直是0,
我前面的一切配置打印出来都是OK的。
就是这里执行不下去了。
前面那个dmp_load_motion_driver_firmware complete ......有验证I2C驱动的读写是否正确吧?这个通过了。应该不是I2C的问题吧?
或者是我的驱动针对2字节读写有缺陷?硬件I2C

麻烦答复下好么?多谢了

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2014-4-14 16:05:57 | 显示全部楼层
麦田里的稻田 发表于 2013-12-22 12:58
楼主,你好我移植了这个DMP,STM32F103CBT6+MPU6050。没有外挂电子罗盘。初始化完成后,数据yaw一直在增长 ...

[大哥,我移植楼主的程序之后串口一直打印 ,知道怎么解决么?

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2014-4-14 17:29:23 | 显示全部楼层
windless 发表于 2013-6-14 11:18
请问有没有接中断,我刚下了烧了一下发现PE口的没有数据,修改成PB口的可以,然后出来的是
我自己的dmp的代 ...

大哥,我移植的程序串口为啥老是出现这个啊?

本帖子中包含更多资源

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

x

出0入4汤圆

发表于 2014-4-22 09:17:05 | 显示全部楼层
_spetrel 发表于 2013-6-18 20:54
attach://120109.rar  这个是我用MFC+openGL写的一个上位机,只能显示姿态,波特率9600,8个数据位,无校验 ...

楼主辛苦了,我按着你的程序移植读出数据角度很稳定,加速度变化比较大,还要根据这些数据算出速度,不知可行?

出0入0汤圆

发表于 2014-4-25 09:42:58 | 显示全部楼层
你这个MPU6050模块上的线是怎么连的 我已经把I2C口改成和我的一样了 可是用不了你编的上位机 想自己编一个  不会 大神 教教我啊

出0入0汤圆

发表于 2014-5-3 12:07:06 | 显示全部楼层
楼主 你那个数据的通信格式为:"S" +正负号+ pitch +正负号+ roll + 正负号+yaw + 'E',其中的正负号是怎么加的啊 我下面的这个是加正负号的子程序 对吗

void niming2(int16_t num,int16_t num2,int16_t num3)
{
        PrintChar("S");
    PrintInt(num);               
        PrintInt(num2);       
        PrintInt(num3);       
        PrintChar("E");
}

出0入4汤圆

发表于 2014-5-5 08:51:34 | 显示全部楼层
_spetrel 发表于 2013-6-18 20:54
attach://120109.rar  这个是我用MFC+openGL写的一个上位机,只能显示姿态,波特率9600,8个数据位,无校验 ...

为什么静止的时候也有重力加速度啊?

出0入0汤圆

发表于 2014-5-6 11:06:58 | 显示全部楼层
yuyu7226974 发表于 2013-10-18 09:49
我的也是这个问题。不知道你解决没有?是什么问题啊

请问下这个问题解决了么?

出0入0汤圆

发表于 2014-5-6 11:07:30 | 显示全部楼层
zengan007 发表于 2014-4-14 17:29
大哥,我移植的程序串口为啥老是出现这个啊?

请问下这个问题解决了么

出0入0汤圆

发表于 2014-5-8 10:03:20 | 显示全部楼层
705060359 发表于 2014-5-6 11:07
请问下这个问题解决了么

解决了,主要是I2C那两根线的问题,你看看SCL和SDA是不是和你自己板子对应好!

出0入0汤圆

发表于 2014-5-24 21:09:50 | 显示全部楼层
MARK

出0入0汤圆

发表于 2014-6-11 08:38:36 | 显示全部楼层
cshp138 发表于 2013-7-25 15:35
int mpu_read_fifo_stream(unsigned short length, unsigned char *data,
    unsigned char *more)
{

请问下你这个问题解决了吗?我现在也遇到这个问题

出0入0汤圆

发表于 2014-6-15 16:45:32 | 显示全部楼层
dmp_load_motion_driver_firmware come across error ......
读写错误,第一个16字节读写正确,第二个16字节串位了! ????

哪位高手遇到过!

出0入0汤圆

发表于 2014-6-18 23:12:30 | 显示全部楼层
找到问题了,iic读写驱动问题,驱动单字节读没有问题,连续读出现问题,现在已经调通!在stm8上

出0入0汤圆

发表于 2014-6-19 21:11:00 | 显示全部楼层
顶楼主,多才多艺、肯琢磨的少年,还乐于奉献,就凭这个,给你点32个赞。

出0入0汤圆

发表于 2014-6-22 15:02:29 | 显示全部楼层
本帖最后由 wind2100 于 2014-6-22 15:03 编辑

我无聊 测试了一下  会死在       HardFault_Handler            

估计是哪里指针飞掉了


dmp_read_fifo is ok...... in Calculating quaternion steps.....
Pitch = 17.917814  Roll = -91.291046  Yaw = 5.893594
dmp_read_fifo is ok...... in Calculating quaternion steps.....
Pitch = 17.417919  Roll = -91.184792  Yaw = 5.855523

出0入0汤圆

发表于 2014-6-24 09:40:04 | 显示全部楼层
楼主的源码测试过,可用!赞一个

出0入0汤圆

发表于 2014-7-9 10:17:52 | 显示全部楼层
支持楼主。

出0入0汤圆

发表于 2014-7-9 12:25:34 | 显示全部楼层
_spetrel 发表于 2013-6-18 20:54
attach://120109.rar  这个是我用MFC+openGL写的一个上位机,只能显示姿态,波特率9600,8个数据位,无校验 ...

楼主,还是不是很明白你的数据格式,请问你可以举一个实际的例子吗?谢谢。

出0入0汤圆

发表于 2014-7-9 22:36:05 | 显示全部楼层
markmarkmark

出0入0汤圆

发表于 2014-7-21 00:19:13 | 显示全部楼层
下载了,有空研究下

出0入0汤圆

发表于 2014-8-5 23:47:50 | 显示全部楼层
_spetrel 发表于 2013-6-18 20:54
attach://120109.rar  这个是我用MFC+openGL写的一个上位机,只能显示姿态,波特率9600,8个数据位,无校验 ...

不会这么慢吧,你确认搞的没问题?有人用avr好搞过呢,stm32这么慢,avr岂不是蜗牛了

出0入0汤圆

发表于 2014-8-28 18:53:39 | 显示全部楼层
学习了,感谢楼主分享

出0入0汤圆

发表于 2014-8-29 20:10:08 | 显示全部楼层
lgnativs 发表于 2013-7-23 14:32
从DMP里面出来的数据有几种
1.姿态四元数,二选一:DMP_FEATURE_LP_QUAT(只用陀螺仪计算得到)/DMP_FEATURE_6X ...

谢谢 学习了

出0入0汤圆

发表于 2014-9-17 17:28:13 | 显示全部楼层
kongchen 发表于 2013-8-30 16:23
**** 作者被禁止或删除 内容自动屏蔽 ****

我现在也遇到这个问题,请问你是怎么解决的

出0入0汤圆

发表于 2014-9-17 19:53:25 | 显示全部楼层
赞Lz , 很详细的 调试~

mpu6050

出0入0汤圆

发表于 2014-9-25 21:50:11 | 显示全部楼层
cshp138 发表于 2013-7-25 15:35
int mpu_read_fifo_stream(unsigned short length, unsigned char *data,
    unsigned char *more)
{

您好,我遇到了跟您一样的问题,请问您解决了么?是怎么解决的呢?

出0入0汤圆

发表于 2014-9-25 22:34:14 | 显示全部楼层
孤独_求败 发表于 2014-9-25 21:50
您好,我遇到了跟您一样的问题,请问您解决了么?是怎么解决的呢?

MCU采集MPU6050速度低于6轴原始数据更新频率,没有及时读取数据,导致数据溢出,加快采集速度或者使用外部中断判断更新标志位来采样就没事

出0入0汤圆

发表于 2014-9-25 23:11:48 | 显示全部楼层
cshp138 发表于 2014-9-25 22:34
MCU采集MPU6050速度低于6轴原始数据更新频率,没有及时读取数据,导致数据溢出,加快采集速度或者使用外 ...

非常感谢您的回答
可是当我加快读取速度后,读出来Yaw在不断变化,请问这是什么原因呢

出0入0汤圆

发表于 2014-9-26 00:03:49 | 显示全部楼层
刚买了个传感器,标记了

出0入0汤圆

发表于 2014-9-26 08:27:01 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2014-9-26 08:29:33 | 显示全部楼层
好资源~~支持

出0入0汤圆

发表于 2014-9-26 09:26:01 | 显示全部楼层
孤独_求败 发表于 2014-9-25 23:11
非常感谢您的回答
可是当我加快读取速度后,读出来Yaw在不断变化,请问这是什么原因呢 ...

首先,DMP内置处理后的姿态都有大概8秒左右自校正过程,过程中姿态变化较大,校正稳定后YAW由于没有绝对观测量,YAW依然随时间,温度漂移,这除非加罗盘,不然没办法稳定下来

出0入0汤圆

发表于 2014-9-26 13:31:06 | 显示全部楼层
cshp138 发表于 2014-9-26 09:26
首先,DMP内置处理后的姿态都有大概8秒左右自校正过程,过程中姿态变化较大,校正稳定后YAW由于没有绝对 ...

好的,非常感谢您

出0入0汤圆

发表于 2014-9-28 23:53:42 | 显示全部楼层
学习了,谢谢分享~

出0入0汤圆

发表于 2014-9-29 14:10:06 | 显示全部楼层
好东西,必须顶一下!!,最近正在研究mpu6050,但是太多专业词不懂········,还是要下点功夫的

出0入0汤圆

发表于 2014-9-29 21:36:53 | 显示全部楼层
牛!!!!!

出0入0汤圆

发表于 2014-10-6 12:13:17 | 显示全部楼层
谢谢分享!

出0入0汤圆

发表于 2014-10-6 13:49:59 | 显示全部楼层
mpu6050 标记,谢谢

出0入0汤圆

发表于 2014-10-7 19:49:21 | 显示全部楼层
试试看有用没

出0入0汤圆

发表于 2014-10-23 22:15:12 | 显示全部楼层
谢楼主

出0入0汤圆

发表于 2014-10-24 15:37:50 | 显示全部楼层
感谢楼主分享,好好学习下

出0入0汤圆

发表于 2014-10-28 14:36:20 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2015-1-12 21:41:09 | 显示全部楼层
灰常感谢~~~~~

出0入0汤圆

发表于 2015-1-13 13:38:38 | 显示全部楼层
谢楼主分享
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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

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