三摩擦速度问题暂时没有了,不知道上了发射后会不会抽搐

This commit is contained in:
ws 2025-04-28 19:23:08 +08:00
parent ec3771a1a2
commit 2cebb50876
6 changed files with 31 additions and 49 deletions

View File

@ -227,7 +227,7 @@ void Ball::ballHadling(void)
case BALL_FORWARD: case BALL_FORWARD:
HAL_GPIO_WritePin(PAW_GPIO_Port, PAW_Pin, GPIO_PIN_SET); // 打开气缸爪子 HAL_GPIO_WritePin(PAW_GPIO_Port, PAW_Pin, GPIO_PIN_SET); // 打开气缸爪子
osDelay(10); osDelay(5);
HAL_GPIO_WritePin(DOWN_GPIO_Port, DOWN_Pin, GPIO_PIN_SET); // 打开下气缸 HAL_GPIO_WritePin(DOWN_GPIO_Port, DOWN_Pin, GPIO_PIN_SET); // 打开下气缸
currentState1 = BALL_DROP; // 切换到球下落状态 currentState1 = BALL_DROP; // 切换到球下落状态
break; break;
@ -260,7 +260,7 @@ void Ball::ballHadling(void)
case BALL_CLOSE: case BALL_CLOSE:
if (triggerCount == 2) // 确保是第二次触发 if (triggerCount == 2) // 确保是第二次触发
{ {
//osDelay(10); // 延时去抖 osDelay(100); // 延时去抖
HAL_GPIO_WritePin(PAW_GPIO_Port, PAW_Pin, GPIO_PIN_RESET); // 闭合气缸爪子 HAL_GPIO_WritePin(PAW_GPIO_Port, PAW_Pin, GPIO_PIN_RESET); // 闭合气缸爪子
currentState1 = BALL_REVERSE; // 切换到反转状态 currentState1 = BALL_REVERSE; // 切换到反转状态
} }

View File

@ -7,7 +7,7 @@
#include "djiMotor.h" #include "djiMotor.h"
#include "pid.h" #include "pid.h"
#define HANDLING3 0 #define HANDLING3 1
// 定义状态枚举 // 定义状态枚举
typedef enum { typedef enum {

View File

@ -18,8 +18,8 @@ void FunctionBall(void *argument)
{ {
(void)argument; /* 未使用argument消除警告 */ (void)argument; /* 未使用argument消除警告 */
// const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_BALL; const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_BALL;
// uint32_t tick = osKernelGetTickCount(); uint32_t tick = osKernelGetTickCount();
while(1) while(1)
{ {
@ -30,19 +30,17 @@ void FunctionBall(void *argument)
//abc=HAL_GPIO_ReadPin(STOP_GPIO_Port, STOP_Pin); //abc=HAL_GPIO_ReadPin(STOP_GPIO_Port, STOP_Pin);
ball.ballHadling(); // 处理摩擦轮转动 ball.ballHadling(); // 处理摩擦轮转动
// speedm=4000; ball.Spin(speedm,speedm1);
// speedm1=4000; ball.Send_control();
// ball.Spin(speedm,speedm1);
// ball.Send_control();
// vofa[0] = speedm; // 发送电机角度数据 vofa[0] = speedm; // 发送电机角度数据
// vofa[1] = -ball.hand_Motor[0]->speed_rpm; // 发送电机角度数据 vofa[1] = -ball.hand_Motor[0]->speed_rpm; // 发送电机角度数据
// vofa[2] = ball.hand_Motor[1]->speed_rpm; // 发送电机速度数据 vofa[2] = ball.hand_Motor[1]->speed_rpm; // 发送电机速度数据
// vofa[3] = ball.hand_Motor[2]->speed_rpm; // 发送电机速度数据 vofa[3] = ball.hand_Motor[2]->speed_rpm; // 发送电机速度数据
// vofa_tx_main(vofa); // 发送数据到虚拟串口 vofa_tx_main(vofa); // 发送数据到虚拟串口
// tick += delay_tick; /* 计算下一个唤醒时刻 */ tick += delay_tick; /* 计算下一个唤醒时刻 */
// osDelayUntil(tick); osDelayUntil(tick);
} }
} }

View File

@ -15,11 +15,11 @@ void FunctionCan(void *argument)
{ {
(void)argument; /* 未使用argument消除警告 */ (void)argument; /* 未使用argument消除警告 */
//const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_CAN; const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_CAN;
djiInit(); djiInit();
//uint32_t tick = osKernelGetTickCount(); uint32_t tick = osKernelGetTickCount();
while(1) while(1)
{ {
#ifdef DEBUG #ifdef DEBUG
@ -30,7 +30,7 @@ void FunctionCan(void *argument)
djiMotorEncode(); djiMotorEncode();
can2MotorEncode(); can2MotorEncode();
// tick += delay_tick; /* 计算下一个唤醒时刻 */ tick += delay_tick; /* 计算下一个唤醒时刻 */
// osDelayUntil(tick); osDelayUntil(tick);
} }
} }

View File

@ -15,23 +15,12 @@ const osThreadAttr_t attr_gimbal = {
.stack_size = 128 * 4, .stack_size = 128 * 4,
}; };
const osThreadAttr_t attr_take = {
.name = "take",
.priority = osPriorityRealtime,
.stack_size = 128 * 4,
};
const osThreadAttr_t attr_can = { const osThreadAttr_t attr_can = {
.name = "can", .name = "can",
.priority = osPriorityRealtime, .priority = osPriorityRealtime,
.stack_size = 128 * 8, .stack_size = 256 * 4,
}; };
const osThreadAttr_t attr_rc = {
.name = "rc",
.priority = osPriorityRealtime,
.stack_size = 128 * 8,
};
const osThreadAttr_t attr_ball = { const osThreadAttr_t attr_ball = {
.name = "ball", .name = "ball",
@ -41,7 +30,7 @@ const osThreadAttr_t attr_ball = {
const osThreadAttr_t attr_nuc = { const osThreadAttr_t attr_nuc = {
.name = "nuc", .name = "nuc",
.priority = osPriorityRealtime, .priority = osPriorityRealtime,
.stack_size = 256 * 4, .stack_size = 128 * 4,
}; };

View File

@ -13,16 +13,13 @@ extern "C" {
/* Exported constants ------------------------------------------------------- */ /* Exported constants ------------------------------------------------------- */
/* 所有任务都要define一个“任务运行频率”和“初始化延时” */ /* 所有任务都要define一个“任务运行频率”和“初始化延时” */
#define TASK_FREQ_CTRL_CHASSIS (500u) #define TASK_FREQ_CTRL_GIMBAL (250u)
#define TASK_FREQ_CTRL_GIMBAL (500u)
#define TASK_FREQ_CTRL_SHOOT (500u) #define TASK_FREQ_CTRL_SHOOT (500u)
#define TASK_FREQ_CTRL_CAP (100u)
#define TASK_FREQ_CTRL_COMMAND (500u) #define TASK_FREQ_CTRL_COMMAND (500u)
#define TASK_FREQ_INFO (4u)
#define TASK_FREQ_MONITOR (2u) #define TASK_FREQ_MONITOR (2u)
#define TASK_FREQ_CAN (500u) #define TASK_FREQ_CAN (1500u)
#define TASK_FREQ_AI (500u) #define TASK_FREQ_AI (500u)
#define TASK_FREQ_BALL (250u) #define TASK_FREQ_BALL (500u)
#define TASK_INIT_DELAY_INFO (500u) #define TASK_INIT_DELAY_INFO (500u)
#define TASK_INIT_DELAY_MONITOR (10) #define TASK_INIT_DELAY_MONITOR (10)
@ -42,11 +39,11 @@ typedef struct
struct struct
{ {
osThreadId_t can; osThreadId_t can;
osThreadId_t rc; //osThreadId_t rc;
osThreadId_t nuc; osThreadId_t nuc;
osThreadId_t shoot; osThreadId_t shoot;
osThreadId_t gimbal; osThreadId_t gimbal;
osThreadId_t handling; //osThreadId_t handling;
osThreadId_t ball; osThreadId_t ball;
}thread; }thread;
@ -67,32 +64,32 @@ typedef struct
#ifdef DEBUG #ifdef DEBUG
struct { struct {
UBaseType_t can; UBaseType_t can;
UBaseType_t rc; //UBaseType_t rc;
UBaseType_t nuc; UBaseType_t nuc;
UBaseType_t shoot; UBaseType_t shoot;
UBaseType_t gimbal; UBaseType_t gimbal;
UBaseType_t handling; //UBaseType_t handling;
UBaseType_t ball; UBaseType_t ball;
} stack_water_mark; /* stack使用 */ } stack_water_mark; /* stack使用 */
struct { struct {
float can; float can;
float rc; //float rc;
float nuc; float nuc;
float shoot; float shoot;
float gimbal; float gimbal;
float handling; //float handling;
float ball; float ball;
} freq; /* 任务运行频率 */ } freq; /* 任务运行频率 */
struct { struct {
float can; float can;
float rc; //float rc;
float nuc; float nuc;
float shoot; float shoot;
float gimbal; float gimbal;
float handling; //float handling;
float ball; float ball;
} last_up_time; /* 任务最近运行时 */ } last_up_time; /* 任务最近运行时 */
#endif #endif
@ -103,9 +100,7 @@ typedef struct
extern task_t task_struct; /* 任务结构体实例化 */ extern task_t task_struct; /* 任务结构体实例化 */
extern const osThreadAttr_t attr_shoot; extern const osThreadAttr_t attr_shoot;
extern const osThreadAttr_t attr_gimbal; extern const osThreadAttr_t attr_gimbal;
extern const osThreadAttr_t attr_take;
extern const osThreadAttr_t attr_can; extern const osThreadAttr_t attr_can;
extern const osThreadAttr_t attr_rc;
extern const osThreadAttr_t attr_ball; extern const osThreadAttr_t attr_ball;
extern const osThreadAttr_t attr_nuc; extern const osThreadAttr_t attr_nuc;
extern const osEventFlagsAttr_t attr_event; extern const osEventFlagsAttr_t attr_event;