From 3199bd2b4cee2747a31f1874a532ec0640a6742f Mon Sep 17 00:00:00 2001 From: myperworld Date: Sun, 8 Feb 2026 20:41:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DV1.4bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../platformio/src/main.cpp | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/v1.4 摄像头提乒乓球方案/platformio/src/main.cpp b/v1.4 摄像头提乒乓球方案/platformio/src/main.cpp index c1c3082..ed554e5 100644 --- a/v1.4 摄像头提乒乓球方案/platformio/src/main.cpp +++ b/v1.4 摄像头提乒乓球方案/platformio/src/main.cpp @@ -1295,18 +1295,10 @@ void processControllerData(const XboxControllerNotificationParser& remoteData) { last_btnB = remoteData.btnB; // 向前跳跃(非踢球模式) - if (remoteData.btnY && !last_btnY && robot_enabled && !trace_mode) { + if (remoteData.btnY && !last_btnY && robot_enabled ) { wrobot.jump = 1; forward_jump_flag = 1; } - // 追逐并转向踢会球模式 @@@@@@ - if (remoteData.btnY && !last_btnY && robot_enabled && trace_mode) { - if(kick_mode != "kick_run_mode"){ - SetKickMode("kick_run_mode"); - }else if(kick_mode == "kick_run_mode"){ - SetKickMode("kick_place_mode"); - } - } last_btnY = remoteData.btnY; // 向后跳跃(非踢球模式) @@ -1347,11 +1339,12 @@ void processControllerData(const XboxControllerNotificationParser& remoteData) { // 原地踢球模式 if (remoteData.btnSelect && !last_btnSelect && !remoteData.btnShare) { - trace_mode = !trace_mode; - if(trace_mode){ - SetKickMode("kick_place_mode"); // 原地踢球模式 + if(!trace_mode){ + SetKickMode("kick_place_mode"); // 守门模式 + Serial.println("守门模式XBOX"); }else { cancel_kick_mode(); + Serial.println("cancel_kick_mode"); } } @@ -1633,7 +1626,7 @@ void kick_ball_main(int dx, int dy) { ready_kick_ball(); // 准备踢球 } } - + // 运动踢球模式 if(kick_mode == "kick_run_mode"){ cam_aim_ball(dy); // 相机瞄准 @@ -1824,8 +1817,8 @@ void cancel_kick_mode(){ trace_mode = false; trace_ob_flag = false; chased_flag = false; + kick_mode = ""; - SetKickMode(""); dx_to_joyx = 9999; dy_to_joyy = 9999; yaw_to_joyx = 9999; @@ -1847,10 +1840,10 @@ void SetKickMode(String mode){ yaw_to_joyx = 9999; // 进入kick_run_mode时,记录当前偏航角作为基准0度 - if(mode == "kick_run_mode"){ + // if(mode == "kick_run_mode"){ kick_yaw_zero = mpu6050.getAngleZ(); // 读取当前偏航角(Z轴角度)作为基准 pid_yaw_align.error_prev = 0.0f; // 重置偏航对齐PID状态 - } + // } } void setRobotMode(int mode_id){