From e150959ec6b2fe2d204f6e2a59547006d25568db Mon Sep 17 00:00:00 2001 From: Reese Date: Mon, 22 Jun 2026 20:25:06 -0500 Subject: [PATCH] Added NetParams for Feeder --- src/main/java/frc/robot/NetParams.java | 2 ++ src/main/java/frc/robot/RobotContainer.java | 4 ++-- .../frc/robot/subsystems/shooter/Feeder.java | 10 +++++++++- .../frc/robot/subsystems/shooter/Shooter.java | 17 ++++++++++++++--- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/main/java/frc/robot/NetParams.java b/src/main/java/frc/robot/NetParams.java index 5e3f39f..3eb0ced 100644 --- a/src/main/java/frc/robot/NetParams.java +++ b/src/main/java/frc/robot/NetParams.java @@ -6,8 +6,10 @@ public NetParams() { turretAngle = 0; flywheelSpeed = 70; + feederRate = 1; } public double turretAngle; public double flywheelSpeed; + public double feederRate; } diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index e463808..e612d0f 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -79,7 +79,7 @@ private void configureBindings() // _driver.button(1).whileTrue(Commands.parallel(_shooter.shoot(), // Commands.startEnd(() -> _drive.disableVisionPoseCorrection(true), () -> // _drive.disableVisionPoseCorrection(false)))); - _driver.button(1).whileTrue(_shooter.manualShootCmd(() -> _params.flywheelSpeed)); + _driver.button(1).whileTrue(_shooter.manualShootCmd(() -> _params.flywheelSpeed, () -> _params.feederRate, () -> 1)); // _driver.button(2).whileTrue(Commands.startEnd(() -> _driveMultiplier = // DriveConstants.SLOW_MODE_SCALE, () -> _driveMultiplier = // DriveConstants.FULL_SPEED_SCALE)); @@ -102,7 +102,7 @@ private void configureBindings() _operator.leftBumper().whileTrue(_intake.runRollersReverse()); _operator.rightTrigger().whileTrue(_intake.jiggle()); _operator.a().onTrue(Commands.runOnce(_shooter::stopManualFlywheel)); - _operator.rightBumper().whileTrue(_shooter.runManualFeeder()); + _operator.rightBumper().whileTrue(_shooter.runManualFeeder(() -> _params.feederRate, () -> 1)); _operator.povDown().onTrue(_intake.getRetractCmd()); _operator.povUp().onTrue(_intake.getExtendCmd()); diff --git a/src/main/java/frc/robot/subsystems/shooter/Feeder.java b/src/main/java/frc/robot/subsystems/shooter/Feeder.java index f2c237f..c36acbf 100644 --- a/src/main/java/frc/robot/subsystems/shooter/Feeder.java +++ b/src/main/java/frc/robot/subsystems/shooter/Feeder.java @@ -25,6 +25,7 @@ public class Feeder private Voltage _feederMotorVoltage = Volts.of(0.0); @Logged private boolean _enabled = false; + private Voltage _feederMotorRate = Volts.of(0); public Feeder() { @@ -34,6 +35,8 @@ public Feeder() config.inverted(false).idleMode(IdleMode.kBrake).smartCurrentLimit((int)ShooterConstants.FEEDER_CURRENT_LIMIT.in(Amps)).voltageCompensation(GeneralConstants.MOTOR_VOLTAGE.in(Volts)); _feederMotor.configure(config, ResetMode.kResetSafeParameters, PersistMode.kPersistParameters); + + _feederMotorRate = ShooterConstants.FEEDER_VOLTAGE; } public void periodic() @@ -44,10 +47,15 @@ public void periodic() public void set(boolean on) { _enabled = on; - Voltage targetVoltage = on ? ShooterConstants.FEEDER_VOLTAGE : Volts.zero(); + Voltage targetVoltage = on ? _feederMotorRate : Volts.zero(); _feederMotor.setVoltage(targetVoltage.in(Volts)); } + public void setRate(double rate) + { + _feederMotorRate = GeneralConstants.MOTOR_VOLTAGE.times(rate); + } + private class FeederHook extends MotorHook { @Override diff --git a/src/main/java/frc/robot/subsystems/shooter/Shooter.java b/src/main/java/frc/robot/subsystems/shooter/Shooter.java index 7386fc1..2bee180 100644 --- a/src/main/java/frc/robot/subsystems/shooter/Shooter.java +++ b/src/main/java/frc/robot/subsystems/shooter/Shooter.java @@ -156,11 +156,12 @@ public Command setFlywheelVelocity(AngularVelocity velocity) }); } - public Command runManualFeeder() + public Command runManualFeeder(DoubleSupplier rate, DoubleSupplier rotation) { return startEnd(() -> { beginManualControl(false); + _feeder.setRate(rate.getAsDouble()); _feeder.set(true); setRotorEnabled(true); }, () -> @@ -206,12 +207,17 @@ public Command setTurretAngleCmd(DoubleSupplier angle) return runOnce(() -> setManualTurretAngleCommand(Degrees.of(angle.getAsDouble()))); } - public Command manualShootCmd(DoubleSupplier speed) + public Command setManualFeederRate(DoubleSupplier rate) + { + return runOnce(() -> setManualFeederCommand(rate.getAsDouble())); + } + + public Command manualShootCmd(DoubleSupplier speed, DoubleSupplier rate, DoubleSupplier rotation) { // @formatter:off return Commands.parallel( Commands.startEnd(() -> setManualFlywheel(speed.getAsDouble()), () -> stopManualFlywheel()), - runManualFeeder() + runManualFeeder(rate, rotation) ); // @formatter:on } @@ -352,6 +358,11 @@ private void setManualTurretAngleCommand(Angle angle) _turret.setManualAngle(angle); } + private void setManualFeederCommand(double rate) + { + _feeder.setRate(rate); + } + public void stopShooter() { _state = ShooterState.Idle;