diff --git a/User/Module/config.c b/User/Module/config.c index 65a65cd..93311b2 100644 --- a/User/Module/config.c +++ b/User/Module/config.c @@ -110,13 +110,13 @@ static const ConfigParam_t param ={ }, /*投球*/ .PitchConfig_Config = { - .m2006_init_angle =-90, + .m2006_init_angle =-100, .m2006_trigger_angle =0, .go1_init_position = -50, .go1_Receive_ball = -5, //偏下 .go1_release_threshold =-210, .m2006_Screw_init=0, - .Pitch_angle =56, + .Pitch_angle =58, }, diff --git a/User/Module/up.c b/User/Module/up.c index df7dcd1..50969eb 100644 --- a/User/Module/up.c +++ b/User/Module/up.c @@ -317,7 +317,7 @@ int8_t UP_control(UP_t *u,CAN_Output_t *out,CMD_t *c) { if(u->DribbleContext.DribbleState== DRIBBLE_PREPARE){ - u->DribbleContext .DribbleState=DRIBBLE_TRANSLATE; + u->DribbleContext .DribbleState=DRIBBLE_PROCESS_DOWN; } //光电状态更新 Dribble_Process(u,out); @@ -444,8 +444,8 @@ int8_t Dribble_Process(UP_t *u, CAN_Output_t *out) case DRIBBLE_PROCESS_DOWN: u->motor_target.Dribble_M3508_speed[0]=u->DribbleContext .DribbleConfig.m3508_dribble_speed; - u->motor_target.Dribble_M3508_speed[1]=-u->DribbleContext .DribbleConfig.m3508_dribble_speed; - u->motor_target.Dribble_M3508_speed[2]=-u->DribbleContext .DribbleConfig.m3508_dribble_speed; + u->motor_target.Dribble_M3508_speed[1]=u->DribbleContext .DribbleConfig.m3508_dribble_speed; + u->motor_target.Dribble_M3508_speed[2]=u->DribbleContext .DribbleConfig.m3508_dribble_speed; if(is_reached_multiple(u->motorfeedback .DJmotor_feedback [0].rpm, u->motorfeedback .DJmotor_feedback [1].rpm, @@ -461,8 +461,8 @@ int8_t Dribble_Process(UP_t *u, CAN_Output_t *out) if(common_speed_flag){ if(u->DribbleContext .DribbleConfig .light_ball_flag == 0){//球下落检测,反转 u->motor_target.Dribble_M3508_speed[0]=u->DribbleContext .DribbleConfig.m3508_dribble_Reverse_speed; - u->motor_target.Dribble_M3508_speed[1]=-u->DribbleContext .DribbleConfig.m3508_dribble_Reverse_speed; - u->motor_target.Dribble_M3508_speed[2]=-u->DribbleContext .DribbleConfig.m3508_dribble_Reverse_speed; + u->motor_target.Dribble_M3508_speed[1]=u->DribbleContext .DribbleConfig.m3508_dribble_Reverse_speed; + u->motor_target.Dribble_M3508_speed[2]=u->DribbleContext .DribbleConfig.m3508_dribble_Reverse_speed; u->DribbleContext .DribbleState=DRIBBLE_PROCESS_UP; } @@ -475,8 +475,8 @@ int8_t Dribble_Process(UP_t *u, CAN_Output_t *out) common_speed_flag =0; if((u->motorfeedback .DJmotor_feedback [0].rpm<-2000)&& - (u->motorfeedback .DJmotor_feedback [1].rpm>2000)&& - (u->motorfeedback .DJmotor_feedback [2].rpm>2000) + (u->motorfeedback .DJmotor_feedback [1].rpm>-2000)&& + (u->motorfeedback .DJmotor_feedback [2].rpm>-2000) ){ if(u->DribbleContext .DribbleConfig .light_ball_flag == 1){ diff --git a/User/device/can_use.c b/User/device/can_use.c index 4010af2..24de7ac 100644 --- a/User/device/can_use.c +++ b/User/device/can_use.c @@ -93,7 +93,8 @@ void CAN_Encoder_Decode(CAN_EncoderFeedback_t *feedback, { case 0x01: feedback->ecd =raw[3]|raw[4]<<8|raw[5]<<16|raw[6]<<24; - feedback->angle=(fp32)feedback->ecd*360/CAN_ENCODER_RESOLUTION-151.0f; + feedback->angle=(fp32)(2048-(fp32)feedback->ecd)/(2048-1797)*(70.0f-48.0f)+48.0f; + break; } }