diff --git a/src/main/java/org/team2342/frc/Constants.java b/src/main/java/org/team2342/frc/Constants.java index b308fe6..81d3ef9 100644 --- a/src/main/java/org/team2342/frc/Constants.java +++ b/src/main/java/org/team2342/frc/Constants.java @@ -134,6 +134,17 @@ public static final class DriveConstants { public static final double ODOMETRY_FREQUENCY = IS_CANFD ? 250.0 : 100.0; } + public static final class KickerConstants { + public static final double RUN_VOLTAGE = 7.0; + + public static final MotorConfig KICKER_CONFIG = + new MotorConfig() + .withMotorInverted(true) + .withSupplyCurrentLimit(30.0) + .withStatorCurrentLimit(40.0) + .withIdleMode(MotorConfig.IdleMode.BRAKE); + } + public static final class ConductorConstants { public static final double TRENCH_BUFFER = 0.1; } @@ -295,7 +306,8 @@ public static final class CANConstants { public static final int INDEXER_WHEEL_ID = 20; public static final int INDEXER_BELT_ID = 21; - public static final int INDEXER_FEEDER_ID = 22; + + public static final int KICKER_ID = 22; public static final int TURRET_ID = 23; diff --git a/src/main/java/org/team2342/frc/subsystems/indexer/Indexer.java b/src/main/java/org/team2342/frc/subsystems/indexer/Indexer.java index 15a79bd..3dcce4a 100644 --- a/src/main/java/org/team2342/frc/subsystems/indexer/Indexer.java +++ b/src/main/java/org/team2342/frc/subsystems/indexer/Indexer.java @@ -18,38 +18,37 @@ public class Indexer extends SubsystemBase { private final DumbMotorIO beltMotor; - private final DumbMotorIO feederMotor; + private final DumbMotorIOInputsAutoLogged wheelMotorInputs = new DumbMotorIOInputsAutoLogged(); private final DumbMotorIOInputsAutoLogged beltMotorInputs = new DumbMotorIOInputsAutoLogged(); - private final DumbMotorIOInputsAutoLogged feederMotorInputs = new DumbMotorIOInputsAutoLogged(); - + + private final Alert wheelMotorAlert = + new Alert("Indexer Wheel Motor is diconnected", AlertType.kError); private final Alert beltMotorAlert = new Alert("Indexer Belt Motor is diconnected", AlertType.kError); - private final Alert feederMotorAlert = - new Alert("Indexer Feeder Motor is diconnected", AlertType.kError); - public Indexer(DumbMotorIO beltMotor, DumbMotorIO feederMotor) { + + public Indexer(DumbMotorIO wheelMotor, DumbMotorIO beltMotor) { this.beltMotor = beltMotor; - this.feederMotor = feederMotor; setName("Indexer"); setDefaultCommand( run( () -> { beltMotor.runVoltage(0.0); - feederMotor.runVoltage(0.0); + })); } @Override public void periodic() { beltMotor.updateInputs(beltMotorInputs); - feederMotor.updateInputs(feederMotorInputs); + Logger.processInputs("Indexer/BeltMotor", beltMotorInputs); - Logger.processInputs("Indexer/FeederMotor", feederMotorInputs); + beltMotorAlert.set(!beltMotorInputs.connected); - feederMotorAlert.set(!feederMotorInputs.connected); + ExecutionLogger.log("Indexer"); } @@ -63,8 +62,8 @@ public Command load() { public Command feed() { return run(() -> { - beltMotor.runVoltage(IndexerConstants.RUN_VOLTAGE); - feederMotor.runVoltage(IndexerConstants.FEEDER_VOLTAGE); + beltMotor.runTorqueCurrent(IndexerConstants.RUN_CURRENT); + }) .withName("Indexer Feed"); } @@ -72,7 +71,6 @@ public Command feed() { public Command out() { return run(() -> { beltMotor.runVoltage(-IndexerConstants.RUN_VOLTAGE); - feederMotor.runVoltage(-IndexerConstants.FEEDER_VOLTAGE); }) .withName("Indexer Out"); } @@ -81,7 +79,7 @@ public Command stop() { return runOnce( () -> { beltMotor.runVoltage(0.0); - feederMotor.runVoltage(0.0); + }) .withName("Indexer Stop"); } diff --git a/src/main/java/org/team2342/frc/subsystems/kicker/Kicker.java b/src/main/java/org/team2342/frc/subsystems/kicker/Kicker.java new file mode 100644 index 0000000..a7cbf4d --- /dev/null +++ b/src/main/java/org/team2342/frc/subsystems/kicker/Kicker.java @@ -0,0 +1,51 @@ +package org.team2342.frc.subsystems.kicker; + +import org.littletonrobotics.junction.Logger; +import org.team2342.frc.Constants.KickerConstants; +import org.team2342.lib.logging.ExecutionLogger; +import org.team2342.lib.motors.dumb.DumbMotorIO; +import org.team2342.lib.motors.dumb.DumbMotorIOInputsAutoLogged; + +import edu.wpi.first.wpilibj.Alert; +import edu.wpi.first.wpilibj.Alert.AlertType; +import edu.wpi.first.wpilibj2.command.Command; +import edu.wpi.first.wpilibj2.command.SubsystemBase; + +public class Kicker extends SubsystemBase{ + private final DumbMotorIO kickerMotor; + + private final DumbMotorIOInputsAutoLogged kickerMotorInputs = new DumbMotorIOInputsAutoLogged(); + private final Alert kickerMotorAlert = + new Alert("Indexer Feeder Motor is diconnected", AlertType.kError); + + public Kicker(DumbMotorIO kickerMotor) { + this.kickerMotor = kickerMotor; + setName("Shooter/Kicker"); + setDefaultCommand(run(() -> kickerMotor.runVoltage(0.0))); + } + + @Override + public void periodic() { + kickerMotor.updateInputs(kickerMotorInputs); + + Logger.processInputs("Shooter/Kicker", kickerMotorInputs); + + kickerMotorAlert.set(!kickerMotorInputs.connected); + + ExecutionLogger.log("Shooter/Kicker"); + } + + public Command in() { + return run(() -> kickerMotor.runVoltage(KickerConstants.RUN_VOLTAGE)).withName("Kicker Motor Run"); + } + public Command out() { + return run(() -> kickerMotor.runVoltage(-KickerConstants.RUN_VOLTAGE)).withName("Kicker Motor Run"); + } + public Command stop() { + return runOnce( + () -> { + kickerMotor.runVoltage(0.0); + }) + .withName("Kicker Stop"); + } +}