deng_1997 发表于 2017-7-26 19:10:58

关于直立小车代码的问题,零基础菜鸟问题,求解答,万分感谢。

mpu6050.c函数里pitch应该是我们balance函数里的angle,但是并没有找到将pitch定义成angle的赋值语句,main函数里又莫名其妙的出现了angle_balance,请问这是什么情况,怎么将pitch对应到balance的?
1.main函数里:       
Balance_Pwm =balance(Angle_Balance,Gyro_Balance);
2.control.c函数里pid直立控制:
int balance(float Angle,float Gyro)
{
   float Bias;
       int balance;
       Bias=Angle-Zhongzhi;                     //===求出平衡的角度中值 和机械相关
       balance=Balance_Kp*Bias+Gyro*Balance_Kd;   //===计算平衡控制的电机PWMPD控制   kp是P系数 kd是D系数
       return balance;
}
3.mpu6050.c函数里:
/**************************************************************************
函数功能:读取MPU6050内置DMP的姿态信息
入口参数:无
返回值:无
作    者:平衡小车之家
**************************************************************************/
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
                                }

}


admin 发表于 2017-7-27 23:16:54

在control.c文件夹里面有一个读取角度的函数
页: [1]
查看完整版本: 关于直立小车代码的问题,零基础菜鸟问题,求解答,万分感谢。