凌天007 发表于 2017-4-23 18:01:08

MPU6050如何获取三个轴加速度的原始数据呢

如何获取MPU6050里加速度的原始数据?我在下图中自己编写了一个函数,在主函数中调用了一下,但是编译总是报错?程序猿大大能帮忙看看吗

admin 发表于 2017-4-23 20:14:06

Read_DMP的时候已经读出了,记得有2个数组存放的,你看一下

admin 发表于 2017-4-23 20:14:07

Read_DMP的时候已经读出了,记得有2个数组存放的,你看一下

凌天007 发表于 2017-4-23 20:34:08

admin 发表于 2017-4-23 20:14
Read_DMP的时候已经读出了,记得有2个数组存放的,你看一下

void Read_DMP(void)
{       
          unsigned long sensor_timestamp;
                unsigned char more;
                long quat;

                                dmp_read_fifo(gyro, accel, quat, &sensor_timestamp, &sensors, &more);               
                                if (sensors & INV_WXYZ_QUAT )
                                {   
                                       q0=quat / q30;
                                       q1=quat / q30;
                                       q2=quat / q30;
                                       q3=quat / 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;
                                }
}



这个里面只有解算之后的欧拉角啊,没有xyz各个轴的原始加速度值和陀螺仪值,我想看看解算之前的数据,我觉得可以程序里应该有相关函数,但是不知道在哪

admin 发表于 2017-4-24 00:26:19

凌天007 发表于 2017-4-23 20:34
void Read_DMP(void)
{       
          unsigned long sensor_timestamp;


gyro, accel,

凌天007 发表于 2017-4-24 16:45:22

admin 发表于 2017-4-24 00:26
gyro, accel,

谢谢程序猿大大的技术支持,赞一个{:2_27:},已经可以得到原始数据了,并且通过单位转换得到具有实际物理意义的数据。

凌天007 发表于 2017-5-8 18:01:42

admin 发表于 2017-4-24 00:26
gyro, accel,

请问,在发的MPU6050程序里利用卡尔曼滤波算法后,在串口软件上只能显示俯仰角吗,能不能显示旋转角或者横滚角

魂萦xy 发表于 2017-5-8 20:09:13

可以啊,自己添加啊,上位机有十个通道,把变量添加上去就行了

凌天007 发表于 2017-5-8 20:52:54

魂萦xy 发表于 2017-5-8 20:09
可以啊,自己添加啊,上位机有十个通道,把变量添加上去就行了

就是在程序里这句:
printf("互 补 滤 波 输 出 Pitch:%f\r\n",Angle_Balance);//y
我要串口显示旋转角或者横滚角,程序里貌似没有啊

admin 发表于 2017-5-8 23:33:41

凌天007 发表于 2017-5-8 20:52
就是在程序里这句:
printf("互 补 滤 波 输 出 Pitch:%f\r\n",Angle_Balance);//y
我要串口显示 ...

把Roll和Yaw也发到上位机即可
页: [1] 2
查看完整版本: MPU6050如何获取三个轴加速度的原始数据呢