请选择 进入手机版 | 继续访问电脑版

搜索
查看: 1677|回复: 1

1MPU6050如何获取三个轴角速度的原始数据呢 ?2dmp中断是在哪里开启设置的?

[复制链接]

1

主题

2

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2018-3-5 14:37:18 | 显示全部楼层 |阅读模式
1.读dmp时,原始数据存在gyro和accel这两个数组里,怎么转换成原始数据啊,他们对应的关系是什么void Read_DMP(void)
{        
          unsigned long sensor_timestamp;
                unsigned char more;
                long quat[4];

                                dmp_read_fifo(gyro, accel, quat, &sensor_timestamp, &sensors, &more);               
                                if (sensors & INV_WXYZ_QUAT )
                                {   
                                         q0=quat[0] / q30;
                                         q1=quat[1] / q30;
                                         q2=quat[2] / q30;
                                         q3=quat[3] / q30;
                                         Pitch = asin(-2 * q1 * q3 + 2 * q0* q2)* 57.3;         
                                         Roll = atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2* q2 + 1)* 57.3; // roll                 
                                         Yaw =         atan2(2*(q1*q2 + q0*q3),q0*q0+q1*q1-q2*q2-q3*q3) * 57.3;
                                }
}



2dmp中断是在哪里开启设置的?
在dmp初始化函数里我没看到开启中断的语句啊,是默认开启的吗
void DMP_Init(void)
{
   u8 temp[1]={0};
   i2cRead(0x68,0x75,1,temp);
         printf("mpu_set_sensor complete ......\r\n");
        if(temp[0]!=0x68)NVIC_SystemReset();
        if(!mpu_init())
  {
           mpu_set_sensors(INV_XYZ_GYRO | INV_XYZ_ACCEL);
          
           mpu_configure_fifo(INV_XYZ_GYRO | INV_XYZ_ACCEL);
                 
           mpu_set_sample_rate(DEFAULT_MPU_HZ);
                 
           dmp_load_motion_driver_firmware();
                 
           dmp_set_orientation(inv_orientation_matrix_to_scalar(gyro_orientation));
                 
           dmp_enable_feature(DMP_FEATURE_6X_LP_QUAT | DMP_FEATURE_TAP |
                DMP_FEATURE_ANDROID_ORIENT | DMP_FEATURE_SEND_RAW_ACCEL | DMP_FEATURE_SEND_CAL_GYRO |
                DMP_FEATURE_GYRO_CAL);
                   
           dmp_set_fifo_rate(DEFAULT_MPU_HZ);
                   
          run_self_test();
           mpu_set_dmp_state(1);
                   
  }
}

回复

使用道具 举报

1

主题

195

帖子

699

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
699
发表于 2018-3-7 21:12:02 | 显示全部楼层
我们提供的程序默认开启的,在初始化DMP的过程开启了。数组里面的数据就是MPU6050的原始数据。
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|平衡小车之家  

GMT+8, 2019-10-15 19:19 , Processed in 0.061869 second(s), 21 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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