|
按楼上的意思,我因为不有装气压传感器和数字罗盘所以才出现的I2C ERROR
在把气压和数字指南针在def.h中屏蔽后,I2C 的ERROR终于为0了,参看下图。
代码如入下(def.h的403行开始)
#if defined(FREEIMUv04)
#define MPU6050
#define HMC5883
#define MS561101BA
#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = -X; accADC[PITCH] = -Y; accADC[YAW] = Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = -Z;}
#define MPU6050_EN_I2C_BYPASS // MAG connected to the AUX I2C bus of MPU6050
#undef INTERNAL_I2C_PULLUPS
#endif
修改成
#if defined(FREEIMUv04)
#define MPU6050
// #define HMC5883
// #define MS561101BA
#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = -X; accADC[PITCH] = -Y; accADC[YAW] = Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}//
// #define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = -Z;}
// #define MPU6050_EN_I2C_BYPASS // MAG connected to the AUX I2C bus of MPU6050
#undef INTERNAL_I2C_PULLUPS
#endif
但是在P=10;D=50时,四轴依然晃动,但不是高频震动。但是在改P=3.4;D=9;的时候,感觉相对之前稍微控制稳定一点点,但依然是不稳定,控制不住。
同样再咨询一个问题。为什么 我的Z值,总是512左右呢?这个是因为地球重力吗?我即便按CALIB_ACC后,Z短暂规0后,依然会落在512左右的数值上。
请教楼上的大侠,你说的debug1到debug4,具体是怎么会事?我没理解。为什么 你一下就能找到我的I2C ERROR不为零的问题 所在呢?
[ 本帖最后由 JoshuaShaw 于 2012-6-9 00:39 编辑 ] |
|