From 3768d7aa68bad36ae15d0a828491889628d39cbc Mon Sep 17 00:00:00 2001 From: nubmonkey Date: Tue, 28 Mar 2023 17:36:03 -0400 Subject: [PATCH 1/2] added speedmod to halve speed if we bounce --- src/main/java/frc/robot/Constants.java | 1 + .../robot/subsystems/ElevatorSubsystem.java | 20 ++++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index 42eb55b..3579713 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -41,6 +41,7 @@ public final class Constants { public static final double ELEVATOR_DEADBAND_VALUE = .6; public static final double maxElevatorMotorSpeed = 0.3; //Normally .2 + public static final double MINIMUM_ELEVATOR_POSITION = 2.2; public static final double restElevatorTargetPosition = 10.6; public static final double carryElevatorPos = 7.05; diff --git a/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java b/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java index 5029d5d..d456799 100644 --- a/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java +++ b/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java @@ -35,6 +35,12 @@ public class ElevatorSubsystem extends SubsystemBase { public DigitalInput elevatorLimitSwitch; + public int elevatorDirection; //pos = up, neg = down + + public int previousDirection; + + public double elevatorSpeedMod = 1; + public ElevatorSubsystem(ClawIntakeSubsystem intake) { elevatorMotorMain = new TeamTalonFX("Subsystem.Elevator.ElevatorMotorMain", Ports.ELEVATOR_MOTOR_MAIN); @@ -70,6 +76,7 @@ public ElevatorSubsystem(ClawIntakeSubsystem intake) public void setTargetPosition(double newTargetPosition, String reason) { targetPosition = newTargetPosition; + previousDirection = (int) (Math.signum(targetPosition - potentiometer.get())); } private double getCappedPower(double desired) @@ -86,6 +93,8 @@ public void setSpeed(double newSpeed) { speed *= Constants.maxElevatorMotorSpeed; + speed *= elevatorSpeedMod; + speed = getCappedPower(speed); double currentPower = elevatorMotorMain.get(); @@ -131,13 +140,22 @@ public void periodic() { } else { setSpeed(0); + elevatorSpeedMod = 1; } } + + if(previousDirection != Math.signum(targetPosition - potentiometer.get())) { + previousDirection = (int) (Math.signum(targetPosition - potentiometer.get())); + elevatorSpeedMod = 0.5; + } + if(potentiometer.get() < Constants.clawCloseThreshold && !clawThresholdOverridden && intake.clawGrabberLeft.get() != Value.kReverse && Robot.isEnabled) intake.setSolenoid(Value.kReverse); - + + + } public boolean isInTarget() { From 649fda21b1ba78920c6c92b64caa2c6e71b1e5c0 Mon Sep 17 00:00:00 2001 From: nubmonkey Date: Tue, 28 Mar 2023 17:50:04 -0400 Subject: [PATCH 2/2] moved elev speedmod halved into constants --- src/main/java/frc/robot/Constants.java | 1 + src/main/java/frc/robot/subsystems/ElevatorSubsystem.java | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index 3579713..5ab2eed 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -40,6 +40,7 @@ public final class Constants { public static final double ELEVATOR_DEADBAND_VALUE = .6; public static final double maxElevatorMotorSpeed = 0.3; //Normally .2 + public static final double ELEVATOR_SPEED_MOD_REDUCED = 0.5; public static final double MINIMUM_ELEVATOR_POSITION = 2.2; diff --git a/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java b/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java index d456799..1607334 100644 --- a/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java +++ b/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java @@ -34,8 +34,6 @@ public class ElevatorSubsystem extends SubsystemBase { public double newPower; public DigitalInput elevatorLimitSwitch; - - public int elevatorDirection; //pos = up, neg = down public int previousDirection; @@ -147,7 +145,7 @@ public void periodic() { if(previousDirection != Math.signum(targetPosition - potentiometer.get())) { previousDirection = (int) (Math.signum(targetPosition - potentiometer.get())); - elevatorSpeedMod = 0.5; + elevatorSpeedMod = Constants.ELEVATOR_SPEED_MOD_REDUCED; } if(potentiometer.get() < Constants.clawCloseThreshold && !clawThresholdOverridden