From b650232a553c26a31c57854ee3c302662e7c56f6 Mon Sep 17 00:00:00 2001 From: aopalka <79727669+aopalka@users.noreply.github.com> Date: Thu, 6 Mar 2025 18:09:55 -0500 Subject: [PATCH 1/5] Initial Fixes Initial functionality replicated from example unimplemented code. --- gradlew | 0 src/main/java/frc/robot/Constants.java | 4 ++ src/main/java/frc/robot/RobotContainer.java | 35 ++++++++++++-- .../java/frc/robot/subsystems/AlgaeIntake | 47 ------------------- .../frc/robot/subsystems/AlgaeIntake.java | 36 ++++++++++++++ src/main/java/frc/robot/subsystems/Climber | 41 ---------------- .../java/frc/robot/subsystems/Climber.java | 34 ++++++++++++++ .../java/frc/robot/subsystems/CoralIntake | 42 ----------------- .../frc/robot/subsystems/CoralIntake.java | 35 ++++++++++++++ 9 files changed, 139 insertions(+), 135 deletions(-) mode change 100644 => 100755 gradlew delete mode 100644 src/main/java/frc/robot/subsystems/AlgaeIntake create mode 100644 src/main/java/frc/robot/subsystems/AlgaeIntake.java delete mode 100644 src/main/java/frc/robot/subsystems/Climber create mode 100644 src/main/java/frc/robot/subsystems/Climber.java delete mode 100644 src/main/java/frc/robot/subsystems/CoralIntake create mode 100644 src/main/java/frc/robot/subsystems/CoralIntake.java diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index ded7354..623dd32 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -100,4 +100,8 @@ public static final class AutoConstants { public static final class NeoMotorConstants { public static final double kFreeSpeedRpm = 5676; } + + public static final class ClimberConstants{ + public static final int climberMotor = 13; + } } diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 2221eb8..bc7e3b1 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -18,14 +18,19 @@ import frc.robot.Constants.AutoConstants; import frc.robot.Constants.DriveConstants; import frc.robot.Constants.OIConstants; +import frc.robot.subsystems.AlgaeIntake; +import frc.robot.subsystems.Climber; +import frc.robot.subsystems.CoralIntake; import frc.robot.subsystems.DriveSubsystem; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.InstantCommand; import edu.wpi.first.wpilibj2.command.RunCommand; import edu.wpi.first.wpilibj2.command.SwerveControllerCommand; +import edu.wpi.first.wpilibj2.command.button.CommandXboxController; import edu.wpi.first.wpilibj2.command.button.JoystickButton; import edu.wpi.first.wpilibj2.command.button.Trigger; import java.util.List; +import java.util.function.BooleanSupplier; /* * This class is where the bulk of the robot should be declared. Since Command-based is a @@ -37,11 +42,14 @@ public class RobotContainer { // The robot's subsystems private final DriveSubsystem m_robotDrive = new DriveSubsystem(); + private final AlgaeIntake m_algaeIntake = new AlgaeIntake(); + private final Climber m_climber = new Climber(); + private final CoralIntake m_coralIntake = new CoralIntake(); // The driver's controller XboxController m_driverController = new XboxController(OIConstants.kDriverControllerPort); - // The operators controller - XboxController m_operatorController = new XboxController(OIConstants.kOperatorControllerPort); + // The operators controller + CommandXboxController m_operatorController = new CommandXboxController(OIConstants.kOperatorControllerPort); /** * The container for the robot. Contains subsystems, OI devices, and commands. @@ -78,13 +86,30 @@ private void configureButtonBindings() { () -> m_robotDrive.setX(), m_robotDrive)); - new JoystickButton(m_driverController, XboxController.Button.kStart.value) + new JoystickButton(m_driverController, XboxController.Button.kStart.value) .whileTrue(new InstantCommand( () -> m_robotDrive.resetGyro(), - m_robotDrive)); + m_robotDrive)); + // AlgaeIntake + m_operatorController.rightTrigger(0.1).whileTrue(new InstantCommand(() -> m_algaeIntake.intake(0.2))) + .onFalse(new InstantCommand(() -> m_algaeIntake.stop())); + m_operatorController.rightBumper().whileTrue(new InstantCommand(() -> m_algaeIntake.eject())) + .onFalse(new InstantCommand(() -> m_algaeIntake.stop())); + // Climber + m_operatorController.a().whileTrue(new InstantCommand(() -> m_climber.climbUp())) + .onFalse(new InstantCommand(() -> m_climber.stopClimb())); + m_operatorController.x().whileTrue(new InstantCommand(() -> m_climber.climbDown())) + .onFalse(new InstantCommand(() -> m_climber.stopClimb())); + // CoralIntake + m_operatorController.leftTrigger(0.1).whileTrue(new InstantCommand(() -> m_coralIntake.intake(0.2))) + .onFalse(new InstantCommand(() -> m_algaeIntake.stop())); + m_operatorController.leftBumper().whileTrue(new InstantCommand(() -> m_algaeIntake.eject())) + .onFalse(new InstantCommand(() -> m_algaeIntake.stop())); + } - /** pass the autonomous command to the main {@link Robot} class. + /** + * pass the autonomous command to the main {@link Robot} class. * * @return the command to run in autonomous */ diff --git a/src/main/java/frc/robot/subsystems/AlgaeIntake b/src/main/java/frc/robot/subsystems/AlgaeIntake deleted file mode 100644 index a612734..0000000 --- a/src/main/java/frc/robot/subsystems/AlgaeIntake +++ /dev/null @@ -1,47 +0,0 @@ -package frc.robot.subsystems; - -import com.revrobotics.CANSparkMax; -import com.revrobotics.CANSparkMaxLowLevel.MotorType; -import edu.wpi.first.wpilibj2.command.SubsystemBase; -import edu.wpi.first.wpilibj.XboxController; - -public class IntakeAlgae extends SubsystemBase { - private final CANSparkMax intakeMotor1; - private final CANSparkMax intakeMotor2; - private final XboxController operatorController; - - public IntakeAlgae(int operatorControllerPort) { - intakeMotor1 = new CANSparkMax(17, MotorType.kBrushless); // CAN ID 17 - intakeMotor2 = new CANSparkMax(27, MotorType.kBrushless); // CAN ID 27 - operatorController = new XboxController(operatorControllerPort); - } - - @Override - public void periodic() { - // This method will be called once per scheduler run - double rightTrigger = operatorController.getRightTriggerAxis(); - - if (rightTrigger > 0.1) { - intake(rightTrigger); - } else if (operatorController.getRightBumper()) { - eject(); - } else { - stop(); - } - } - - public void intake(double speed) { - intakeMotor1.set(speed); // Set motor 1 to intake - intakeMotor2.set(-speed); // Set motor 2 to intake in opposite direction - } - - public void eject() { - intakeMotor1.set(-1.0); // Set motor 1 to eject - intakeMotor2.set(1.0); // Set motor 2 to eject in opposite direction - } - - public void stop() { - intakeMotor1.set(0); // Stop motor 1 - intakeMotor2.set(0); // Stop motor 2 - } -} \ No newline at end of file diff --git a/src/main/java/frc/robot/subsystems/AlgaeIntake.java b/src/main/java/frc/robot/subsystems/AlgaeIntake.java new file mode 100644 index 0000000..312f46f --- /dev/null +++ b/src/main/java/frc/robot/subsystems/AlgaeIntake.java @@ -0,0 +1,36 @@ +package frc.robot.subsystems; +import edu.wpi.first.wpilibj2.command.SubsystemBase; + +import com.revrobotics.spark.SparkLowLevel.MotorType; +import com.revrobotics.spark.SparkMax; + + +public class AlgaeIntake extends SubsystemBase { + private final SparkMax intakeMotor1; + private final SparkMax intakeMotor2; + + public AlgaeIntake() { + intakeMotor1 = new SparkMax(17, MotorType.kBrushless); // CAN ID 17 + intakeMotor2 = new SparkMax(27, MotorType.kBrushless); // CAN ID 27 + } + + @Override + public void periodic() { + // This method will be called once per scheduler run + } + + public void intake(double speed) { + intakeMotor1.set(speed); // Set motor 1 to intake + intakeMotor2.set(-speed); // Set motor 2 to intake in opposite direction + } + + public void eject() { + intakeMotor1.set(-1.0); // Set motor 1 to eject + intakeMotor2.set(1.0); // Set motor 2 to eject in opposite direction + } + + public void stop() { + intakeMotor1.stopMotor(); // Stop motor 1 + intakeMotor2.stopMotor(); // Stop motor 2 + } +} \ No newline at end of file diff --git a/src/main/java/frc/robot/subsystems/Climber b/src/main/java/frc/robot/subsystems/Climber deleted file mode 100644 index dfd262a..0000000 --- a/src/main/java/frc/robot/subsystems/Climber +++ /dev/null @@ -1,41 +0,0 @@ -package frc.robot.subsystems; - -import com.revrobotics.CANSparkMax; -import com.revrobotics.CANSparkMaxLowLevel.MotorType; -import edu.wpi.first.wpilibj2.command.SubsystemBase; -import edu.wpi.first.wpilibj.XboxController; -import edu.wpi.first.wpilibj.GenericHID.Hand; - -public class Climber extends SubsystemBase { - private final CANSparkMax climberMotor; - private final XboxController controller; - - public Climber(int motorPort, int controllerPort) { - climberMotor = new CANSparkMax(13, MotorType.kBrushless); // CAN ID 13 - controller = new XboxController(controllerPort); - } - - @Override - public void periodic() { - // This method will be called once per scheduler run - if (controller.getAButton()) { - climbUp(); - } else if (controller.getXButton()) { - climbDown(); - } else { - stopClimb(); - } - } - - public void climbUp() { - climberMotor.set(1.0); // Set motor to full speed up - } - - public void climbDown() { - climberMotor.set(-1.0); // Set motor to full speed down - } - - public void stopClimb() { - climberMotor.set(0); // Stop the motor - } -} \ No newline at end of file diff --git a/src/main/java/frc/robot/subsystems/Climber.java b/src/main/java/frc/robot/subsystems/Climber.java new file mode 100644 index 0000000..a8399f2 --- /dev/null +++ b/src/main/java/frc/robot/subsystems/Climber.java @@ -0,0 +1,34 @@ +package frc.robot.subsystems; + +import edu.wpi.first.wpilibj2.command.SubsystemBase; +import frc.robot.Constants; + +import com.revrobotics.spark.SparkLowLevel.MotorType; +import com.revrobotics.spark.SparkMax; + +import edu.wpi.first.wpilibj.XboxController; + +public class Climber extends SubsystemBase { + private final SparkMax climberMotor; + + public Climber() { + climberMotor = new SparkMax(Constants.ClimberConstants.climberMotor, MotorType.kBrushless); // CAN ID 13 + } + + @Override + public void periodic() { + // This method will be called once per scheduler run + } + + public void climbUp() { + climberMotor.set(1.0); // Set motor to full speed up + } + + public void climbDown() { + climberMotor.set(-1.0); // Set motor to full speed down + } + + public void stopClimb() { + climberMotor.stopMotor(); // Stop the motor + } +} \ No newline at end of file diff --git a/src/main/java/frc/robot/subsystems/CoralIntake b/src/main/java/frc/robot/subsystems/CoralIntake deleted file mode 100644 index 1cb8c3e..0000000 --- a/src/main/java/frc/robot/subsystems/CoralIntake +++ /dev/null @@ -1,42 +0,0 @@ -package frc.robot.subsystems; - -import com.revrobotics.CANSparkMax; -import com.revrobotics.CANSparkMaxLowLevel.MotorType; -import edu.wpi.first.wpilibj2.command.SubsystemBase; -import edu.wpi.first.wpilibj.XboxController; - -public class IntakeCoral extends SubsystemBase { - private final CANSparkMax intakeMotor; - private final XboxController operatorController; - - public IntakeCoral(int operatorControllerPort) { - intakeMotor = new CANSparkMax(15, MotorType.kBrushless); // CAN ID 15 - operatorController = new XboxController(operatorControllerPort); - } - - @Override - public void periodic() { - // This method will be called once per scheduler run - double leftTrigger = operatorController.getLeftTriggerAxis(); - - if (leftTrigger > 0.1) { - intake(leftTrigger); - } else if (operatorController.getLeftBumper()) { - eject(); - } else { - stop(); - } - } - - public void intake(double speed) { - intakeMotor.set(speed); // Set motor to intake - } - - public void eject() { - intakeMotor.set(-1.0); // Set motor to eject - } - - public void stop() { - intakeMotor.set(0); // Stop the motor - } -} \ No newline at end of file diff --git a/src/main/java/frc/robot/subsystems/CoralIntake.java b/src/main/java/frc/robot/subsystems/CoralIntake.java new file mode 100644 index 0000000..e14e248 --- /dev/null +++ b/src/main/java/frc/robot/subsystems/CoralIntake.java @@ -0,0 +1,35 @@ +package frc.robot.subsystems; + + +import edu.wpi.first.wpilibj2.command.SubsystemBase; +import frc.robot.Constants; + +import com.revrobotics.spark.SparkLowLevel.MotorType; +import com.revrobotics.spark.SparkMax; + +import edu.wpi.first.wpilibj.XboxController; + +public class CoralIntake extends SubsystemBase { + private final SparkMax intakeMotor; + + public CoralIntake() { + intakeMotor = new SparkMax(Constants.CoralIntakeConstants.intakeMotor, MotorType.kBrushless); // CAN ID 15 + } + + @Override + public void periodic() { + // This method will be called once per scheduler run + } + + public void intake(double speed) { + intakeMotor.set(speed); // Set motor to intake + } + + public void eject() { + intakeMotor.set(-1.0); // Set motor to eject + } + + public void stop() { + intakeMotor.stopMotor(); // Stop the motor + } +} \ No newline at end of file From e3c2b81a788873db34490497d3f39005a52c7943 Mon Sep 17 00:00:00 2001 From: aopalka <79727669+aopalka@users.noreply.github.com> Date: Thu, 6 Mar 2025 18:35:56 -0500 Subject: [PATCH 2/5] Update Constants.java --- src/main/java/frc/robot/Constants.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index 623dd32..8feaeea 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -103,5 +103,8 @@ public static final class NeoMotorConstants { public static final class ClimberConstants{ public static final int climberMotor = 13; + } + public static final class CoralIntakeConstants{ + public static final int intakeMotor = 15; } } From 42579cd7805efb98fdcd3295577880c60b885b1f Mon Sep 17 00:00:00 2001 From: aopalka <79727669+aopalka@users.noreply.github.com> Date: Thu, 6 Mar 2025 18:44:22 -0500 Subject: [PATCH 3/5] Wrist Functionality --- src/main/java/frc/robot/RobotContainer.java | 10 +++- src/main/java/frc/robot/subsystems/Wrist | 51 ------------------- src/main/java/frc/robot/subsystems/Wrist.java | 41 +++++++++++++++ 3 files changed, 49 insertions(+), 53 deletions(-) delete mode 100644 src/main/java/frc/robot/subsystems/Wrist create mode 100644 src/main/java/frc/robot/subsystems/Wrist.java diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index bc7e3b1..3be33ca 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -22,6 +22,7 @@ import frc.robot.subsystems.Climber; import frc.robot.subsystems.CoralIntake; import frc.robot.subsystems.DriveSubsystem; +import frc.robot.subsystems.Wrist; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.InstantCommand; import edu.wpi.first.wpilibj2.command.RunCommand; @@ -45,6 +46,7 @@ public class RobotContainer { private final AlgaeIntake m_algaeIntake = new AlgaeIntake(); private final Climber m_climber = new Climber(); private final CoralIntake m_coralIntake = new CoralIntake(); + private final Wrist m_wrist = new Wrist(); // The driver's controller XboxController m_driverController = new XboxController(OIConstants.kDriverControllerPort); @@ -86,7 +88,7 @@ private void configureButtonBindings() { () -> m_robotDrive.setX(), m_robotDrive)); - new JoystickButton(m_driverController, XboxController.Button.kStart.value) + new JoystickButton(m_driverController, XboxController.Button.kY.value) .whileTrue(new InstantCommand( () -> m_robotDrive.resetGyro(), m_robotDrive)); @@ -105,7 +107,11 @@ private void configureButtonBindings() { .onFalse(new InstantCommand(() -> m_algaeIntake.stop())); m_operatorController.leftBumper().whileTrue(new InstantCommand(() -> m_algaeIntake.eject())) .onFalse(new InstantCommand(() -> m_algaeIntake.stop())); - + // Wrist + m_operatorController.b().whileTrue(new InstantCommand(() -> m_wrist.moveUp(0.2))) + .onFalse(new InstantCommand(() -> m_wrist.stop())); + m_operatorController.y().whileTrue(new InstantCommand(() -> m_wrist.moveDown())) + .onFalse(new InstantCommand(() -> m_wrist.stop())); } /** diff --git a/src/main/java/frc/robot/subsystems/Wrist b/src/main/java/frc/robot/subsystems/Wrist deleted file mode 100644 index 5c4536e..0000000 --- a/src/main/java/frc/robot/subsystems/Wrist +++ /dev/null @@ -1,51 +0,0 @@ -package frc.robot.subsystems; - -import com.revrobotics.CANSparkMax; -import com.revrobotics.CANSparkMaxLowLevel.MotorType; -import com.revrobotics.CANSparkMax.IdleMode; -import edu.wpi.first.wpilibj2.command.SubsystemBase; -import edu.wpi.first.wpilibj.XboxController; -import edu.wpi.first.wpilibj.GenericHID.Hand; - -public class Wrist extends SubsystemBase { - - private final CANSparkMax wristMotorMotor; - private final XboxController controller; - private final XboxController operatorController; - - public Climber(int motorPort, int controllerPort, int operatorControllerPort) { - - wristMotor = new CANSparkMax(16, MotorType.kBrushless); // CAN ID 16 - operatorController = new XboxController(operatorControllerPort); - - // Set the secondary motor to hold its position when not moving - wristMotor.setIdleMode(IdleMode.kBrake); - } - - @Override - public void periodic() { - // This method will be called once per scheduler run - if (controller.getAButton()) { - wristUp(); - } else if (controller.getXButton()) { - wristDown(); - } else { - stopwrist(); - - public void moveUp(double speed) { - wristMotor.set(speed); // Set motor to speed up - } - - public void moveDown(double speed) { - wristMotor.set(-speed); // Set motor to speed down - } - - public void stop() { - wristMotor.set(0); // Stop the motor - } - } - } - - - } -} \ No newline at end of file diff --git a/src/main/java/frc/robot/subsystems/Wrist.java b/src/main/java/frc/robot/subsystems/Wrist.java new file mode 100644 index 0000000..37dac56 --- /dev/null +++ b/src/main/java/frc/robot/subsystems/Wrist.java @@ -0,0 +1,41 @@ +package frc.robot.subsystems; + +import edu.wpi.first.wpilibj2.command.SubsystemBase; + +import com.revrobotics.spark.SparkBase.PersistMode; +import com.revrobotics.spark.SparkBase.ResetMode; +import com.revrobotics.spark.SparkLowLevel.MotorType; +import com.revrobotics.spark.SparkMax; +import com.revrobotics.spark.config.SparkBaseConfig.IdleMode; +import com.revrobotics.spark.config.SparkMaxConfig; + +public class Wrist extends SubsystemBase { + + private final SparkMax wristMotor; + + public Wrist() { + + wristMotor = new SparkMax(16, MotorType.kBrushless); // CAN ID 16 + + // Set the secondary motor to hold its position when not moving + wristMotor.configure(new SparkMaxConfig().idleMode(IdleMode.kBrake), ResetMode.kNoResetSafeParameters, + PersistMode.kPersistParameters); + } + + @Override + public void periodic() { + // This method will be called once per scheduler run + } + + public void moveUp(double speed) { + wristMotor.set(speed); // Set motor to speed up + } + + public void moveDown(double speed) { + wristMotor.set(-speed); // Set motor to speed down + } + + public void stop() { + wristMotor.set(0); // Stop the motor + } +} \ No newline at end of file From b5335ba3e69d224ba208ae4c9ca07c8dd2051209 Mon Sep 17 00:00:00 2001 From: aopalka <79727669+aopalka@users.noreply.github.com> Date: Thu, 6 Mar 2025 18:45:28 -0500 Subject: [PATCH 4/5] Wrist --- src/main/java/frc/robot/RobotContainer.java | 4 ++-- src/main/java/frc/robot/subsystems/CoralIntake.java | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 3be33ca..1be4e7c 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -108,9 +108,9 @@ private void configureButtonBindings() { m_operatorController.leftBumper().whileTrue(new InstantCommand(() -> m_algaeIntake.eject())) .onFalse(new InstantCommand(() -> m_algaeIntake.stop())); // Wrist - m_operatorController.b().whileTrue(new InstantCommand(() -> m_wrist.moveUp(0.2))) + m_operatorController.b().whileTrue(new InstantCommand(() -> m_wrist.moveUp(0.1))) .onFalse(new InstantCommand(() -> m_wrist.stop())); - m_operatorController.y().whileTrue(new InstantCommand(() -> m_wrist.moveDown())) + m_operatorController.y().whileTrue(new InstantCommand(() -> m_wrist.moveDown(-0.1))) .onFalse(new InstantCommand(() -> m_wrist.stop())); } diff --git a/src/main/java/frc/robot/subsystems/CoralIntake.java b/src/main/java/frc/robot/subsystems/CoralIntake.java index e14e248..689d2a9 100644 --- a/src/main/java/frc/robot/subsystems/CoralIntake.java +++ b/src/main/java/frc/robot/subsystems/CoralIntake.java @@ -7,8 +7,6 @@ import com.revrobotics.spark.SparkLowLevel.MotorType; import com.revrobotics.spark.SparkMax; -import edu.wpi.first.wpilibj.XboxController; - public class CoralIntake extends SubsystemBase { private final SparkMax intakeMotor; From 60ebcb7cfa95e83de10fec86d9ed2a7d5daf05a8 Mon Sep 17 00:00:00 2001 From: aopalka <79727669+aopalka@users.noreply.github.com> Date: Thu, 6 Mar 2025 19:11:40 -0500 Subject: [PATCH 5/5] Adding in more buttons and Elevator.- --- src/main/java/frc/robot/RobotContainer.java | 10 +++-- .../java/frc/robot/subsystems/Climber.java | 7 +-- src/main/java/frc/robot/subsystems/Elevator | 43 ------------------- .../java/frc/robot/subsystems/Elevator.java | 28 ++++++++++++ 4 files changed, 37 insertions(+), 51 deletions(-) delete mode 100644 src/main/java/frc/robot/subsystems/Elevator create mode 100644 src/main/java/frc/robot/subsystems/Elevator.java diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 1be4e7c..71b74b4 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -22,6 +22,7 @@ import frc.robot.subsystems.Climber; import frc.robot.subsystems.CoralIntake; import frc.robot.subsystems.DriveSubsystem; +import frc.robot.subsystems.Elevator; import frc.robot.subsystems.Wrist; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.InstantCommand; @@ -45,6 +46,7 @@ public class RobotContainer { private final DriveSubsystem m_robotDrive = new DriveSubsystem(); private final AlgaeIntake m_algaeIntake = new AlgaeIntake(); private final Climber m_climber = new Climber(); + private final Elevator m_elevator = new Elevator(); private final CoralIntake m_coralIntake = new CoralIntake(); private final Wrist m_wrist = new Wrist(); @@ -98,10 +100,11 @@ private void configureButtonBindings() { m_operatorController.rightBumper().whileTrue(new InstantCommand(() -> m_algaeIntake.eject())) .onFalse(new InstantCommand(() -> m_algaeIntake.stop())); // Climber - m_operatorController.a().whileTrue(new InstantCommand(() -> m_climber.climbUp())) - .onFalse(new InstantCommand(() -> m_climber.stopClimb())); - m_operatorController.x().whileTrue(new InstantCommand(() -> m_climber.climbDown())) + m_operatorController.a().whileTrue(new InstantCommand(() -> m_climber.climb(m_operatorController.getLeftY()))) .onFalse(new InstantCommand(() -> m_climber.stopClimb())); + // Elevator + m_operatorController.x().whileTrue(new InstantCommand(() -> m_elevator.move(m_operatorController.getLeftY()))) + .onFalse(new InstantCommand(() -> m_elevator.stop())); // CoralIntake m_operatorController.leftTrigger(0.1).whileTrue(new InstantCommand(() -> m_coralIntake.intake(0.2))) .onFalse(new InstantCommand(() -> m_algaeIntake.stop())); @@ -112,6 +115,7 @@ private void configureButtonBindings() { .onFalse(new InstantCommand(() -> m_wrist.stop())); m_operatorController.y().whileTrue(new InstantCommand(() -> m_wrist.moveDown(-0.1))) .onFalse(new InstantCommand(() -> m_wrist.stop())); + } /** diff --git a/src/main/java/frc/robot/subsystems/Climber.java b/src/main/java/frc/robot/subsystems/Climber.java index a8399f2..4b5e846 100644 --- a/src/main/java/frc/robot/subsystems/Climber.java +++ b/src/main/java/frc/robot/subsystems/Climber.java @@ -20,13 +20,10 @@ public void periodic() { // This method will be called once per scheduler run } - public void climbUp() { - climberMotor.set(1.0); // Set motor to full speed up + public void climb(double speed) { + climberMotor.set(speed); // Set motor to full speed up } - public void climbDown() { - climberMotor.set(-1.0); // Set motor to full speed down - } public void stopClimb() { climberMotor.stopMotor(); // Stop the motor diff --git a/src/main/java/frc/robot/subsystems/Elevator b/src/main/java/frc/robot/subsystems/Elevator deleted file mode 100644 index bd8a14f..0000000 --- a/src/main/java/frc/robot/subsystems/Elevator +++ /dev/null @@ -1,43 +0,0 @@ -package frc.robot.subsystems; - -import com.revrobotics.CANSparkMax; -import com.revrobotics.CANSparkMaxLowLevel.MotorType; -import edu.wpi.first.wpilibj2.command.SubsystemBase; -import edu.wpi.first.wpilibj.XboxController; - -public class Elevator extends SubsystemBase { - private final CANSparkMax elevatorMotor; - private final XboxController controller; - - public Elevator(int motorPort, int controllerPort) { - elevatorMotor = new CANSparkMax(14, MotorType.kBrushless); // CAN ID 14 - controller = new XboxController(drivercontrollerPort); - } - - @Override - public void periodic() { - // This method will be called once per scheduler run - double rightTrigger = controller.getRightTriggerAxis(); - double leftTrigger = controller.getLeftTriggerAxis(); - - if (rightTrigger > 0.1) { - moveUp(rightTrigger); - } else if (leftTrigger > 0.1) { - moveDown(leftTrigger); - } else { - stop(); - } - } - - public void moveUp(double speed) { - elevatorMotor.set(speed); // Set motor to speed up - } - - public void moveDown(double speed) { - elevatorMotor.set(-speed); // Set motor to speed down - } - - public void stop() { - elevatorMotor.set(0); // Stop the motor - } -} \ No newline at end of file diff --git a/src/main/java/frc/robot/subsystems/Elevator.java b/src/main/java/frc/robot/subsystems/Elevator.java new file mode 100644 index 0000000..75da0cf --- /dev/null +++ b/src/main/java/frc/robot/subsystems/Elevator.java @@ -0,0 +1,28 @@ +package frc.robot.subsystems; + +import edu.wpi.first.wpilibj2.command.SubsystemBase; + +import com.revrobotics.spark.SparkLowLevel.MotorType; +import com.revrobotics.spark.SparkMax; + + +public class Elevator extends SubsystemBase { + private final SparkMax elevatorMotor; + + public Elevator() { + elevatorMotor = new SparkMax(14, MotorType.kBrushless); // CAN ID 14 + } + + @Override + public void periodic() { + } + + public void move(double speed) { + elevatorMotor.set(speed); // Set motor to speed up + } + + + public void stop() { + elevatorMotor.set(0); // Stop the motor + } +} \ No newline at end of file