From ad6b56e2c01d7abb12981e670cb28900a3e0932e Mon Sep 17 00:00:00 2001 From: Kenneth-Choothakan <134165881+Kenneth-Choothakan@users.noreply.github.com> Date: Fri, 27 Oct 2023 00:43:22 +0000 Subject: [PATCH 01/16] yoober is right goboer is left group --- src/main/java/frc/SubSystems/Drivetrain.java | 19 +++++++++++++++++++ src/main/java/frc/robot/Robot.java | 17 ++++++++++++----- 2 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 src/main/java/frc/SubSystems/Drivetrain.java diff --git a/src/main/java/frc/SubSystems/Drivetrain.java b/src/main/java/frc/SubSystems/Drivetrain.java new file mode 100644 index 0000000..c83850a --- /dev/null +++ b/src/main/java/frc/SubSystems/Drivetrain.java @@ -0,0 +1,19 @@ +package frc.SubSystems; +import org.carlmontrobotics.lib199.MotorControllerFactory; +import org.carlmontrobotics.lib199.MotorConfig; +import com.revrobotics.CANSparkMax; + +import edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup; + +public class Drivetrain { + CANSparkMax rightMotor1 = MotorControllerFactory.createSparkMax(1,MotorConfig.NEO); + CANSparkMax rightMotor2 = MotorControllerFactory.createSparkMax(2,MotorConfig.NEO); + CANSparkMax leftMotor1 = MotorControllerFactory.createSparkMax(3,MotorConfig.NEO); + CANSparkMax leftMotor2 = MotorControllerFactory.createSparkMax(4,MotorConfig.NEO); + MotorControllerGroup rightGroup = new MotorControllerGroup(rightMotor1, rightMotor2); + MotorControllerGroup leftGroup = new MotorControllerGroup(leftMotor1, leftMotor2); + public void drive(double goober,double yoober) { + rightGroup.set(yoober); + leftGroup.set(goober); + } +} \ No newline at end of file diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index b68462c..9e638e6 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -7,12 +7,13 @@ import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.CommandScheduler; - +import frc.SubSystems.Drivetrain; +import edu.wpi.first.wpilibj.XboxController; public class Robot extends TimedRobot { private Command m_autonomousCommand; - + private XboxController controller = new XboxController(0); private RobotContainer m_robotContainer; - + private Drivetrain drive = new Drivetrain(); @Override public void robotInit() { m_robotContainer = new RobotContainer(); @@ -53,9 +54,15 @@ public void teleopInit() { m_autonomousCommand.cancel(); } } - + @Override - public void teleopPeriodic() {} + public void teleopPeriodic() { + double speed = -controller.getRawAxis(1); + double turn = controller.getRawAxis(4); + double left = speed - turn; + double right = speed + turn; + drive.drive(left, right); + } @Override public void teleopExit() {} From 81eb6c0e160f7f50c8ef19239000c13d01fcc2a3 Mon Sep 17 00:00:00 2001 From: Kenneth-Choothakan <134165881+Kenneth-Choothakan@users.noreply.github.com> Date: Fri, 27 Oct 2023 00:55:41 +0000 Subject: [PATCH 02/16] drivetrain drive.drive is how it works B) --- src/main/java/frc/robot/Robot.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index 9e638e6..c4a6507 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -5,6 +5,7 @@ package frc.robot; import edu.wpi.first.wpilibj.TimedRobot; +import edu.wpi.first.wpilibj.Timer; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.CommandScheduler; import frc.SubSystems.Drivetrain; @@ -14,6 +15,7 @@ public class Robot extends TimedRobot { private XboxController controller = new XboxController(0); private RobotContainer m_robotContainer; private Drivetrain drive = new Drivetrain(); + Timer timer = new Timer(); @Override public void robotInit() { m_robotContainer = new RobotContainer(); @@ -36,14 +38,19 @@ public void disabledExit() {} @Override public void autonomousInit() { m_autonomousCommand = m_robotContainer.getAutonomousCommand(); - + timer.start(); + drive.drive(0.5,0.5); if (m_autonomousCommand != null) { m_autonomousCommand.schedule(); } } @Override - public void autonomousPeriodic() {} + public void autonomousPeriodic() { + if (timer.get() > 10) { + drive.drive(0, 0); + } + } @Override public void autonomousExit() {} From 50d1e9597d70a08d3d8a754e01276281b31f04e5 Mon Sep 17 00:00:00 2001 From: Kenneth-Choothakan <134165881+Kenneth-Choothakan@users.noreply.github.com> Date: Fri, 27 Oct 2023 01:29:06 +0000 Subject: [PATCH 03/16] im gonna implement a 'gringle' method later --- src/main/java/frc/robot/Robot.java | 13 +++++++++++++ src/main/java/frc/robot/RobotContainer.java | 1 - 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index c4a6507..5b1c4ba 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -12,10 +12,14 @@ import edu.wpi.first.wpilibj.XboxController; public class Robot extends TimedRobot { private Command m_autonomousCommand; + private XboxController controller = new XboxController(0); + + private RobotContainer m_robotContainer; private Drivetrain drive = new Drivetrain(); Timer timer = new Timer(); + boolean tank = false; @Override public void robotInit() { m_robotContainer = new RobotContainer(); @@ -69,6 +73,15 @@ public void teleopPeriodic() { double left = speed - turn; double right = speed + turn; drive.drive(left, right); + + if (controller.getXButtonPressed()) { + if(tank) { + tank = false; + } + if(!tank) { + tank = true; + } + } } @Override diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index de2c9d0..9aa789e 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -6,7 +6,6 @@ import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.Commands; - public class RobotContainer { public RobotContainer() { configureBindings(); From db8ef1ca4ac9307821b03f610edd614b09b3f0fb Mon Sep 17 00:00:00 2001 From: Kenneth-Choothakan <134165881+Kenneth-Choothakan@users.noreply.github.com> Date: Fri, 27 Oct 2023 02:59:05 +0000 Subject: [PATCH 04/16] Tank drive added + togglable Roogie = right Loogie = left If you don't like my naming patterns code your own >:( --- src/main/java/frc/robot/Robot.java | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index 5b1c4ba..87a8086 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -12,14 +12,14 @@ import edu.wpi.first.wpilibj.XboxController; public class Robot extends TimedRobot { private Command m_autonomousCommand; - - private XboxController controller = new XboxController(0); - - - private RobotContainer m_robotContainer; +//___________________________________________________________________ +//Kenneth's Valuble Variables private Drivetrain drive = new Drivetrain(); + private XboxController controller = new XboxController(0); Timer timer = new Timer(); boolean tank = false; +//___________________________________________________________________ + private RobotContainer m_robotContainer; @Override public void robotInit() { m_robotContainer = new RobotContainer(); @@ -68,11 +68,19 @@ public void teleopInit() { @Override public void teleopPeriodic() { - double speed = -controller.getRawAxis(1); - double turn = controller.getRawAxis(4); - double left = speed - turn; - double right = speed + turn; - drive.drive(left, right); + if (!tank) { + double speed = -controller.getRawAxis(1); + double turn = controller.getRawAxis(2); + double left = speed - turn; + double right = speed + turn; + drive.drive(left, right); + } + + if (tank) { + double loogi = -controller.getRawAxis(1); + double roogi = -controller.getRawAxis(3); + drive.drive(loogi,roogi); + } if (controller.getXButtonPressed()) { if(tank) { From d4b122e2edf448f8904c650cda9b80dffb08d295 Mon Sep 17 00:00:00 2001 From: Kenneth-Choothakan <134165881+Kenneth-Choothakan@users.noreply.github.com> Date: Sat, 28 Oct 2023 03:01:01 +0000 Subject: [PATCH 05/16] sad day for names --- src/main/java/frc/SubSystems/Drivetrain.java | 25 +++++++++++++------- src/main/java/frc/robot/Robot.java | 13 +++++----- src/main/java/frc/robot/RobotContainer.java | 16 ++++++++++++- 3 files changed, 37 insertions(+), 17 deletions(-) diff --git a/src/main/java/frc/SubSystems/Drivetrain.java b/src/main/java/frc/SubSystems/Drivetrain.java index c83850a..7541c5d 100644 --- a/src/main/java/frc/SubSystems/Drivetrain.java +++ b/src/main/java/frc/SubSystems/Drivetrain.java @@ -6,14 +6,21 @@ import edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup; public class Drivetrain { - CANSparkMax rightMotor1 = MotorControllerFactory.createSparkMax(1,MotorConfig.NEO); - CANSparkMax rightMotor2 = MotorControllerFactory.createSparkMax(2,MotorConfig.NEO); - CANSparkMax leftMotor1 = MotorControllerFactory.createSparkMax(3,MotorConfig.NEO); - CANSparkMax leftMotor2 = MotorControllerFactory.createSparkMax(4,MotorConfig.NEO); - MotorControllerGroup rightGroup = new MotorControllerGroup(rightMotor1, rightMotor2); - MotorControllerGroup leftGroup = new MotorControllerGroup(leftMotor1, leftMotor2); - public void drive(double goober,double yoober) { - rightGroup.set(yoober); - leftGroup.set(goober); + boolean tank = false; + CANSparkMax rightMotor = MotorControllerFactory.createSparkMax(1,MotorConfig.NEO); + CANSparkMax leftMotor = MotorControllerFactory.createSparkMax(2,MotorConfig.NEO); + + public void drive(double left,double right) { + rightMotor.set(right); + leftMotor.set(left); + } + public boolean swap() { + if (tank) { + tank = false; + } + if (!tank) { + tank = true; + } + return tank; } } \ No newline at end of file diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index 87a8086..da89da1 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -68,18 +68,17 @@ public void teleopInit() { @Override public void teleopPeriodic() { - if (!tank) { - double speed = -controller.getRawAxis(1); - double turn = controller.getRawAxis(2); + double speed = -controller.getLeftY(); + double turn = controller.getLeftX(); + if (drive.swap()) { double left = speed - turn; double right = speed + turn; drive.drive(left, right); } - if (tank) { - double loogi = -controller.getRawAxis(1); - double roogi = -controller.getRawAxis(3); - drive.drive(loogi,roogi); + if (!drive.swap()) { + double rightYAxis = -controller.getRightY(); + drive.drive(speed,rightYAxis); } if (controller.getXButtonPressed()) { diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 9aa789e..2ff63e7 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -6,12 +6,26 @@ import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.Commands; +import edu.wpi.first.wpilibj2.command.button.JoystickButton; +import frc.SubSystems.Drivetrain; + +import java.sql.Driver; +import edu.wpi.first.wpilibj.XboxController; +import edu.wpi.first.wpilibj.XboxController.Button; +import edu.wpi.first.wpilibj.GenericHID; +import edu.wpi.first.wpilibj2.command.InstantCommand; public class RobotContainer { + public XboxController controller = new XboxController(0); + public final GenericHID driverController = new GenericHID(0); + public Drivetrain drivetrain = new Drivetrain(); + public RobotContainer() { configureBindings(); } - private void configureBindings() {} + private void configureBindings() { + new JoystickButton(driverController, Button.kX.value).onTrue(new InstantCommand(()->{drivetrain.swap();})); + } public Command getAutonomousCommand() { return Commands.print("No autonomous command configured"); From da240a867b68940306a5f0ab3098a05a0115cff1 Mon Sep 17 00:00:00 2001 From: Kenneth-Choothakan <134165881+Kenneth-Choothakan@users.noreply.github.com> Date: Sat, 28 Oct 2023 03:28:43 +0000 Subject: [PATCH 06/16] yes --- src/main/java/frc/SubSystems/Drivetrain.java | 14 ++++++---- src/main/java/frc/robot/Robot.java | 27 ++++++++------------ 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/src/main/java/frc/SubSystems/Drivetrain.java b/src/main/java/frc/SubSystems/Drivetrain.java index 7541c5d..4bc1a95 100644 --- a/src/main/java/frc/SubSystems/Drivetrain.java +++ b/src/main/java/frc/SubSystems/Drivetrain.java @@ -6,7 +6,7 @@ import edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup; public class Drivetrain { - boolean tank = false; + private boolean tank = false; CANSparkMax rightMotor = MotorControllerFactory.createSparkMax(1,MotorConfig.NEO); CANSparkMax leftMotor = MotorControllerFactory.createSparkMax(2,MotorConfig.NEO); @@ -14,13 +14,17 @@ public void drive(double left,double right) { rightMotor.set(right); leftMotor.set(left); } - public boolean swap() { + + public void swap() { if (tank) { - tank = false; - } - if (!tank) { tank = true; } + if(!tank) { + tank = false; + } + } + + public boolean isTank() { return tank; } } \ No newline at end of file diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index da89da1..2feb49c 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -14,10 +14,10 @@ public class Robot extends TimedRobot { private Command m_autonomousCommand; //___________________________________________________________________ //Kenneth's Valuble Variables - private Drivetrain drive = new Drivetrain(); + private Drivetrain drivetrain = new Drivetrain(); private XboxController controller = new XboxController(0); Timer timer = new Timer(); - boolean tank = false; + //___________________________________________________________________ private RobotContainer m_robotContainer; @Override @@ -28,6 +28,7 @@ public void robotInit() { @Override public void robotPeriodic() { CommandScheduler.getInstance().run(); + } @Override @@ -43,16 +44,17 @@ public void disabledExit() {} public void autonomousInit() { m_autonomousCommand = m_robotContainer.getAutonomousCommand(); timer.start(); - drive.drive(0.5,0.5); + drivetrain.drive(0.5,0.5); if (m_autonomousCommand != null) { m_autonomousCommand.schedule(); } } + @Override public void autonomousPeriodic() { if (timer.get() > 10) { - drive.drive(0, 0); + drivetrain.drive(0, 0); } } @@ -70,24 +72,15 @@ public void teleopInit() { public void teleopPeriodic() { double speed = -controller.getLeftY(); double turn = controller.getLeftX(); - if (drive.swap()) { + if (drivetrain.isTank()) { double left = speed - turn; double right = speed + turn; - drive.drive(left, right); + drivetrain.drive(left, right); } - if (!drive.swap()) { + if (!drivetrain.isTank()) { double rightYAxis = -controller.getRightY(); - drive.drive(speed,rightYAxis); - } - - if (controller.getXButtonPressed()) { - if(tank) { - tank = false; - } - if(!tank) { - tank = true; - } + drivetrain.drive(speed,rightYAxis); } } From 75c665f8ac46b48633fc1a5d4aea5712e3406e70 Mon Sep 17 00:00:00 2001 From: Kenneth-Choothakan <134165881+Kenneth-Choothakan@users.noreply.github.com> Date: Sat, 28 Oct 2023 03:41:59 +0000 Subject: [PATCH 07/16] new code --- src/main/java/frc/SubSystems/Drivetrain.java | 11 +++-------- src/main/java/frc/robot/Constants.java | 7 +++++-- src/main/java/frc/robot/RobotContainer.java | 4 +++- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/java/frc/SubSystems/Drivetrain.java b/src/main/java/frc/SubSystems/Drivetrain.java index 4bc1a95..50e1e26 100644 --- a/src/main/java/frc/SubSystems/Drivetrain.java +++ b/src/main/java/frc/SubSystems/Drivetrain.java @@ -6,7 +6,7 @@ import edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup; public class Drivetrain { - private boolean tank = false; + private boolean isTank = false; CANSparkMax rightMotor = MotorControllerFactory.createSparkMax(1,MotorConfig.NEO); CANSparkMax leftMotor = MotorControllerFactory.createSparkMax(2,MotorConfig.NEO); @@ -16,15 +16,10 @@ public void drive(double left,double right) { } public void swap() { - if (tank) { - tank = true; - } - if(!tank) { - tank = false; - } + isTank = !isTank; } public boolean isTank() { - return tank; + return isTank; } } \ No newline at end of file diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index 033c72d..c210f53 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -3,7 +3,7 @@ // the WPILib BSD license file in the root directory of this project. package frc.robot; - +import edu.wpi.first.wpilibj.XboxController.Button; /** * The Constants class provides a convenient place for teams to hold robot-wide numerical or boolean * constants. This class should not be used for any other purpose. All constants should be declared @@ -12,4 +12,7 @@ *
It is advised to statically import this class (or one of its inner classes) wherever the * constants are needed, to reduce verbosity. */ -public final class Constants {} +public final class Constants { + public static final int SWITCH_BUTTON = Button.kX.value; + // TODO: add button x as a constant and name it its function +} diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 2ff63e7..d09e115 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -8,12 +8,14 @@ import edu.wpi.first.wpilibj2.command.Commands; import edu.wpi.first.wpilibj2.command.button.JoystickButton; import frc.SubSystems.Drivetrain; +import frc.robot.Constants; import java.sql.Driver; import edu.wpi.first.wpilibj.XboxController; import edu.wpi.first.wpilibj.XboxController.Button; import edu.wpi.first.wpilibj.GenericHID; import edu.wpi.first.wpilibj2.command.InstantCommand; + public class RobotContainer { public XboxController controller = new XboxController(0); public final GenericHID driverController = new GenericHID(0); @@ -24,7 +26,7 @@ public RobotContainer() { } private void configureBindings() { - new JoystickButton(driverController, Button.kX.value).onTrue(new InstantCommand(()->{drivetrain.swap();})); + new JoystickButton(driverController, Constants.SWITCH_BUTTON).onTrue(new InstantCommand(()->{drivetrain.swap();})); } public Command getAutonomousCommand() { From 9730c7df67434c7316256b9bf669d1ca8f02709c Mon Sep 17 00:00:00 2001 From: Kenneth-Choothakan <134165881+Kenneth-Choothakan@users.noreply.github.com> Date: Sun, 29 Oct 2023 21:39:58 +0000 Subject: [PATCH 08/16] making the flywheel --- src/main/java/frc/SubSystems/Flywheel.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/main/java/frc/SubSystems/Flywheel.java diff --git a/src/main/java/frc/SubSystems/Flywheel.java b/src/main/java/frc/SubSystems/Flywheel.java new file mode 100644 index 0000000..8dda7c7 --- /dev/null +++ b/src/main/java/frc/SubSystems/Flywheel.java @@ -0,0 +1,17 @@ +package frc.SubSystems; + +import org.carlmontrobotics.lib199.MotorConfig; +import org.carlmontrobotics.lib199.MotorControllerFactory; + +import com.revrobotics.CANSparkMax; + +public class Flywheel { + CANSparkMax flyWheel1 = MotorControllerFactory.createSparkMax(3,MotorConfig.NEO); + CANSparkMax flyWheel2 = MotorControllerFactory.createSparkMax(3, MotorConfig.NEO); + public void intake() { + + } + public void out_take() { + + } +} From 2b0d2e0113b495e9008817429441e69b4c02339f Mon Sep 17 00:00:00 2001 From: Kenneth-Choothakan <134165881+Kenneth-Choothakan@users.noreply.github.com> Date: Sun, 29 Oct 2023 22:01:58 +0000 Subject: [PATCH 09/16] Outtake done --- src/main/java/frc/SubSystems/Flywheel.java | 5 +++-- src/main/java/frc/robot/Constants.java | 6 +++++- src/main/java/frc/robot/RobotContainer.java | 6 ++++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/java/frc/SubSystems/Flywheel.java b/src/main/java/frc/SubSystems/Flywheel.java index 8dda7c7..8fbfa6e 100644 --- a/src/main/java/frc/SubSystems/Flywheel.java +++ b/src/main/java/frc/SubSystems/Flywheel.java @@ -11,7 +11,8 @@ public class Flywheel { public void intake() { } - public void out_take() { - + public void out_take(int speed) { + flyWheel1.set(speed); + flyWheel2.set(-speed); } } diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index c210f53..7e28ea9 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -3,7 +3,9 @@ // the WPILib BSD license file in the root directory of this project. package frc.robot; +import edu.wpi.first.wpilibj.XboxController; import edu.wpi.first.wpilibj.XboxController.Button; + /** * The Constants class provides a convenient place for teams to hold robot-wide numerical or boolean * constants. This class should not be used for any other purpose. All constants should be declared @@ -13,6 +15,8 @@ * constants are needed, to reduce verbosity. */ public final class Constants { + static XboxController controller = new XboxController(0); public static final int SWITCH_BUTTON = Button.kX.value; - // TODO: add button x as a constant and name it its function + public static final int OUT_TAKE = Button.kRightBumper.value; + } diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index d09e115..b0bb55f 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -8,6 +8,7 @@ import edu.wpi.first.wpilibj2.command.Commands; import edu.wpi.first.wpilibj2.command.button.JoystickButton; import frc.SubSystems.Drivetrain; +import frc.SubSystems.Flywheel; import frc.robot.Constants; import java.sql.Driver; @@ -17,16 +18,17 @@ import edu.wpi.first.wpilibj2.command.InstantCommand; public class RobotContainer { - public XboxController controller = new XboxController(0); public final GenericHID driverController = new GenericHID(0); public Drivetrain drivetrain = new Drivetrain(); - + public Flywheel flywheel = new Flywheel(); public RobotContainer() { configureBindings(); } private void configureBindings() { new JoystickButton(driverController, Constants.SWITCH_BUTTON).onTrue(new InstantCommand(()->{drivetrain.swap();})); + new JoystickButton(driverController, Constants.OUT_TAKE).onTrue(new InstantCommand(()->{flywheel.out_take(1);})); + new JoystickButton(driverController, Constants.OUT_TAKE).onFalse(new InstantCommand(() -> {flywheel.out_take(-1);})); } public Command getAutonomousCommand() { From fd8527afa4b086ee7c8c70e3b0db3512869fb175 Mon Sep 17 00:00:00 2001 From: Char-AZ <139721106+Char-Az@users.noreply.github.com> Date: Sun, 29 Oct 2023 22:13:33 +0000 Subject: [PATCH 10/16] roogli --- src/main/java/frc/SubSystems/Flywheel.java | 7 ++++--- src/main/java/frc/robot/Constants.java | 2 +- src/main/java/frc/robot/RobotContainer.java | 6 ++++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/frc/SubSystems/Flywheel.java b/src/main/java/frc/SubSystems/Flywheel.java index 8fbfa6e..8bc8f40 100644 --- a/src/main/java/frc/SubSystems/Flywheel.java +++ b/src/main/java/frc/SubSystems/Flywheel.java @@ -8,10 +8,11 @@ public class Flywheel { CANSparkMax flyWheel1 = MotorControllerFactory.createSparkMax(3,MotorConfig.NEO); CANSparkMax flyWheel2 = MotorControllerFactory.createSparkMax(3, MotorConfig.NEO); - public void intake() { - + public void intake(double speed) { + flyWheel1.set(-speed); + flyWheel2.set(speed); } - public void out_take(int speed) { + public void out_take(double speed) { flyWheel1.set(speed); flyWheel2.set(-speed); } diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index 7e28ea9..9cc2243 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -18,5 +18,5 @@ public final class Constants { static XboxController controller = new XboxController(0); public static final int SWITCH_BUTTON = Button.kX.value; public static final int OUT_TAKE = Button.kRightBumper.value; - + public static final int INTAKE = Button.kLeftBumper.value; } diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index b0bb55f..7d658b5 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -28,8 +28,10 @@ public RobotContainer() { private void configureBindings() { new JoystickButton(driverController, Constants.SWITCH_BUTTON).onTrue(new InstantCommand(()->{drivetrain.swap();})); new JoystickButton(driverController, Constants.OUT_TAKE).onTrue(new InstantCommand(()->{flywheel.out_take(1);})); - new JoystickButton(driverController, Constants.OUT_TAKE).onFalse(new InstantCommand(() -> {flywheel.out_take(-1);})); - } + new JoystickButton(driverController, Constants.OUT_TAKE).onFalse(new InstantCommand(() -> {flywheel.out_take(0);})); + new JoystickButton(driverController, Constants.INTAKE).onTrue(new InstantCommand(()->{flywheel.intake(1);})); + new JoystickButton(driverController, Constants.INTAKE).onFalse(new InstantCommand(() -> {flywheel.out_take(0);})); + } public Command getAutonomousCommand() { return Commands.print("No autonomous command configured"); From 4f0eeb177cbde34aeb007f3ab05c83bb215722f4 Mon Sep 17 00:00:00 2001 From: Kenneth-Choothakan <134165881+Kenneth-Choothakan@users.noreply.github.com> Date: Sun, 29 Oct 2023 23:18:54 +0000 Subject: [PATCH 11/16] Organized --- src/main/java/frc/SubSystems/Drivetrain.java | 25 ----------- src/main/java/frc/robot/Constants.java | 3 +- src/main/java/frc/robot/Robot.java | 31 ++----------- src/main/java/frc/robot/RobotContainer.java | 23 +++++----- .../java/frc/robot/commands/Autonomous.java | 44 +++++++++++++++++++ .../java/frc/robot/subsystems/Drivetrain.java | 42 ++++++++++++++++++ .../subsystems}/Flywheel.java | 6 ++- 7 files changed, 107 insertions(+), 67 deletions(-) delete mode 100644 src/main/java/frc/SubSystems/Drivetrain.java create mode 100644 src/main/java/frc/robot/commands/Autonomous.java create mode 100644 src/main/java/frc/robot/subsystems/Drivetrain.java rename src/main/java/frc/{SubSystems => robot/subsystems}/Flywheel.java (80%) diff --git a/src/main/java/frc/SubSystems/Drivetrain.java b/src/main/java/frc/SubSystems/Drivetrain.java deleted file mode 100644 index 50e1e26..0000000 --- a/src/main/java/frc/SubSystems/Drivetrain.java +++ /dev/null @@ -1,25 +0,0 @@ -package frc.SubSystems; -import org.carlmontrobotics.lib199.MotorControllerFactory; -import org.carlmontrobotics.lib199.MotorConfig; -import com.revrobotics.CANSparkMax; - -import edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup; - -public class Drivetrain { - private boolean isTank = false; - CANSparkMax rightMotor = MotorControllerFactory.createSparkMax(1,MotorConfig.NEO); - CANSparkMax leftMotor = MotorControllerFactory.createSparkMax(2,MotorConfig.NEO); - - public void drive(double left,double right) { - rightMotor.set(right); - leftMotor.set(left); - } - - public void swap() { - isTank = !isTank; - } - - public boolean isTank() { - return isTank; - } -} \ No newline at end of file diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index 9cc2243..ee3519c 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -16,7 +16,8 @@ */ public final class Constants { static XboxController controller = new XboxController(0); + public static final int SWITCH_BUTTON = Button.kX.value; public static final int OUT_TAKE = Button.kRightBumper.value; - public static final int INTAKE = Button.kLeftBumper.value; + public static final int IN_TAKE = Button.kLeftBumper.value; } diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index 2feb49c..2f42e56 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -5,21 +5,12 @@ package frc.robot; import edu.wpi.first.wpilibj.TimedRobot; -import edu.wpi.first.wpilibj.Timer; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.CommandScheduler; -import frc.SubSystems.Drivetrain; -import edu.wpi.first.wpilibj.XboxController; public class Robot extends TimedRobot { private Command m_autonomousCommand; -//___________________________________________________________________ -//Kenneth's Valuble Variables - private Drivetrain drivetrain = new Drivetrain(); - private XboxController controller = new XboxController(0); - Timer timer = new Timer(); - -//___________________________________________________________________ private RobotContainer m_robotContainer; + @Override public void robotInit() { m_robotContainer = new RobotContainer(); @@ -43,8 +34,7 @@ public void disabledExit() {} @Override public void autonomousInit() { m_autonomousCommand = m_robotContainer.getAutonomousCommand(); - timer.start(); - drivetrain.drive(0.5,0.5); + if (m_autonomousCommand != null) { m_autonomousCommand.schedule(); } @@ -53,9 +43,7 @@ public void autonomousInit() { @Override public void autonomousPeriodic() { - if (timer.get() > 10) { - drivetrain.drive(0, 0); - } + } @Override @@ -70,18 +58,7 @@ public void teleopInit() { @Override public void teleopPeriodic() { - double speed = -controller.getLeftY(); - double turn = controller.getLeftX(); - if (drivetrain.isTank()) { - double left = speed - turn; - double right = speed + turn; - drivetrain.drive(left, right); - } - - if (!drivetrain.isTank()) { - double rightYAxis = -controller.getRightY(); - drivetrain.drive(speed,rightYAxis); - } + } @Override diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 7d658b5..0e8d93c 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -5,22 +5,20 @@ package frc.robot; import edu.wpi.first.wpilibj2.command.Command; -import edu.wpi.first.wpilibj2.command.Commands; import edu.wpi.first.wpilibj2.command.button.JoystickButton; -import frc.SubSystems.Drivetrain; -import frc.SubSystems.Flywheel; -import frc.robot.Constants; -import java.sql.Driver; +import frc.robot.commands.Autonomous; +import frc.robot.subsystems.Drivetrain; +import frc.robot.subsystems.Flywheel; + import edu.wpi.first.wpilibj.XboxController; -import edu.wpi.first.wpilibj.XboxController.Button; -import edu.wpi.first.wpilibj.GenericHID; import edu.wpi.first.wpilibj2.command.InstantCommand; public class RobotContainer { - public final GenericHID driverController = new GenericHID(0); - public Drivetrain drivetrain = new Drivetrain(); + public final XboxController driverController = new XboxController(0); public Flywheel flywheel = new Flywheel(); + public XboxController controller = new XboxController(0); + private Drivetrain drivetrain = new Drivetrain(controller); public RobotContainer() { configureBindings(); } @@ -29,11 +27,12 @@ private void configureBindings() { new JoystickButton(driverController, Constants.SWITCH_BUTTON).onTrue(new InstantCommand(()->{drivetrain.swap();})); new JoystickButton(driverController, Constants.OUT_TAKE).onTrue(new InstantCommand(()->{flywheel.out_take(1);})); new JoystickButton(driverController, Constants.OUT_TAKE).onFalse(new InstantCommand(() -> {flywheel.out_take(0);})); - new JoystickButton(driverController, Constants.INTAKE).onTrue(new InstantCommand(()->{flywheel.intake(1);})); - new JoystickButton(driverController, Constants.INTAKE).onFalse(new InstantCommand(() -> {flywheel.out_take(0);})); + new JoystickButton(driverController, Constants.IN_TAKE).onTrue(new InstantCommand(()->{flywheel.intake(1);})); + new JoystickButton(driverController, Constants.IN_TAKE).onFalse(new InstantCommand(() -> {flywheel.out_take(0);})); } public Command getAutonomousCommand() { - return Commands.print("No autonomous command configured"); + return new Autonomous(drivetrain); + //return Commands.print("No autonomous command configured"); } } diff --git a/src/main/java/frc/robot/commands/Autonomous.java b/src/main/java/frc/robot/commands/Autonomous.java new file mode 100644 index 0000000..7e61af4 --- /dev/null +++ b/src/main/java/frc/robot/commands/Autonomous.java @@ -0,0 +1,44 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +package frc.robot.commands; + +import edu.wpi.first.wpilibj.Timer; +import edu.wpi.first.wpilibj2.command.CommandBase; +import frc.robot.subsystems.Drivetrain; +public class Autonomous extends CommandBase { + /** Creates a new Autonomous. */ + private Drivetrain drivetrain; + Timer timer = new Timer(); + public Autonomous(Drivetrain dtrain) { + addRequirements(drivetrain = dtrain); + // Use addRequirements() here to declare subsystem dependencies. + } + + // Called when the command is initially scheduled. + @Override + public void initialize() { + timer.start(); + drivetrain.drive(0.5,0.5); + } + + // Called every time the scheduler runs while the command is scheduled. + @Override + public void execute() {} + + // Called once the command ends or is interrupted. + @Override + public void end(boolean interrupted) { + drivetrain.drive(0, 0); + } + + // Returns true when the command should end. + @Override + public boolean isFinished() { + if (timer.get() > 5) { + return true; + } + return false; + } +} diff --git a/src/main/java/frc/robot/subsystems/Drivetrain.java b/src/main/java/frc/robot/subsystems/Drivetrain.java new file mode 100644 index 0000000..919f405 --- /dev/null +++ b/src/main/java/frc/robot/subsystems/Drivetrain.java @@ -0,0 +1,42 @@ +package frc.robot.subsystems; +import org.carlmontrobotics.lib199.MotorControllerFactory; +import org.carlmontrobotics.lib199.MotorConfig; +import com.revrobotics.CANSparkMax; + +import edu.wpi.first.wpilibj.XboxController; +import edu.wpi.first.wpilibj2.command.SubsystemBase; + + +public class Drivetrain extends SubsystemBase { + public boolean isTank = false; + private XboxController controller; + CANSparkMax rightMotor = MotorControllerFactory.createSparkMax(1,MotorConfig.NEO); + CANSparkMax leftMotor = MotorControllerFactory.createSparkMax(2,MotorConfig.NEO); + + public Drivetrain(XboxController ctrlr){ + controller = ctrlr; + } + + public void drive(double left,double right) { + rightMotor.set(right); + leftMotor.set(left); + } + + public void swap() { + isTank = !isTank; + } + + @Override + public void periodic(){ + double speed = -controller.getLeftY(); + if (isTank) { + double turn = controller.getLeftX(); + double left = speed - turn; + double right = speed + turn; + drive(left, right); + } else { + double rightYAxis = -controller.getRightY(); + drive(speed,rightYAxis); + } + } +} \ No newline at end of file diff --git a/src/main/java/frc/SubSystems/Flywheel.java b/src/main/java/frc/robot/subsystems/Flywheel.java similarity index 80% rename from src/main/java/frc/SubSystems/Flywheel.java rename to src/main/java/frc/robot/subsystems/Flywheel.java index 8bc8f40..e7300e1 100644 --- a/src/main/java/frc/SubSystems/Flywheel.java +++ b/src/main/java/frc/robot/subsystems/Flywheel.java @@ -1,11 +1,13 @@ -package frc.SubSystems; +package frc.robot.subsystems; import org.carlmontrobotics.lib199.MotorConfig; import org.carlmontrobotics.lib199.MotorControllerFactory; import com.revrobotics.CANSparkMax; -public class Flywheel { +import edu.wpi.first.wpilibj2.command.SubsystemBase; + +public class Flywheel extends SubsystemBase{ CANSparkMax flyWheel1 = MotorControllerFactory.createSparkMax(3,MotorConfig.NEO); CANSparkMax flyWheel2 = MotorControllerFactory.createSparkMax(3, MotorConfig.NEO); public void intake(double speed) { From 7da411d974450cfb6d499c9211d4084f2b3364ed Mon Sep 17 00:00:00 2001 From: Kenneth-Choothakan <134165881+Kenneth-Choothakan@users.noreply.github.com> Date: Mon, 30 Oct 2023 01:43:55 +0000 Subject: [PATCH 12/16] newest version so far >:C --- src/main/java/frc/robot/Constants.java | 3 --- src/main/java/frc/robot/RobotContainer.java | 13 ++++++------- src/main/java/frc/robot/commands/Autonomous.java | 3 +++ src/main/java/frc/robot/subsystems/Flywheel.java | 2 +- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index ee3519c..fcd825b 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -3,7 +3,6 @@ // the WPILib BSD license file in the root directory of this project. package frc.robot; -import edu.wpi.first.wpilibj.XboxController; import edu.wpi.first.wpilibj.XboxController.Button; /** @@ -15,8 +14,6 @@ * constants are needed, to reduce verbosity. */ public final class Constants { - static XboxController controller = new XboxController(0); - public static final int SWITCH_BUTTON = Button.kX.value; public static final int OUT_TAKE = Button.kRightBumper.value; public static final int IN_TAKE = Button.kLeftBumper.value; diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 0e8d93c..b4d1a05 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -10,7 +10,6 @@ import frc.robot.commands.Autonomous; import frc.robot.subsystems.Drivetrain; import frc.robot.subsystems.Flywheel; - import edu.wpi.first.wpilibj.XboxController; import edu.wpi.first.wpilibj2.command.InstantCommand; @@ -24,12 +23,12 @@ public RobotContainer() { } private void configureBindings() { - new JoystickButton(driverController, Constants.SWITCH_BUTTON).onTrue(new InstantCommand(()->{drivetrain.swap();})); - new JoystickButton(driverController, Constants.OUT_TAKE).onTrue(new InstantCommand(()->{flywheel.out_take(1);})); - new JoystickButton(driverController, Constants.OUT_TAKE).onFalse(new InstantCommand(() -> {flywheel.out_take(0);})); - new JoystickButton(driverController, Constants.IN_TAKE).onTrue(new InstantCommand(()->{flywheel.intake(1);})); - new JoystickButton(driverController, Constants.IN_TAKE).onFalse(new InstantCommand(() -> {flywheel.out_take(0);})); - } + new JoystickButton(controller, Constants.SWITCH_BUTTON).onTrue(new InstantCommand(()->{drivetrain.swap();})); + new JoystickButton(controller, Constants.OUT_TAKE).onTrue(new InstantCommand(()->{flywheel.out_take(1);})); + new JoystickButton(controller, Constants.OUT_TAKE).onFalse(new InstantCommand(() -> {flywheel.out_take(0);})); + new JoystickButton(controller, Constants.IN_TAKE).onTrue(new InstantCommand(()->{flywheel.intake(1);})); + new JoystickButton(controller, Constants.IN_TAKE).onFalse(new InstantCommand(() -> {flywheel.out_take(0);})); + } public Command getAutonomousCommand() { return new Autonomous(drivetrain); diff --git a/src/main/java/frc/robot/commands/Autonomous.java b/src/main/java/frc/robot/commands/Autonomous.java index 7e61af4..2a6e9c4 100644 --- a/src/main/java/frc/robot/commands/Autonomous.java +++ b/src/main/java/frc/robot/commands/Autonomous.java @@ -19,6 +19,7 @@ public Autonomous(Drivetrain dtrain) { // Called when the command is initially scheduled. @Override public void initialize() { + timer.reset(); timer.start(); drivetrain.drive(0.5,0.5); } @@ -30,6 +31,8 @@ public void execute() {} // Called once the command ends or is interrupted. @Override public void end(boolean interrupted) { + timer.stop(); + timer.restart(); drivetrain.drive(0, 0); } diff --git a/src/main/java/frc/robot/subsystems/Flywheel.java b/src/main/java/frc/robot/subsystems/Flywheel.java index e7300e1..2369f3a 100644 --- a/src/main/java/frc/robot/subsystems/Flywheel.java +++ b/src/main/java/frc/robot/subsystems/Flywheel.java @@ -9,7 +9,7 @@ public class Flywheel extends SubsystemBase{ CANSparkMax flyWheel1 = MotorControllerFactory.createSparkMax(3,MotorConfig.NEO); - CANSparkMax flyWheel2 = MotorControllerFactory.createSparkMax(3, MotorConfig.NEO); + CANSparkMax flyWheel2 = MotorControllerFactory.createSparkMax(4, MotorConfig.NEO); public void intake(double speed) { flyWheel1.set(-speed); flyWheel2.set(speed); From 993cf55e2d67b987e87fb90f3304e7db521274da Mon Sep 17 00:00:00 2001 From: Kenneth-Choothakan <134165881+Kenneth-Choothakan@users.noreply.github.com> Date: Wed, 1 Nov 2023 23:48:19 +0000 Subject: [PATCH 13/16] issue solved??? --- src/main/java/frc/robot/RobotContainer.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index b4d1a05..2544d89 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -14,7 +14,6 @@ import edu.wpi.first.wpilibj2.command.InstantCommand; public class RobotContainer { - public final XboxController driverController = new XboxController(0); public Flywheel flywheel = new Flywheel(); public XboxController controller = new XboxController(0); private Drivetrain drivetrain = new Drivetrain(controller); From 027576353de69e6f3a11aa214a32bc8a01cbf650 Mon Sep 17 00:00:00 2001 From: Kenneth-Choothakan <134165881+Kenneth-Choothakan@users.noreply.github.com> Date: Thu, 2 Nov 2023 00:46:20 +0000 Subject: [PATCH 14/16] test the code aaron :) --- .../java/frc/robot/commands/Autonomous.java | 7 +++--- .../java/frc/robot/subsystems/Drivetrain.java | 24 +++++++++++-------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/main/java/frc/robot/commands/Autonomous.java b/src/main/java/frc/robot/commands/Autonomous.java index 2a6e9c4..6794b25 100644 --- a/src/main/java/frc/robot/commands/Autonomous.java +++ b/src/main/java/frc/robot/commands/Autonomous.java @@ -10,6 +10,7 @@ public class Autonomous extends CommandBase { /** Creates a new Autonomous. */ private Drivetrain drivetrain; + public static boolean auto; Timer timer = new Timer(); public Autonomous(Drivetrain dtrain) { addRequirements(drivetrain = dtrain); @@ -19,9 +20,9 @@ public Autonomous(Drivetrain dtrain) { // Called when the command is initially scheduled. @Override public void initialize() { - timer.reset(); timer.start(); drivetrain.drive(0.5,0.5); + auto = true; } // Called every time the scheduler runs while the command is scheduled. @@ -32,10 +33,10 @@ public void execute() {} @Override public void end(boolean interrupted) { timer.stop(); - timer.restart(); + auto = false; drivetrain.drive(0, 0); } - + // Returns true when the command should end. @Override public boolean isFinished() { diff --git a/src/main/java/frc/robot/subsystems/Drivetrain.java b/src/main/java/frc/robot/subsystems/Drivetrain.java index 919f405..28eb9e9 100644 --- a/src/main/java/frc/robot/subsystems/Drivetrain.java +++ b/src/main/java/frc/robot/subsystems/Drivetrain.java @@ -2,12 +2,13 @@ import org.carlmontrobotics.lib199.MotorControllerFactory; import org.carlmontrobotics.lib199.MotorConfig; import com.revrobotics.CANSparkMax; - +import frc.robot.commands.Autonomous; import edu.wpi.first.wpilibj.XboxController; import edu.wpi.first.wpilibj2.command.SubsystemBase; public class Drivetrain extends SubsystemBase { + boolean auto = Autonomous.auto; public boolean isTank = false; private XboxController controller; CANSparkMax rightMotor = MotorControllerFactory.createSparkMax(1,MotorConfig.NEO); @@ -28,15 +29,18 @@ public void swap() { @Override public void periodic(){ - double speed = -controller.getLeftY(); - if (isTank) { - double turn = controller.getLeftX(); - double left = speed - turn; - double right = speed + turn; - drive(left, right); - } else { - double rightYAxis = -controller.getRightY(); - drive(speed,rightYAxis); + if (!auto) { + double speed = -controller.getLeftY(); + if (isTank) { + double turn = controller.getLeftX(); + double left = speed - turn; + double right = speed + turn; + drive(left, right); + } else { + double rightYAxis = -controller.getRightY(); + drive(speed,rightYAxis); + } } + } } \ No newline at end of file From 79c2884d01f9f2bd2345b146771e8eeea8cb56a3 Mon Sep 17 00:00:00 2001 From: Kenneth-Choothakan <134165881+Kenneth-Choothakan@users.noreply.github.com> Date: Thu, 2 Nov 2023 01:24:28 +0000 Subject: [PATCH 15/16] newest version --- src/main/java/frc/robot/commands/Autonomous.java | 3 ++- src/main/java/frc/robot/subsystems/Drivetrain.java | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/frc/robot/commands/Autonomous.java b/src/main/java/frc/robot/commands/Autonomous.java index 6794b25..790d6db 100644 --- a/src/main/java/frc/robot/commands/Autonomous.java +++ b/src/main/java/frc/robot/commands/Autonomous.java @@ -13,7 +13,8 @@ public class Autonomous extends CommandBase { public static boolean auto; Timer timer = new Timer(); public Autonomous(Drivetrain dtrain) { - addRequirements(drivetrain = dtrain); + this.drivetrain = dtrain; + addRequirements(drivetrain); // Use addRequirements() here to declare subsystem dependencies. } diff --git a/src/main/java/frc/robot/subsystems/Drivetrain.java b/src/main/java/frc/robot/subsystems/Drivetrain.java index 28eb9e9..c36ae70 100644 --- a/src/main/java/frc/robot/subsystems/Drivetrain.java +++ b/src/main/java/frc/robot/subsystems/Drivetrain.java @@ -41,6 +41,5 @@ public void periodic(){ drive(speed,rightYAxis); } } - } } \ No newline at end of file From c3f7e1983fb772636c50ae4572b7b60228299105 Mon Sep 17 00:00:00 2001 From: Kenneth-Choothakan <134165881+Kenneth-Choothakan@users.noreply.github.com> Date: Thu, 2 Nov 2023 02:22:09 +0000 Subject: [PATCH 16/16] bruh idk anymore --- src/main/java/frc/robot/RobotContainer.java | 2 -- src/main/java/frc/robot/commands/Autonomous.java | 8 +++----- src/main/java/frc/robot/subsystems/Drivetrain.java | 5 ++--- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 2544d89..8010a4d 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -6,7 +6,6 @@ import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.button.JoystickButton; - import frc.robot.commands.Autonomous; import frc.robot.subsystems.Drivetrain; import frc.robot.subsystems.Flywheel; @@ -31,6 +30,5 @@ private void configureBindings() { public Command getAutonomousCommand() { return new Autonomous(drivetrain); - //return Commands.print("No autonomous command configured"); } } diff --git a/src/main/java/frc/robot/commands/Autonomous.java b/src/main/java/frc/robot/commands/Autonomous.java index 790d6db..d776f26 100644 --- a/src/main/java/frc/robot/commands/Autonomous.java +++ b/src/main/java/frc/robot/commands/Autonomous.java @@ -3,15 +3,13 @@ // the WPILib BSD license file in the root directory of this project. package frc.robot.commands; - import edu.wpi.first.wpilibj.Timer; import edu.wpi.first.wpilibj2.command.CommandBase; import frc.robot.subsystems.Drivetrain; public class Autonomous extends CommandBase { /** Creates a new Autonomous. */ private Drivetrain drivetrain; - public static boolean auto; - Timer timer = new Timer(); + private final Timer timer = new Timer(); public Autonomous(Drivetrain dtrain) { this.drivetrain = dtrain; addRequirements(drivetrain); @@ -21,9 +19,9 @@ public Autonomous(Drivetrain dtrain) { // Called when the command is initially scheduled. @Override public void initialize() { + drivetrain.isAuto = true; timer.start(); drivetrain.drive(0.5,0.5); - auto = true; } // Called every time the scheduler runs while the command is scheduled. @@ -34,7 +32,7 @@ public void execute() {} @Override public void end(boolean interrupted) { timer.stop(); - auto = false; + drivetrain.isAuto = false; drivetrain.drive(0, 0); } diff --git a/src/main/java/frc/robot/subsystems/Drivetrain.java b/src/main/java/frc/robot/subsystems/Drivetrain.java index c36ae70..9a27bc3 100644 --- a/src/main/java/frc/robot/subsystems/Drivetrain.java +++ b/src/main/java/frc/robot/subsystems/Drivetrain.java @@ -2,13 +2,12 @@ import org.carlmontrobotics.lib199.MotorControllerFactory; import org.carlmontrobotics.lib199.MotorConfig; import com.revrobotics.CANSparkMax; -import frc.robot.commands.Autonomous; import edu.wpi.first.wpilibj.XboxController; import edu.wpi.first.wpilibj2.command.SubsystemBase; public class Drivetrain extends SubsystemBase { - boolean auto = Autonomous.auto; + public boolean isAuto; public boolean isTank = false; private XboxController controller; CANSparkMax rightMotor = MotorControllerFactory.createSparkMax(1,MotorConfig.NEO); @@ -29,7 +28,7 @@ public void swap() { @Override public void periodic(){ - if (!auto) { + if (!isAuto) { double speed = -controller.getLeftY(); if (isTank) { double turn = controller.getLeftX();