From: iefomit Date: Mon, 16 Feb 2026 20:58:28 +0000 (-0800) Subject: improved spindexer X-Git-Url: https://git.taranathan.com/?a=commitdiff_plain;h=4e3dad140cf1f192e23d4b34b7ed9bc0ac8b8357;p=FRC2026.git improved spindexer --- diff --git a/src/main/java/frc/robot/subsystems/spindexer/Spindexer.java b/src/main/java/frc/robot/subsystems/spindexer/Spindexer.java index a0106a4..9e52e90 100644 --- a/src/main/java/frc/robot/subsystems/spindexer/Spindexer.java +++ b/src/main/java/frc/robot/subsystems/spindexer/Spindexer.java @@ -2,35 +2,46 @@ package frc.robot.subsystems.spindexer; import com.ctre.phoenix6.hardware.TalonFX; +import org.littletonrobotics.junction.Logger; + import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; -import edu.wpi.first.wpilibj2.command.InstantCommand; import edu.wpi.first.wpilibj2.command.SubsystemBase; +import frc.robot.constants.Constants; import frc.robot.constants.IdConstants; import frc.robot.subsystems.spindexer.SpindexerIO; public class Spindexer extends SubsystemBase implements SpindexerIO{ - TalonFX motor = new TalonFX(IdConstants.SPINDEXER_ID); + private TalonFX motor = new TalonFX(IdConstants.SPINDEXER_ID, Constants.SUBSYSTEM_CANIVORE_CAN); private double power = 0.0; public int ballCount = 0; + private boolean wasSpindexerSlow = false; private SpindexerIOInputsAutoLogged inputs = new SpindexerIOInputsAutoLogged(); public Spindexer(){ - //SmartDashboard.putData("Turn on Spindexer", new InstantCommand(()-> turnOnSpindexer())); + updateInputs(); } @Override public void periodic() { - power = SmartDashboard.getNumber("Spindexer Power", power); - SmartDashboard.putNumber("Spindexer Power", power); + updateInputs(); + + double dashboardPower = SmartDashboard.getNumber("Spindexer Power", -1.0); + if (dashboardPower != -1.0) { + power = dashboardPower; + } + motor.set(power); - if (inputs.spindexerVelocity < SpindexerConstants.spindexerVelocityWithBall) { + + boolean isSpindexerSlow = inputs.spindexerVelocity < SpindexerConstants.spindexerVelocityWithBall; + if (wasSpindexerSlow && !isSpindexerSlow && power > 0.1) { ballCount++; } + wasSpindexerSlow = isSpindexerSlow; } public void maxSpindexer(){ - power = 1.0; + power = SpindexerConstants.spindexerMaxPower; } public void stopSpindexer(){ @@ -41,6 +52,7 @@ public class Spindexer extends SubsystemBase implements SpindexerIO{ public void updateInputs() { inputs.spindexerVelocity = motor.getVelocity().getValueAsDouble(); inputs.spindexerCurrent = motor.getStatorCurrent().getValueAsDouble(); + Logger.processInputs("Spindexer", inputs); } } diff --git a/src/main/java/frc/robot/subsystems/spindexer/SpindexerConstants.java b/src/main/java/frc/robot/subsystems/spindexer/SpindexerConstants.java index a48f7c4..5526b55 100644 --- a/src/main/java/frc/robot/subsystems/spindexer/SpindexerConstants.java +++ b/src/main/java/frc/robot/subsystems/spindexer/SpindexerConstants.java @@ -2,4 +2,5 @@ package frc.robot.subsystems.spindexer; public class SpindexerConstants { public static final double spindexerVelocityWithBall = 6.0; // rps (for counting balls) + public static final double spindexerMaxPower = 1.0; }