diff --git a/MDK-ARM/.vscode/uv4.log b/MDK-ARM/.vscode/uv4.log index f22d47c..0d6c20e 100644 --- a/MDK-ARM/.vscode/uv4.log +++ b/MDK-ARM/.vscode/uv4.log @@ -1,10 +1,8 @@ *** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\keil\ARM\ARMCC\Bin' Build target 'R1' -compiling shootTask.cpp... compiling shoot.cpp... -compiling ball.cpp... linking... -Program Size: Code=31644 RO-data=1832 RW-data=268 ZI-data=32252 +Program Size: Code=31636 RO-data=1832 RW-data=272 ZI-data=32248 FromELF: creating hex file... "R1\R1.axf" - 0 Error(s), 0 Warning(s). -Build Time Elapsed: 00:00:06 +Build Time Elapsed: 00:00:05 diff --git a/MDK-ARM/.vscode/uv4.log.lock b/MDK-ARM/.vscode/uv4.log.lock index ad9a215..29334e0 100644 --- a/MDK-ARM/.vscode/uv4.log.lock +++ b/MDK-ARM/.vscode/uv4.log.lock @@ -1 +1 @@ -2025/6/26 3:22:31 \ No newline at end of file +2025/6/26 19:15:12 \ No newline at end of file diff --git a/MDK-ARM/R1.uvoptx b/MDK-ARM/R1.uvoptx index 59120d2..87c4110 100644 --- a/MDK-ARM/R1.uvoptx +++ b/MDK-ARM/R1.uvoptx @@ -158,7 +158,7 @@ 0 1 - rc_ctrl + rc_ctrl,0x0A 1 @@ -185,6 +185,11 @@ 1 nuc_v + + 6 + 1 + asd,0x0A + diff --git a/MDK-ARM/README.md b/MDK-ARM/README.md index c7c22c8..d329367 100644 --- a/MDK-ARM/README.md +++ b/MDK-ARM/README.md @@ -36,8 +36,22 @@ r1上层 + 拨置👇发射清空掉落信号 + 用一个攻守方档 + + 初始移动到最上面 更待蓄力(不管攻方守方都在最上面等待) + 攻方时拨下立马蓄力并伸出(可小角度) + 守方时不动并保持缩回 + 👇 运球档正常运球 + 中 初始档直接缩回 + 👆 配合档 完成配合并伸出才能发射 + ++ 传球模式 + + 自动 + + 底盘的传球对准档拨下 + + 我的蓄力进入传球拟合 + + 继续拨下发射 + + 手动 + + 目前只能打固定距离 + + 切相同传球档 自动蓄力到传球力度 + + 发射档发射 + + 图传多距离 + + 传球档 + + 旋钮+看图传点位调整 diff --git a/User/bsp/TopDefine.h b/User/bsp/TopDefine.h index 0f5be42..190ffdd 100644 --- a/User/bsp/TopDefine.h +++ b/User/bsp/TopDefine.h @@ -43,6 +43,8 @@ #define HANDING_FINISH (1<<2) //伸缩结束 #define EXTEND_OK (1<<3) +//等待ok +#define WAIT_OK (1<<4) //要发送ok了 #define BALL_SEND (1<<6) diff --git a/User/module/ball.cpp b/User/module/ball.cpp index 534d011..d422d68 100644 --- a/User/module/ball.cpp +++ b/User/module/ball.cpp @@ -12,7 +12,7 @@ extern int ball_exit; //伸缩 #define I_ANGLE 147 #define O_ANGLE 187 -#define WAIT_POS 165 +#define WAIT_POS 170 //PE11 气缸 diff --git a/User/module/shoot.cpp b/User/module/shoot.cpp index 9de9789..4a62041 100644 --- a/User/module/shoot.cpp +++ b/User/module/shoot.cpp @@ -1,5 +1,6 @@ #include "TopDefine.h" #include "shoot.hpp" +#include "userTask.h" #include "main.h" #include "remote_control.h" #include "FreeRTOS.h" @@ -124,7 +125,7 @@ int Shoot::GO_SendData(float pos,float limit) // F键 sw[0]👆 1800 👇200 // E键 sw[1] 👆 200 shoot 中 1000 stop sw[2]200 sw[2]👇1800 -// G键 sw[6]👆 1800 中 1000 👇200 +// G键 sw[6]👆 200 中 1000 👇1800 // B键 sw[3]👆 200 开 中 1000 👇1800 关 // sw[5] 👆 200 👇1800 //左旋 sw[7] 200 --1800 @@ -360,6 +361,8 @@ void Shoot::RemoveError() { #if ONE_CONTROL +int asd=0; + void Shoot::shoot_control() { @@ -417,33 +420,34 @@ break; if(shoot_thread & EXTEND_OK) // 如果收到伸缩完成的通知 { + asd++; fire_pos = INIT_POS + knob_increment; // 根据旋钮值调整发射位置 go1.Pos = fire_pos; // 设置蓄力电机位置 + limit_speed=TO_BOTTOM; if(feedback.fd_gopos >= fire_pos - GO_ERROR && feedback.fd_gopos <= fire_pos + GO_ERROR) { BSP_Buzzer_Start(); BSP_Buzzer_Set(1,5000); } } - if(shoot_thread & READY_TELL) // 如果收到等待配合的通知 + else { ball_receive(); // 执行接收球的操作 } - else - { - go1.Pos = TOP_POS-3.0f; //-208 - limit_speed=TO_TOP;//快速上去 - t_posSet = Tigger_ZERO; // 扳机松开 - } + break; case DOWN1: if(shoot_thread & EXTEND_OK) { - BSP_Buzzer_Stop(); t_posSet = Tigger_ZERO; // 扳机扣动 射出 - currentState = SHOOT_IDLE; // 默认回到空闲状态 - osThreadFlagsClear(EXTEND_OK); + if(feedback.fd_tpos>=Tigger_ZERO-20) + { + BSP_Buzzer_Stop(); + currentState = SHOOT_IDLE; // 默认回到空闲状态 + osThreadFlagsClear(EXTEND_OK); + } + } break; @@ -463,7 +467,7 @@ break; } } -else if(ready_key==DEFENSE)//攻守档总控 +else { go1.Pos = TOP_POS-3.0f; //-208 limit_speed=TO_TOP;//快速上去 @@ -486,6 +490,8 @@ void Shoot ::ball_receive() { case SHOOT_IDLE: // 初始状态:钩子移动到顶部,钩住拉簧 + if(shoot_thread & READY_TELL) // 如果收到等待通知 + { control_pos = TOP_POS; limit_speed=TO_TOP;//快速上去 t_posSet = Tigger_ZERO; @@ -493,6 +499,7 @@ void Shoot ::ball_receive() { currentState = GO_TOP; // 切换到准备发射状态 } + } break; case GO_TOP: @@ -508,7 +515,7 @@ void Shoot ::ball_receive() limit_speed=TO_BOTTOM;//慢速下来 if(feedback.fd_gopos >= BOTTOM_POS - 1.0f && feedback.fd_gopos <= BOTTOM_POS + 1.0f) { - + osThreadFlagsClear(READY_TELL); // 清除任务通知标志位 } diff --git a/User/module/shoot.hpp b/User/module/shoot.hpp index 7f96aab..db6aaa5 100644 --- a/User/module/shoot.hpp +++ b/User/module/shoot.hpp @@ -18,7 +18,8 @@ typedef enum { SHOOT_RETURN, // 自动返回状态 //运射配合 GO_TOP, - BAKC + BAKC, + WAIT_CHANGE } ShootState_t; // // 定义状态枚举