遥控器控制,光电停止已测,看情况加vesc急停

This commit is contained in:
ZHAISHUI04 2025-03-29 17:35:53 +08:00
parent 5de502c448
commit 008ceaddf1
10 changed files with 73 additions and 49 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,12 +273,14 @@ PD14.GPIOParameters=GPIO_Label
PD14.GPIO_Label=Buzzer
PD14.Locked=true
PD14.Signal=S_TIM4_CH3
PE9.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label
PE9.GPIO_Label=FlagForUpper
PE11.GPIOParameters=GPIO_PuPd
PE11.GPIO_PuPd=GPIO_PULLUP
PE11.Locked=true
PE11.Signal=GPIO_Input
PE9.GPIOParameters=GPIO_PuPd
PE9.GPIO_PuPd=GPIO_PULLUP
PE9.Locked=true
PE9.PinState=GPIO_PIN_SET
PE9.Signal=GPIO_Output
PE9.Signal=GPIO_Input
PF6.GPIOParameters=GPIO_Speed,GPIO_Label
PF6.GPIO_Label=IMU_HEAT_PWM
PF6.GPIO_Speed=GPIO_SPEED_FREQ_HIGH

View File

@ -78,8 +78,6 @@ void Error_Handler(void);
#define GYRO_INT_Pin GPIO_PIN_5
#define GYRO_INT_GPIO_Port GPIOC
#define GYRO_INT_EXTI_IRQn EXTI9_5_IRQn
#define FlagForUpper_Pin GPIO_PIN_9
#define FlagForUpper_GPIO_Port GPIOE
#define GYRO_CS_Pin GPIO_PIN_0
#define GYRO_CS_GPIO_Port GPIOB

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

@ -60,9 +60,6 @@ void MX_GPIO_Init(void)
/*Configure GPIO pin Output Level */
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);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GYRO_CS_GPIO_Port, GYRO_CS_Pin, GPIO_PIN_SET);
@ -92,12 +89,11 @@ 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;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
/*Configure GPIO pins : PE9 PE11 */
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_11;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
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

@ -120,7 +120,7 @@
<SetRegEntry>
<Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U00160029510000164E574E32 -O206 -SF5000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO131091 -TC12000000 -TT12000000 -TP21 -TDS8005 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IGHx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
<Name>-U00260035480000034E575152 -O206 -SF5000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO131091 -TC12000000 -TT12000000 -TP21 -TDS8005 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IGHx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
@ -235,6 +235,21 @@
<WinNumber>1</WinNumber>
<ItemText>flaggg,0x0A</ItemText>
</Ww>
<Ww>
<count>16</count>
<WinNumber>1</WinNumber>
<ItemText>aaaa,0x0A</ItemText>
</Ww>
<Ww>
<count>17</count>
<WinNumber>1</WinNumber>
<ItemText>imu_temp_pid_param,0x0A</ItemText>
</Ww>
<Ww>
<count>18</count>
<WinNumber>1</WinNumber>
<ItemText>imu_temp,0x0A</ItemText>
</Ww>
</WatchWindow1>
<WatchWindow2>
<Ww>

Binary file not shown.

View File

@ -70,6 +70,10 @@ int8_t UP_UpdateFeedback(UP_t *u, const CAN_t *can, CMD_t *c) {
u->cmd =c;
if(HAL_GPIO_ReadPin (GPIOE,GPIO_PIN_9)==GPIO_PIN_RESET) u->Light_Flag =1;
else u->Light_Flag =0;
return 0;
}
@ -201,9 +205,11 @@ int8_t ALL_Motor_Control(UP_t *u,CAN_Output_t *out)
GO_SendData(u,0 ,u->motor_target .go_shoot );
GO_SendData(u,0 ,u->motor_target .go_shoot );
GO_SendData(u,1 ,u->motor_target .go_spin);
VESC_M5065_Control(u, u->motor_target .VESC_5065_M1_rpm );
for(int i=0;i<4;i++){
out ->motor3508 .as_array[i]=u->final_out.final_3508out [i] ;
@ -211,6 +217,7 @@ int8_t ALL_Motor_Control(UP_t *u,CAN_Output_t *out)
out ->chassis5065 .erpm [0]= u->final_out .final_VESC_5065_M1out ;
out ->chassis5065 .erpm [1]= -u->final_out .final_VESC_5065_M2out ;
out ->chassis6020 .as_array [2]=u->final_out .final_pitchout ;
@ -264,30 +271,22 @@ int8_t UP_control(UP_t *u,CAN_Output_t *out,CMD_t *c)
u->state .Pitch_flag =Not_started_Pit;
u->state .last_state = Not_started_Pit;
u->motor_target .go_shoot =0;
u->motor_target .M2006_angle =-140;
break;
case Pitch_pull :
if(u->state .last_state == Not_started_Pit)
{
u->motor_target .go_shoot =-300;
u->motor_target .M2006_angle =-140;
if(u->motorfeedback .GO_motor_info[0]->Pos < (-4.8)) //到达位置后再扣扳机
{
u->motor_target .M2006_angle =0;
if(u->motorfeedback .M2006.total_angle>-5)
{//避免没勾上就拉
u->motor_target .go_shoot =0;
u->state .Pitch_flag = Launch_Ready ;
u->motor_target .VESC_5065_M1_rpm = 40000;
u->motor_target .VESC_5065_M2_rpm = 40000;
u->state .Pitch_flag = Launch_Ready ;
u->state .last_state = Launch_Ready;
}
}
}
break ;
@ -296,8 +295,18 @@ int8_t UP_control(UP_t *u,CAN_Output_t *out,CMD_t *c)
{
u->motor_target .M2006_angle =-140;
if((u->Light_Flag) ==1){
u->motor_target .VESC_5065_M1_rpm = 0;
u->motor_target .VESC_5065_M2_rpm = 0;
u->motor_target .M2006_angle =0;
u->state .Pitch_flag = Done_Pit ;
u->state .last_state = Done_Pit;
}
}
{

View File

@ -117,6 +117,7 @@ typedef struct
typedef struct{
uint8_t up_task_run;
const UP_Param_t *param;
UP_Imu_t pos088;
@ -124,6 +125,8 @@ typedef struct{
/*控制及状态*/
CMD_t *cmd;
Oper_control_state_t state;//上层机构的运行状态
int Light_Flag;
struct{
fp32 rotor_pit6020ecd;
@ -192,7 +195,7 @@ typedef struct{
LowPassFilter2p_t filled[6]; /* 输出滤波器滤波器数组 */
fp32 vofa_send[8];
fp32 vofa_send[8];

View File

@ -35,7 +35,7 @@ float aaa=0;
float bbb=0;
float CCC=0;
int aaaa;
/**
* \brief
*
@ -59,10 +59,10 @@ void Task_up(void *argument)
// GM6020_control(&UP, 100) ;
// UP_M3508_speed(&UP, 500);
// UP_angle_control(&UP,0,M2006);
// UP_angle_control(&UP,bbb,M2006);
//
//
// VESC_M5065_Control(&UP, 20000);
// VESC_M5065_Control(&UP, 2000);
//
@ -70,7 +70,7 @@ void Task_up(void *argument)
// GO_SendData(&UP, 0,aaa);
UP_control(&UP,&UP_CAN_out,&up_cmd);
ALL_Motor_Control(&UP,&UP_CAN_out);
osDelay(1);