From 042d483b16cd75b3c3969ee1353cd085f9909f1a Mon Sep 17 00:00:00 2001 From: OnDYCLaptop Date: Thu, 5 Mar 2026 12:18:12 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B5=E5=8E=8B=E9=97=AD=E7=8E=AF=E7=9A=84sh?= =?UTF-8?q?ooter=20=E5=8F=8C=E6=93=8D=E5=9D=87=E5=8F=AF=E8=A7=A6=E5=8F=91a?= =?UTF-8?q?utoaim=20intaker=E5=B7=B2=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/frc/robot/Constants.java | 6 +++--- src/main/java/frc/robot/RobotContainer.java | 14 ++++++++++---- .../java/frc/robot/controls/ClimberControls.java | 4 ++-- .../java/frc/robot/controls/IntakerControls.java | 8 +++++++- .../java/frc/robot/controls/ShooterControls.java | 6 ++---- .../frc/robot/subsystems/ShooterSubsystem.java | 3 ++- 6 files changed, 26 insertions(+), 15 deletions(-) diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index 0da3842..4989896 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -15,14 +15,14 @@ public final class Constants { CrossingTrench } public class Shooter { - public static final double conveyorSpeed = 20; + public static final double conveyorSpeed = 25; public static final Slot0Configs flyWheelSlot0Configs = new Slot0Configs() .withKP(0.0).withKI(0).withKD(0) - .withKV(0.0088).withKA(0.0).withKS(0.0); + .withKV(0.099).withKA(0.0).withKS(0.0); public static final Slot0Configs conveyorSlot0Configs = new Slot0Configs() .withKP(0.0).withKI(0).withKD(0) - .withKV(0.02).withKA(0.15).withKS(0); + .withKV(0.16).withKA(0.15).withKS(0); public static final Slot0Configs backboardSlot0Configs = new Slot0Configs() .withKP(0.01).withKI(0).withKD(0) diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 510bfba..5d1821c 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -9,6 +9,7 @@ import edu.wpi.first.wpilibj.smartdashboard.SendableChooser; import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.Commands; +import edu.wpi.first.wpilibj2.command.InstantCommand; import edu.wpi.first.wpilibj2.command.button.CommandXboxController; import edu.wpi.first.wpilibj2.command.button.RobotModeTriggers; import edu.wpi.first.wpilibj2.command.button.Trigger; @@ -58,7 +59,7 @@ public class RobotContainer { private final DriveControls driveControls = new DriveControls(drivetrain, controllerlower, robotStatusManager ); private final ShooterControls shooterControls = new ShooterControls(shooterSubsystem, controllerupper,robotStatusManager); private final ClimberControls climberControls = new ClimberControls(climberSubsystem, controllerupper); - private final IntakerControls intakerControls = new IntakerControls(IntakerSubsystem, controllerupper); + private final IntakerControls intakerControls = new IntakerControls(IntakerSubsystem, shooterSubsystem, controllerupper); private final DriveGainsTuner driveGainsTuner = new DriveGainsTuner(drivetrain); private ConfigTalonFXMotorTuner configFlywheelTuner = new ConfigTalonFXMotorTuner(shooterSubsystem.flywheelMotorLeft, "flywheel", Constants.Shooter.flyWheelSlot0Configs); private ConfigTalonFXMotorTuner configConveyorTuner = new ConfigTalonFXMotorTuner(shooterSubsystem.conveyorMotor, "conveyor", Constants.Shooter.conveyorSlot0Configs); @@ -118,9 +119,14 @@ public class RobotContainer { // Start:强行使用metaTag2全场定位 controllerlower.start().whileTrue(drivetrain.run(drivetrain::forceUsingLimelightMT2)); - //LM 按下时autoaimming - controllerlower.leftStick().onTrue(robotStatusManager.setStatusCommand(RobotStatus.AutoAimming)); - controllerlower.leftStick().onFalse(robotStatusManager.setStatusCommand(RobotStatus.AllTelop)); + //LM 按下时autoaimming,松开时alltelop + // controllerlower.leftStick().onTrue(robotStatusManager.setStatusCommand(RobotStatus.AutoAimming)); + // controllerlower.leftStick().onFalse(robotStatusManager.setStatusCommand(RobotStatus.AllTelop)); + + //双操均可触发autoaimming + Trigger autoAim = controllerupper.rightBumper().or(controllerlower.leftStick()); + autoAim.onTrue(robotStatusManager.setStatusCommand(RobotStatus.AutoAimming)); + autoAim.onFalse(robotStatusManager.setStatusCommand(RobotStatus.AllTelop)); controllerlower.leftTrigger() .onTrue(robotStatusManager.setStatusCommand(RobotStatus.CrossingTrench)) diff --git a/src/main/java/frc/robot/controls/ClimberControls.java b/src/main/java/frc/robot/controls/ClimberControls.java index 543aff9..6ee58ab 100644 --- a/src/main/java/frc/robot/controls/ClimberControls.java +++ b/src/main/java/frc/robot/controls/ClimberControls.java @@ -24,9 +24,9 @@ public class ClimberControls { return Commands.run(()->{ //climber.climbUp(); if(controller.getRightY() < -0.5){ - climber.climbDownNonStop(); - } else if(controller.getRightY() > 0.5){ climber.climbUpNonStop(); + } else if(controller.getRightY() > 0.5){ + climber.climbDownNonStop(); } else if (controller.y().getAsBoolean()) { climber.climbUp(); } else if (controller.x().getAsBoolean()) { diff --git a/src/main/java/frc/robot/controls/IntakerControls.java b/src/main/java/frc/robot/controls/IntakerControls.java index e63b99d..75d1b73 100644 --- a/src/main/java/frc/robot/controls/IntakerControls.java +++ b/src/main/java/frc/robot/controls/IntakerControls.java @@ -6,16 +6,19 @@ import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.Commands; import edu.wpi.first.wpilibj2.command.button.CommandXboxController; import frc.robot.subsystems.IntakerSubsystem; +import frc.robot.subsystems.ShooterSubsystem; import frc.robot.Constants; public class IntakerControls { private final IntakerSubsystem IntakerSubsystem; private final CommandXboxController controller; + private final ShooterSubsystem ShooterSubsystem; //private static final double ROTATER_STEP_PER_CYCLE = 0.00; - public IntakerControls(IntakerSubsystem Intaker, CommandXboxController controller) { + public IntakerControls(IntakerSubsystem Intaker, ShooterSubsystem Shooter, CommandXboxController controller) { + this.ShooterSubsystem = Shooter; this.IntakerSubsystem = Intaker; this.controller = controller; } @@ -70,10 +73,13 @@ public class IntakerControls { public Command defaultIntakerCommand() { return Commands.run(() -> { double getterspeed = controller.getLeftTriggerAxis() * Constants.Intaker.IntakeGetterK + Constants.Intaker.Getterminspeed; + double conveyoyspeedforintake = 10; if (controller.getLeftTriggerAxis() < 0.1) { getterspeed = 0; + conveyoyspeedforintake = 0; } IntakerSubsystem.setIntakerGetterSpeed(getterspeed); + ShooterSubsystem.setConveyorSpeedByRPS(conveyoyspeedforintake); if(controller.getLeftY() < -0.5){ IntakerSubsystem.IntakerUpNonStop(); diff --git a/src/main/java/frc/robot/controls/ShooterControls.java b/src/main/java/frc/robot/controls/ShooterControls.java index 4d2ae42..c74d9d8 100644 --- a/src/main/java/frc/robot/controls/ShooterControls.java +++ b/src/main/java/frc/robot/controls/ShooterControls.java @@ -8,6 +8,7 @@ import edu.wpi.first.wpilibj2.command.button.CommandXboxController; import frc.robot.Constants; import frc.robot.RobotStatusManager; import frc.robot.Constants.Intaker; +import frc.robot.Constants.RobotStatus; import frc.robot.subsystems.IntakerSubsystem; import frc.robot.subsystems.ShooterSubsystem; @@ -78,12 +79,9 @@ public class ShooterControls { flywheelSpeed = 0; conveyorSpeed = 0; } - if(shooterSubsystem.flywheelMotorLeft.getVelocity().getValueAsDouble()