前些天,根据原子哥和火哥的MPU6050例程,自己仿写了一个IIC读MPU6050的程序,因为我要做的是小四轴,要姿态融合解算,只是单纯的原始数据没有实际价值,所以一开始我仿照crazepony的程序写DMP程序。但是,crazepony的DMP是自己写的,不是用官方的DMP库,我仿写起来很吃力,昨天花了7、8个小时也没有写出了。到了今天,突然醒悟,百度一下,发现大部分DMP都是移植官方的库,简单又方便,可怜我一直以为crazepong的写法才是简便的,转变思想后,立马移植官方的DMP库。
以下就是移植过程:
1、把官方DMP库即下图的eMPL和我自己的mpu605、myiic文件复制到[HARDWARE]文件夹中。
2、打开MDK工程,双击[HARDWARE],把3个文件都添加进去。
3、添加完之后,在main函数文件包含头文件。
4、在inv_mpu.c文件,将官方定义的i2cwrite,i2cread,delay_ms,get_ms函数换成自己的函数。
5、在inv_mpu.c文件的底部,添加MPU_DMP初始化函数mpu_dmp_init()和读DMP函数mpu_dmp_get_data(),并将获得的四元素转换成欧拉角。
6、到此就移植完,然后在main函数中把获得的数据打印出来。
到这一步,已经获取好数据了,下一步就是学习姿态控制算法了。
|