Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/main/java/frc/robot/NetParams.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@ public NetParams()
{
turretAngle = 0;
flywheelSpeed = 70;
feederRate = 1;
}

public double turretAngle;
public double flywheelSpeed;
public double feederRate;
}
4 changes: 2 additions & 2 deletions src/main/java/frc/robot/RobotContainer.java
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand All @@ -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());

Expand Down
10 changes: 9 additions & 1 deletion src/main/java/frc/robot/subsystems/shooter/Feeder.java
Original file line number Diff line number Diff line change
Expand Up @@ -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()
{
Expand All @@ -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()
Expand All @@ -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
Expand Down
17 changes: 14 additions & 3 deletions src/main/java/frc/robot/subsystems/shooter/Shooter.java
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}, () ->
Expand Down Expand Up @@ -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
}
Expand Down Expand Up @@ -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;
Expand Down