]> git.taranathan.com Git - FRC2026.git/commitdiff
improved spindexer
authoriefomit <timofei.stem@gmail.com>
Mon, 16 Feb 2026 20:58:28 +0000 (12:58 -0800)
committeriefomit <timofei.stem@gmail.com>
Mon, 16 Feb 2026 20:58:28 +0000 (12:58 -0800)
src/main/java/frc/robot/subsystems/spindexer/Spindexer.java
src/main/java/frc/robot/subsystems/spindexer/SpindexerConstants.java

index a0106a47c496831ae40d79019f8b6a55842c56e3..9e52e90b90fb97431df9e8654a191bba675aa107 100644 (file)
@@ -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);
     }
 
 }
index a48f7c4804c375632655c8e5b6b955e17a12b27a..5526b5518e1d4f02277266041fc46189c3d36e50 100644 (file)
@@ -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;
 }