恢复stash

This commit is contained in:
ZHAISHUI04 2025-03-31 16:17:10 +08:00
parent 1488098d60
commit 6cbf728f10
9 changed files with 174 additions and 54 deletions

View File

@ -145,23 +145,24 @@ Mcu.Pin24=PA4
Mcu.Pin25=PC4
Mcu.Pin26=PC5
Mcu.Pin27=PE9
Mcu.Pin28=PA7
Mcu.Pin29=PB0
Mcu.Pin28=PE11
Mcu.Pin29=PA7
Mcu.Pin3=PB3
Mcu.Pin30=VP_CRC_VS_CRC
Mcu.Pin31=VP_FREERTOS_VS_CMSIS_V2
Mcu.Pin32=VP_SYS_VS_Systick
Mcu.Pin33=VP_TIM4_VS_ClockSourceINT
Mcu.Pin34=VP_TIM7_VS_ClockSourceINT
Mcu.Pin35=VP_TIM10_VS_ClockSourceINT
Mcu.Pin36=VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS
Mcu.Pin30=PB0
Mcu.Pin31=VP_CRC_VS_CRC
Mcu.Pin32=VP_FREERTOS_VS_CMSIS_V2
Mcu.Pin33=VP_SYS_VS_Systick
Mcu.Pin34=VP_TIM4_VS_ClockSourceINT
Mcu.Pin35=VP_TIM7_VS_ClockSourceINT
Mcu.Pin36=VP_TIM10_VS_ClockSourceINT
Mcu.Pin37=VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS
Mcu.Pin4=PA14
Mcu.Pin5=PA13
Mcu.Pin6=PB7
Mcu.Pin7=PB6
Mcu.Pin8=PD0
Mcu.Pin9=PC11
Mcu.PinsNb=37
Mcu.PinsNb=38
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F407IGHx
@ -272,9 +273,14 @@ PD14.GPIOParameters=GPIO_Label
PD14.GPIO_Label=Buzzer
PD14.Locked=true
PD14.Signal=S_TIM4_CH3
PE11.GPIOParameters=PinState,GPIO_PuPd
PE11.GPIO_PuPd=GPIO_PULLDOWN
PE11.Locked=true
PE11.PinState=GPIO_PIN_SET
PE11.Signal=GPIO_Output
PE9.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label
PE9.GPIO_Label=FlagForUpper
PE9.GPIO_PuPd=GPIO_PULLUP
PE9.GPIO_PuPd=GPIO_PULLDOWN
PE9.Locked=true
PE9.PinState=GPIO_PIN_SET
PE9.Signal=GPIO_Output

View File

@ -190,7 +190,7 @@
#define USE_HAL_SMBUS_REGISTER_CALLBACKS 0U /* SMBUS register callback disabled */
#define USE_HAL_SPI_REGISTER_CALLBACKS 0U /* SPI register callback disabled */
#define USE_HAL_TIM_REGISTER_CALLBACKS 0U /* TIM register callback disabled */
#define USE_HAL_UART_REGISTER_CALLBACKS 1U /* UART register callback disabled */
#define USE_HAL_UART_REGISTER_CALLBACKS 0U /* UART register callback disabled */
#define USE_HAL_USART_REGISTER_CALLBACKS 0U /* USART register callback disabled */
#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U /* WWDG register callback disabled */

View File

@ -61,7 +61,7 @@ void MX_GPIO_Init(void)
HAL_GPIO_WritePin(ACCL_CS_GPIO_Port, ACCL_CS_Pin, GPIO_PIN_SET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(FlagForUpper_GPIO_Port, FlagForUpper_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOE, FlagForUpper_Pin|GPIO_PIN_11, GPIO_PIN_SET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GYRO_CS_GPIO_Port, GYRO_CS_Pin, GPIO_PIN_SET);
@ -92,12 +92,12 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = FlagForUpper_Pin;
/*Configure GPIO pins : PEPin PE11 */
GPIO_InitStruct.Pin = FlagForUpper_Pin|GPIO_PIN_11;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(FlagForUpper_GPIO_Port, &GPIO_InitStruct);
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = GYRO_CS_Pin;

View File

@ -79,7 +79,8 @@ int main(void)
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. * HAL_Init();
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
@ -94,7 +95,6 @@ int main(void)
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
MX_SPI1_Init();
MX_TIM4_Init();

View File

@ -235,6 +235,11 @@
<WinNumber>1</WinNumber>
<ItemText>flaggg,0x0A</ItemText>
</Ww>
<Ww>
<count>16</count>
<WinNumber>1</WinNumber>
<ItemText>ddd</ItemText>
</Ww>
</WatchWindow1>
<WatchWindow2>
<Ww>

View File

@ -46,6 +46,21 @@ static const ConfigParam_t param_chassis ={
.i_limit = 2000.0f,
.out_limit = 3000.0f,
},
.M3508_angle_param = {
.p = 10.0f,
.i = 0.0f,
.d = 1.5f,
.i_limit = 1000.0f,
.out_limit = 3000.0f,
},
.M3508_speed_param={
.p = 5.1f,
.i = 0.02f,
.d = 3.2f,
.i_limit = 200.0f,
.out_limit =6000.0f,
},
.UP_GM6020_angle_param={
.p = 30.0f,
.i = 20.0f,
@ -60,13 +75,7 @@ static const ConfigParam_t param_chassis ={
.i_limit = 200.0f,
.out_limit = 3000.0f
},
.M3508_speed_param={
.p = 15.1f,
.i = 0.02f,
.d = 3.2f,
.i_limit = 200.0f,
.out_limit =6000.0f,
},
.go_param={
.rev = 0,
.T=0.1,

View File

@ -11,11 +11,25 @@
#define MOTOR2006_ECD_TO_ANGLE (360.0 / 8191.0 / (GEAR_RATIO_2006)) //2006编码值转轴角度
#define MOTOR3508_ECD_TO_ANGLE (360.0 / 8191.0 / (GEAR_RATIO_3508)) //3508编码值转轴角度
/*投球*/
#define M2006_INIT_ANGLE (-120) //初始和发射
#define GO1_INIT_POSITION (0) //go初始
#define M2006_TRIGGER (0) //扳机
#define GO_POSITION_TRIGGER (-300) //go发射控制值
#define GO_POSITION_PITCH_FD (-4.8f) //反馈检测
/*运球*/
#define M3508_INIT_ANGLE (0) //3508
#define M3508_HIGH_ANGLE (1000) //3508升起角度
#define GO2_Flip_timing (200) // go的翻转时机以3508角度反馈值为准
#define GO2_Flip_ANGLE (150) //go2翻转角度
#define BALL_REL_TIME (1.76) //球放开时机以go的反馈值为准
// 定义继电器控制
#define RELAY1_TOGGLE(state) HAL_GPIO_WritePin(GPIOE, GPIO_PIN_9, (state) ? GPIO_PIN_SET : GPIO_PIN_RESET)
#define RELAY2_TOGGLE(state) HAL_GPIO_WritePin(GPIOE, GPIO_PIN_11, (state) ? GPIO_PIN_SET : GPIO_PIN_RESET)
int8_t up_init(UP_t *u,const UP_Param_t *param,float target_freq)
{
@ -40,6 +54,10 @@ int8_t up_init(UP_t *u,const UP_Param_t *param,float target_freq)
GO_M8010_send_data(BSP_UART_GetHandle(BSP_UART_RS485), i,u->param->go_param .rev ,u->param->go_param .T ,u->param->go_param .W ,0,u->param->go_param .K_P ,u->param->go_param .K_W );
}
RELAY1_TOGGLE (0);
RELAY2_TOGGLE (0);
/**/
u->state .Dribble_flag =Not_started_dri;
@ -250,7 +268,6 @@ int8_t UP_control(UP_t *u,CAN_Output_t *out,CMD_t *c)
{
if(u ==NULL) return 0;
if(u ==NULL) return 0;
switch (c->CMD_CtrlType )
{
@ -265,7 +282,7 @@ int8_t UP_control(UP_t *u,CAN_Output_t *out,CMD_t *c)
u->state .last_state = Not_started_Pit;
u->motor_target .go_shoot =0;
u->motor_target .M2006_angle =-140;
u->motor_target .M2006_angle =M2006_INIT_ANGLE;
break;
@ -273,17 +290,23 @@ int8_t UP_control(UP_t *u,CAN_Output_t *out,CMD_t *c)
if(u->state .last_state == Not_started_Pit)
{
<<<<<<< Updated upstream
u->motor_target .go_shoot =-2050;
u->motor_target .M2006_angle =-140;
if(u->motorfeedback .GO_motor_info[0]->Pos < (-35.20)) //到达位置后再扣扳机
=======
u->motor_target .go_shoot =GO_POSITION_TRIGGER;
if(u->motorfeedback .GO_motor_info[0]->Pos < (GO_POSITION_PITCH_FD)) //到达位置后再扣扳机
>>>>>>> Stashed changes
{
u->motor_target .M2006_angle =0;
u->motor_target .M2006_angle =M2006_INIT_ANGLE;
if(u->motorfeedback .M2006.total_angle>-5)
{//避免没勾上就拉
u->motor_target .go_shoot =0;
u->motor_target .go_shoot =GO1_INIT_POSITION;
u->state .Pitch_flag = Launch_Ready ;
u->state .last_state = Launch_Ready;
u->state .last_state = Launch_Ready;
}
@ -295,32 +318,59 @@ int8_t UP_control(UP_t *u,CAN_Output_t *out,CMD_t *c)
if (u->state .last_state == Launch_Ready)
{
u->motor_target .M2006_angle =-140;
u->motor_target .M2006_angle =M2006_INIT_ANGLE;
u->state .Pitch_flag = Done_Pit ;
u->state .last_state = Done_Pit;
}
{
}
break;
case Dribble:
{
// u->motor_target.M3508_angle = M3508_HIGH_ANGLE;
// if(u->motorfeedback .M3508 .total_angle >GO2_Flip_timing){
// u->motor_target .go_spin = GO2_Flip_ANGLE ;
//
// if(u->motorfeedback .GO_motor_info[2]->Pos > BALL_REL_TIME )
// {
// RELAY1_TOGGLE (0);
// RELAY2_TOGGLE (1);
//
//
// }
//
// }
//
// RELAY1_TOGGLE (0);
// RELAY2_TOGGLE (0);
}
break ;
}
break;
case MID_NAVI :
{
}
break ;
case PICK_t :
{
}
break;
default:
break;
@ -333,6 +383,39 @@ int8_t UP_control(UP_t *u,CAN_Output_t *out,CMD_t *c)
}
int8_t Dribble_Process(UP_t *u,CAN_Output_t *out,CMD_t *c)
{
if(u ==NULL) return 0;
switch (c->CMD_UP_mode)
case Dribble:
{
RELAY1_TOGGLE (1);
RELAY2_TOGGLE (0);
u->motor_target.M3508_angle = M3508_HIGH_ANGLE;
if(u->motorfeedback .M3508 .total_angle >GO2_Flip_timing){
u->motor_target .go_spin = GO2_Flip_ANGLE ;
if((u->motorfeedback .GO_motor_info[2]->Pos) > BALL_REL_TIME )
{
RELAY1_TOGGLE (0);
osDelay (10);
RELAY2_TOGGLE (1);
}
}
}
}

View File

@ -61,9 +61,16 @@ int8_t CMD_ParseRC(CMD_t *cmd,const CMD_RC_t *rc) {
{
if(rc->sw_r ==CMD_SW_UP) cmd ->CMD_CtrlType =MID_NAVI;; //左中,右上,雷达
if(rc->sw_r ==CMD_SW_MID) cmd ->CMD_UP_mode =Normal; //左中,右中,无模式
if(rc->sw_r ==CMD_SW_DOWN) cmd ->CMD_UP_mode =Dribble; //左中,右上,运球
if(rc->sw_r ==CMD_SW_MID)
{
cmd ->CMD_CtrlType =UP_RCcontrol;
cmd ->CMD_UP_mode =Normal; //左中,右中,无模式
}
if(rc->sw_r ==CMD_SW_DOWN)
{
cmd ->CMD_UP_mode =Dribble; //左中,右上,运球
cmd ->CMD_CtrlType =UP_RCcontrol;
}
}
else if(rc->sw_l==CMD_SW_DOWN)
{

View File

@ -34,6 +34,7 @@ static CMD_t up_cmd;
float aaa=0;
float bbb=0;
float CCC=0;
float ddd=0;
/**
@ -68,9 +69,18 @@ void Task_up(void *argument)
//
// GO_SendData(&UP, 1,CCC);
// GO_SendData(&UP, 0,aaa);
<<<<<<< Updated upstream
UP_control(&UP,&UP_CAN_out,&up_cmd);
// UP.motor_target .go_shoot =aaa;
// UP.motor_target .M2006_angle =bbb ;
=======
// UP_control(&UP,&UP_CAN_out,&up_cmd);
UP.motor_target .M3508_angle =CCC;
UP.motor_target .go_shoot =aaa;
UP.motor_target .M2006_angle =bbb;
UP.motor_target .go_spin =ddd;
>>>>>>> Stashed changes
ALL_Motor_Control(&UP,&UP_CAN_out);
osDelay(1);