From 536000ec7674b41c19e27c5de8b9782c2ed0c269 Mon Sep 17 00:00:00 2001 From: Eytan123123 <119526687+Eytan123123@users.noreply.github.com> Date: Sun, 25 Jun 2023 15:51:34 +0300 Subject: [PATCH 01/32] startingShufflebord --- src/main/java/frc/robot/logging/DriveTrainShuffleboard.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java index e796c3e..3bf56e6 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java @@ -15,5 +15,7 @@ public DriveTrainShuffleboard() { tab = Shuffleboard.getTab("DriveTrain"); tab.addNumber("motorCurrent", driveTrain::getCurrent); + + //tab.addDouble("EncoderCounter", Swerve.getinstance.getEncoderUnits); } } From ced746041a25f0c3ce3ccd966afc66e93c339d20 Mon Sep 17 00:00:00 2001 From: negbi2 Date: Sun, 25 Jun 2023 16:09:01 +0300 Subject: [PATCH 02/32] Init commit stuff you probably don't care about --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 1a35c5c..862cfb0 100644 --- a/.gitignore +++ b/.gitignore @@ -105,3 +105,7 @@ gradle-app.setting # End of https://www.gitignore.io/api/gradle,intellij+all imgui.ini +.settings/org.eclipse.buildship.core.prefs +.settings/org.eclipse.jdt.core.prefs +.project +.classpath From b89b7a2a96cc0d2239a33338d6420c50c92d9fbd Mon Sep 17 00:00:00 2001 From: negbi2 Date: Sun, 25 Jun 2023 16:09:59 +0300 Subject: [PATCH 03/32] Made led subsystem --- src/main/java/frc/robot/led/LED.java | 42 +++++++++++++++++++ .../java/frc/robot/led/LEDComponents.java | 11 +++++ .../java/frc/robot/led/LEDComponentsImpl.java | 27 ++++++++++++ src/main/java/frc/robot/led/LEDConstants.java | 8 ++++ 4 files changed, 88 insertions(+) create mode 100644 src/main/java/frc/robot/led/LED.java create mode 100644 src/main/java/frc/robot/led/LEDComponents.java create mode 100644 src/main/java/frc/robot/led/LEDComponentsImpl.java create mode 100644 src/main/java/frc/robot/led/LEDConstants.java diff --git a/src/main/java/frc/robot/led/LED.java b/src/main/java/frc/robot/led/LED.java new file mode 100644 index 0000000..1dd0996 --- /dev/null +++ b/src/main/java/frc/robot/led/LED.java @@ -0,0 +1,42 @@ +package frc.robot.led; + +import edu.wpi.first.wpilibj.util.Color; +import static frc.robot.led.LEDConstants.*; + +public class LED { + private final LEDComponents components; + + private LED(LEDComponents components) { + this.components = components; + } + + private void setOneLed(int i, Color color) { + components.getBuffer().setLED(i, color); + } + + public void setStrip(Color color) { + for (int i = 0; i < LED_STRIP_LENGTH; i++) + setOneLed(i, color); + + show(); + } + + public void setStripOff() { + setStrip(new Color(0, 0, 0)); + } + + public void show() { + components.getLed().setData(components.getBuffer()); + } + + + private static LED instance; + + public static void init(LEDComponents components) { + instance = new LED(components); + } + + public static LED getInstance() { + return instance; + } +} diff --git a/src/main/java/frc/robot/led/LEDComponents.java b/src/main/java/frc/robot/led/LEDComponents.java new file mode 100644 index 0000000..7fa9796 --- /dev/null +++ b/src/main/java/frc/robot/led/LEDComponents.java @@ -0,0 +1,11 @@ +package frc.robot.led; + +import edu.wpi.first.wpilibj.AddressableLED; +import edu.wpi.first.wpilibj.AddressableLEDBuffer; + +public interface LEDComponents { + + AddressableLED getLed(); + + AddressableLEDBuffer getBuffer(); +} diff --git a/src/main/java/frc/robot/led/LEDComponentsImpl.java b/src/main/java/frc/robot/led/LEDComponentsImpl.java new file mode 100644 index 0000000..948b2a8 --- /dev/null +++ b/src/main/java/frc/robot/led/LEDComponentsImpl.java @@ -0,0 +1,27 @@ +package frc.robot.led; + +import edu.wpi.first.wpilibj.AddressableLED; +import edu.wpi.first.wpilibj.AddressableLEDBuffer; + +import static frc.robot.led.LEDConstants.*; + +public class LEDComponentsImpl implements LEDComponents { + + private final AddressableLED ledStrip; + private final AddressableLEDBuffer ledBuffer; + + public LEDComponentsImpl() { + ledStrip = new AddressableLED(LED_PORT); + ledBuffer = new AddressableLEDBuffer(LED_STRIP_LENGTH); + } + + @Override + public AddressableLED getLed() { + return ledStrip; + } + + @Override + public AddressableLEDBuffer getBuffer() { + return ledBuffer; + } +} diff --git a/src/main/java/frc/robot/led/LEDConstants.java b/src/main/java/frc/robot/led/LEDConstants.java new file mode 100644 index 0000000..69880ac --- /dev/null +++ b/src/main/java/frc/robot/led/LEDConstants.java @@ -0,0 +1,8 @@ +package frc.robot.led; + +public class LEDConstants { + + public static final int LED_STRIP_LENGTH = 14; + public static final int LED_PORT = 9; + public static final int SOMENTHING = 89; +} From ecd025238e43a18677a7b63be1ff215e0f2ddb16 Mon Sep 17 00:00:00 2001 From: negbi2 Date: Sun, 25 Jun 2023 16:17:35 +0300 Subject: [PATCH 04/32] upsi dupsi --- src/main/java/frc/robot/led/LEDConstants.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/frc/robot/led/LEDConstants.java b/src/main/java/frc/robot/led/LEDConstants.java index 69880ac..9c69c36 100644 --- a/src/main/java/frc/robot/led/LEDConstants.java +++ b/src/main/java/frc/robot/led/LEDConstants.java @@ -4,5 +4,4 @@ public class LEDConstants { public static final int LED_STRIP_LENGTH = 14; public static final int LED_PORT = 9; - public static final int SOMENTHING = 89; } From 68890df2decb22582e115958ec4af62acc6eec8d Mon Sep 17 00:00:00 2001 From: Eytan123123 <119526687+Eytan123123@users.noreply.github.com> Date: Sun, 25 Jun 2023 17:06:59 +0300 Subject: [PATCH 05/32] trying shuffle bord --- src/main/java/frc/robot/logging/DriveTrainShuffleboard.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java index 3bf56e6..d1a2e6f 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java @@ -3,19 +3,20 @@ import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard; import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab; import frc.robot.subsystems.driveTrain.DriveTrain; +import frc.robot.subsystems.driveTrain.DriveTrainComponents; public class DriveTrainShuffleboard { private DriveTrain driveTrain; private ShuffleboardTab tab; - public DriveTrainShuffleboard() { + public DriveTrainShuffleboard(DriveTrainComponents components) { driveTrain = DriveTrain.getInstance(); tab = Shuffleboard.getTab("DriveTrain"); tab.addNumber("motorCurrent", driveTrain::getCurrent); - //tab.addDouble("EncoderCounter", Swerve.getinstance.getEncoderUnits); + //tab.addDouble("EncoderCounter", components.getLeftMasterMotor().); } } From b5a23324445c52f50adf8e23cdd15b2e1c9b079b Mon Sep 17 00:00:00 2001 From: negbi2 Date: Thu, 29 Jun 2023 21:31:46 +0300 Subject: [PATCH 06/32] CR changes, all aesthetic I should really make a macro for renaming variables :P --- src/main/java/frc/robot/led/LED.java | 21 ++++++++++--------- .../java/frc/robot/led/LEDComponents.java | 2 +- .../java/frc/robot/led/LEDComponentsImpl.java | 19 +++++++++-------- src/main/java/frc/robot/led/LEDConstants.java | 10 ++++++--- 4 files changed, 29 insertions(+), 23 deletions(-) diff --git a/src/main/java/frc/robot/led/LED.java b/src/main/java/frc/robot/led/LED.java index 1dd0996..7d5c231 100644 --- a/src/main/java/frc/robot/led/LED.java +++ b/src/main/java/frc/robot/led/LED.java @@ -1,35 +1,36 @@ package frc.robot.led; -import edu.wpi.first.wpilibj.util.Color; import static frc.robot.led.LEDConstants.*; +import edu.wpi.first.wpilibj.util.Color; + public class LED { + private final LEDComponents components; private LED(LEDComponents components) { this.components = components; } - private void setOneLed(int i, Color color) { - components.getBuffer().setLED(i, color); + private void setOneLed(int ledIndex, Color color) { + components.getBuffer().setLED(ledIndex, color); } public void setStrip(Color color) { - for (int i = 0; i < LED_STRIP_LENGTH; i++) - setOneLed(i, color); + for (int ledIndex = 0; ledIndex < STRIP_LENGTH; ledIndex++) + setOneLed(ledIndex, color); - show(); + update(); } public void setStripOff() { - setStrip(new Color(0, 0, 0)); + setStrip(BLACK); } - public void show() { - components.getLed().setData(components.getBuffer()); + public void update() { + components.getStrip().setData(components.getBuffer()); } - private static LED instance; public static void init(LEDComponents components) { diff --git a/src/main/java/frc/robot/led/LEDComponents.java b/src/main/java/frc/robot/led/LEDComponents.java index 7fa9796..09b746a 100644 --- a/src/main/java/frc/robot/led/LEDComponents.java +++ b/src/main/java/frc/robot/led/LEDComponents.java @@ -5,7 +5,7 @@ public interface LEDComponents { - AddressableLED getLed(); + AddressableLED getStrip(); AddressableLEDBuffer getBuffer(); } diff --git a/src/main/java/frc/robot/led/LEDComponentsImpl.java b/src/main/java/frc/robot/led/LEDComponentsImpl.java index 948b2a8..a0f8430 100644 --- a/src/main/java/frc/robot/led/LEDComponentsImpl.java +++ b/src/main/java/frc/robot/led/LEDComponentsImpl.java @@ -1,27 +1,28 @@ package frc.robot.led; +import static frc.robot.led.LEDConstants.PORT; +import static frc.robot.led.LEDConstants.STRIP_LENGTH; + import edu.wpi.first.wpilibj.AddressableLED; import edu.wpi.first.wpilibj.AddressableLEDBuffer; -import static frc.robot.led.LEDConstants.*; - public class LEDComponentsImpl implements LEDComponents { - private final AddressableLED ledStrip; - private final AddressableLEDBuffer ledBuffer; + private final AddressableLED Strip; + private final AddressableLEDBuffer Buffer; public LEDComponentsImpl() { - ledStrip = new AddressableLED(LED_PORT); - ledBuffer = new AddressableLEDBuffer(LED_STRIP_LENGTH); + Strip = new AddressableLED(PORT); + Buffer = new AddressableLEDBuffer(STRIP_LENGTH); } @Override - public AddressableLED getLed() { - return ledStrip; + public AddressableLED getStrip() { + return Strip; } @Override public AddressableLEDBuffer getBuffer() { - return ledBuffer; + return Buffer; } } diff --git a/src/main/java/frc/robot/led/LEDConstants.java b/src/main/java/frc/robot/led/LEDConstants.java index 9c69c36..d067e75 100644 --- a/src/main/java/frc/robot/led/LEDConstants.java +++ b/src/main/java/frc/robot/led/LEDConstants.java @@ -1,7 +1,11 @@ package frc.robot.led; +import edu.wpi.first.wpilibj.util.Color; + public class LEDConstants { - - public static final int LED_STRIP_LENGTH = 14; - public static final int LED_PORT = 9; + + public static final int STRIP_LENGTH = 14; + public static final int PORT = 9; + + public static final Color BLACK = new Color(0, 0, 0); } From 96c7926f8cf2d6cc80cd432f4398d956588aa44e Mon Sep 17 00:00:00 2001 From: Eytan123123 Date: Sat, 1 Jul 2023 16:06:36 +0300 Subject: [PATCH 07/32] Update DriveTrainShuffleBoard.java --- .../robot/logging/DriveTrainShuffleBoard.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java index d9659d2..d1a2e6f 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java @@ -4,17 +4,19 @@ import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab; import frc.robot.subsystems.driveTrain.DriveTrain; import frc.robot.subsystems.driveTrain.DriveTrainComponents; -import frc.robot.subsystems.driveTrain.features.PoseEstimator; -import frc.robot.subsystems.driveTrain.features.SwerveModule; -public class DriveTrainShuffleBoard { +public class DriveTrainShuffleboard { - public DriveTrainShuffleBoard(DriveTrain driveTrain, DriveTrainComponents components) { + private DriveTrain driveTrain; + private ShuffleboardTab tab; - ShuffleboardTab tab = Shuffleboard.getTab("Swerve"); - SwerveModule[] swerveModules = components.getSwerveModules(); - tab.addString("Pose",()-> PoseEstimator.getInstance().getPose2d().toString()); - tab.addNumber("CurrentModuleAngle", () -> swerveModules[0].getCurrentAbsoluteDeg()); - tab.addNumber("cancoderAng", () -> swerveModules[0].getAbsEncDeg() - swerveModules[0].getAngleOffset());} + public DriveTrainShuffleboard(DriveTrainComponents components) { + driveTrain = DriveTrain.getInstance(); + tab = Shuffleboard.getTab("DriveTrain"); + + tab.addNumber("motorCurrent", driveTrain::getCurrent); + + //tab.addDouble("EncoderCounter", components.getLeftMasterMotor().); + } } From 7b60b6fe79c2f21d582a6b18d5527fcee58a0671 Mon Sep 17 00:00:00 2001 From: Eytan123123 Date: Sat, 1 Jul 2023 16:27:24 +0300 Subject: [PATCH 08/32] starting ShuffleBord --- .../java/frc/robot/logging/DriveTrainShuffleBoard.java | 7 +++++-- .../java/frc/robot/logging/DriveTrainShuffleboard.java | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java index d1a2e6f..6bf191b 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java @@ -4,6 +4,7 @@ import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab; import frc.robot.subsystems.driveTrain.DriveTrain; import frc.robot.subsystems.driveTrain.DriveTrainComponents; +import frc.robot.subsystems.driveTrain.DriveTrainComponentsImpl; public class DriveTrainShuffleboard { @@ -14,9 +15,11 @@ public DriveTrainShuffleboard(DriveTrainComponents components) { driveTrain = DriveTrain.getInstance(); tab = Shuffleboard.getTab("DriveTrain"); + tab.addNumber("encoder units ", () -> driveTrain.getSwerveModulesPosition()[0].angle.getRadians()); - tab.addNumber("motorCurrent", driveTrain::getCurrent); - + tab.addNumber("robot's angle ", () -> ) + //זווית של הרובוט, זווית של כל מודלוה, משהו מהאינקודר, סיבוב של 90 מעלות. + //של לדים: להציג צבע נוכחי, לנחליף לאדום, להחליף לרייבואואוואואואואואואו //tab.addDouble("EncoderCounter", components.getLeftMasterMotor().); } } diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java index d1a2e6f..6bf191b 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java @@ -4,6 +4,7 @@ import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab; import frc.robot.subsystems.driveTrain.DriveTrain; import frc.robot.subsystems.driveTrain.DriveTrainComponents; +import frc.robot.subsystems.driveTrain.DriveTrainComponentsImpl; public class DriveTrainShuffleboard { @@ -14,9 +15,11 @@ public DriveTrainShuffleboard(DriveTrainComponents components) { driveTrain = DriveTrain.getInstance(); tab = Shuffleboard.getTab("DriveTrain"); + tab.addNumber("encoder units ", () -> driveTrain.getSwerveModulesPosition()[0].angle.getRadians()); - tab.addNumber("motorCurrent", driveTrain::getCurrent); - + tab.addNumber("robot's angle ", () -> ) + //זווית של הרובוט, זווית של כל מודלוה, משהו מהאינקודר, סיבוב של 90 מעלות. + //של לדים: להציג צבע נוכחי, לנחליף לאדום, להחליף לרייבואואוואואואואואואו //tab.addDouble("EncoderCounter", components.getLeftMasterMotor().); } } From dce7ce97d5e5938d44c9bc5ac44a8d95e0789f82 Mon Sep 17 00:00:00 2001 From: Eytan123123 Date: Sat, 1 Jul 2023 20:27:30 +0300 Subject: [PATCH 09/32] angle, pose, angle Models --- .../robot/logging/DriveTrainShuffleBoard.java | 28 +++++++++++++++---- .../robot/logging/DriveTrainShuffleboard.java | 28 +++++++++++++++---- .../java/frc/robot/robotControl/DriverOi.java | 2 +- .../subsystems/driveTrain/DriveTrain.java | 5 ++-- .../features/AutoPilotController.java | 6 ++-- 5 files changed, 50 insertions(+), 19 deletions(-) diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java index 6bf191b..60a988c 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java @@ -1,10 +1,16 @@ package frc.robot.logging; +import edu.wpi.first.math.geometry.Pose2d; +import edu.wpi.first.math.geometry.Rotation2d; +import edu.wpi.first.math.geometry.Rotation3d; import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard; import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab; +import frc.robot.commands.driveTrain.MoveByDistance; import frc.robot.subsystems.driveTrain.DriveTrain; import frc.robot.subsystems.driveTrain.DriveTrainComponents; import frc.robot.subsystems.driveTrain.DriveTrainComponentsImpl; +import frc.robot.subsystems.driveTrain.features.PoseEstimator; +import frc.robot.subsystems.driveTrain.features.SwerveModule; public class DriveTrainShuffleboard { @@ -13,13 +19,23 @@ public class DriveTrainShuffleboard { public DriveTrainShuffleboard(DriveTrainComponents components) { driveTrain = DriveTrain.getInstance(); + SwerveModule[] swerveModules = components.getSwerveModules(); tab = Shuffleboard.getTab("DriveTrain"); - tab.addNumber("encoder units ", () -> driveTrain.getSwerveModulesPosition()[0].angle.getRadians()); + tab.addNumber("FL encoderUnits ", () -> swerveModules[0].getAbsEncDeg()); +// tab.addNumber("FR encoderUnits ", () -> swerveModules[1].getAbsEncDeg()); +// tab.addNumber("BL encoderUnits ", () -> swerveModules[2].getAbsEncDeg()); +// tab.addNumber("BR encoderUnits ", () -> swerveModules[3].getAbsEncDeg()); + //tab.addNumber("encoder units ", () -> swerveModules[0].getAngleOffset()); + + tab.addNumber("FL CurrentModuleAngle", () -> swerveModules[0].getCurrentAbsoluteDeg()); +// tab.addNumber("FR CurrentModuleAngle", () -> swerveModules[1].getCurrentAbsoluteDeg()); +// tab.addNumber("BL CurrentModuleAngle", () -> swerveModules[2].getCurrentAbsoluteDeg()); +// tab.addNumber("BR CurrentModuleAngle", () -> swerveModules[3].getCurrentAbsoluteDeg()); + + tab.addNumber("Robot's angle", () -> PoseEstimator.getInstance().getHeading().getDegrees()); + + tab.add("Turning 90 ",new MoveByDistance(new Pose2d(0, 0, Rotation2d.fromDegrees(90)))); - tab.addNumber("robot's angle ", () -> ) - //זווית של הרובוט, זווית של כל מודלוה, משהו מהאינקודר, סיבוב של 90 מעלות. - //של לדים: להציג צבע נוכחי, לנחליף לאדום, להחליף לרייבואואוואואואואואואו - //tab.addDouble("EncoderCounter", components.getLeftMasterMotor().); } -} +} \ No newline at end of file diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java index 6bf191b..60a988c 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java @@ -1,10 +1,16 @@ package frc.robot.logging; +import edu.wpi.first.math.geometry.Pose2d; +import edu.wpi.first.math.geometry.Rotation2d; +import edu.wpi.first.math.geometry.Rotation3d; import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard; import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab; +import frc.robot.commands.driveTrain.MoveByDistance; import frc.robot.subsystems.driveTrain.DriveTrain; import frc.robot.subsystems.driveTrain.DriveTrainComponents; import frc.robot.subsystems.driveTrain.DriveTrainComponentsImpl; +import frc.robot.subsystems.driveTrain.features.PoseEstimator; +import frc.robot.subsystems.driveTrain.features.SwerveModule; public class DriveTrainShuffleboard { @@ -13,13 +19,23 @@ public class DriveTrainShuffleboard { public DriveTrainShuffleboard(DriveTrainComponents components) { driveTrain = DriveTrain.getInstance(); + SwerveModule[] swerveModules = components.getSwerveModules(); tab = Shuffleboard.getTab("DriveTrain"); - tab.addNumber("encoder units ", () -> driveTrain.getSwerveModulesPosition()[0].angle.getRadians()); + tab.addNumber("FL encoderUnits ", () -> swerveModules[0].getAbsEncDeg()); +// tab.addNumber("FR encoderUnits ", () -> swerveModules[1].getAbsEncDeg()); +// tab.addNumber("BL encoderUnits ", () -> swerveModules[2].getAbsEncDeg()); +// tab.addNumber("BR encoderUnits ", () -> swerveModules[3].getAbsEncDeg()); + //tab.addNumber("encoder units ", () -> swerveModules[0].getAngleOffset()); + + tab.addNumber("FL CurrentModuleAngle", () -> swerveModules[0].getCurrentAbsoluteDeg()); +// tab.addNumber("FR CurrentModuleAngle", () -> swerveModules[1].getCurrentAbsoluteDeg()); +// tab.addNumber("BL CurrentModuleAngle", () -> swerveModules[2].getCurrentAbsoluteDeg()); +// tab.addNumber("BR CurrentModuleAngle", () -> swerveModules[3].getCurrentAbsoluteDeg()); + + tab.addNumber("Robot's angle", () -> PoseEstimator.getInstance().getHeading().getDegrees()); + + tab.add("Turning 90 ",new MoveByDistance(new Pose2d(0, 0, Rotation2d.fromDegrees(90)))); - tab.addNumber("robot's angle ", () -> ) - //זווית של הרובוט, זווית של כל מודלוה, משהו מהאינקודר, סיבוב של 90 מעלות. - //של לדים: להציג צבע נוכחי, לנחליף לאדום, להחליף לרייבואואוואואואואואואו - //tab.addDouble("EncoderCounter", components.getLeftMasterMotor().); } -} +} \ No newline at end of file diff --git a/src/main/java/frc/robot/robotControl/DriverOi.java b/src/main/java/frc/robot/robotControl/DriverOi.java index b34c6a1..b663b3a 100644 --- a/src/main/java/frc/robot/robotControl/DriverOi.java +++ b/src/main/java/frc/robot/robotControl/DriverOi.java @@ -37,6 +37,6 @@ public DriverOi() { () -> true )); resetPose.onTrue(new ResetPose()); - moveByDistance.whileTrue(new MoveByDistance(new Pose2d(3, 0, Rotation2d.fromDegrees(-90)))); + moveByDistance.whileTrue(new MoveByDistance(new Pose2d(0, 0, Rotation2d.fromDegrees(90)))); } } diff --git a/src/main/java/frc/robot/subsystems/driveTrain/DriveTrain.java b/src/main/java/frc/robot/subsystems/driveTrain/DriveTrain.java index 0e5eb02..1540fef 100644 --- a/src/main/java/frc/robot/subsystems/driveTrain/DriveTrain.java +++ b/src/main/java/frc/robot/subsystems/driveTrain/DriveTrain.java @@ -4,11 +4,10 @@ import edu.wpi.first.math.kinematics.SwerveModulePosition; import edu.wpi.first.math.kinematics.SwerveModuleState; import edu.wpi.first.wpilibj2.command.SubsystemBase; -import frc.robot.logging.DriveTrainShuffleBoard; import frc.robot.subsystems.driveTrain.features.KeepAngleController; import frc.robot.subsystems.driveTrain.features.PoseEstimator; import frc.robot.subsystems.driveTrain.features.SwerveModule; - +import frc.robot.logging.DriveTrainShuffleboard; import static frc.robot.subsystems.driveTrain.DriveTrainConstants.*; public class DriveTrain extends SubsystemBase { @@ -114,7 +113,7 @@ public static void init(DriveTrainComponents components) { if (instance == null) { instance = new DriveTrain(components); } - new DriveTrainShuffleBoard(instance, instance.components); + new DriveTrainShuffleboard(components); } public static DriveTrain getInstance() { diff --git a/src/main/java/frc/robot/subsystems/driveTrain/features/AutoPilotController.java b/src/main/java/frc/robot/subsystems/driveTrain/features/AutoPilotController.java index fd55bf5..83062f3 100644 --- a/src/main/java/frc/robot/subsystems/driveTrain/features/AutoPilotController.java +++ b/src/main/java/frc/robot/subsystems/driveTrain/features/AutoPilotController.java @@ -21,9 +21,9 @@ public class AutoPilotController { public AutoPilotController(Pose2d deltaPose) { ShuffleboardTab tab = Shuffleboard.getTab("PoseEstimator"); - tab.addNumber("errorX",()->controllerX.getPositionError()); - tab.addNumber("errorY",()->controllerY.getPositionError()); - tab.addNumber("errorRot",()->controllerRot.getPositionError()); +// tab.addNumber("errorX",()->controllerX.getPositionError()); +// tab.addNumber("errorY",()->controllerY.getPositionError()); +// tab.addNumber("errorRot",()->controllerRot.getPositionError()); controllerX = new PIDController( AUTO_PILOT_PID_X.getKp(), From 815aa3371a3777bc7865c330f879f0416519ac24 Mon Sep 17 00:00:00 2001 From: Eytan123123 Date: Sat, 1 Jul 2023 20:45:46 +0300 Subject: [PATCH 10/32] Trying ChangeColor as a check to the go 90d --- src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java | 5 +++++ src/main/java/frc/robot/logging/DriveTrainShuffleboard.java | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java index 60a988c..e36a16d 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java @@ -5,12 +5,15 @@ import edu.wpi.first.math.geometry.Rotation3d; import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard; import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab; +import edu.wpi.first.wpilibj.util.Color; +import edu.wpi.first.wpilibj2.command.InstantCommand; import frc.robot.commands.driveTrain.MoveByDistance; import frc.robot.subsystems.driveTrain.DriveTrain; import frc.robot.subsystems.driveTrain.DriveTrainComponents; import frc.robot.subsystems.driveTrain.DriveTrainComponentsImpl; import frc.robot.subsystems.driveTrain.features.PoseEstimator; import frc.robot.subsystems.driveTrain.features.SwerveModule; +import frc.robot.led.LED; public class DriveTrainShuffleboard { @@ -37,5 +40,7 @@ public DriveTrainShuffleboard(DriveTrainComponents components) { tab.add("Turning 90 ",new MoveByDistance(new Pose2d(0, 0, Rotation2d.fromDegrees(90)))); + tab.add("change color", new InstantCommand(()-> LED.getInstance().setStrip(Color.kAqua))); + } } \ No newline at end of file diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java index 60a988c..e36a16d 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java @@ -5,12 +5,15 @@ import edu.wpi.first.math.geometry.Rotation3d; import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard; import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab; +import edu.wpi.first.wpilibj.util.Color; +import edu.wpi.first.wpilibj2.command.InstantCommand; import frc.robot.commands.driveTrain.MoveByDistance; import frc.robot.subsystems.driveTrain.DriveTrain; import frc.robot.subsystems.driveTrain.DriveTrainComponents; import frc.robot.subsystems.driveTrain.DriveTrainComponentsImpl; import frc.robot.subsystems.driveTrain.features.PoseEstimator; import frc.robot.subsystems.driveTrain.features.SwerveModule; +import frc.robot.led.LED; public class DriveTrainShuffleboard { @@ -37,5 +40,7 @@ public DriveTrainShuffleboard(DriveTrainComponents components) { tab.add("Turning 90 ",new MoveByDistance(new Pose2d(0, 0, Rotation2d.fromDegrees(90)))); + tab.add("change color", new InstantCommand(()-> LED.getInstance().setStrip(Color.kAqua))); + } } \ No newline at end of file From 070cf3f087e3944b9bb1b786dd1bf6a81ce6c683 Mon Sep 17 00:00:00 2001 From: Eytan123123 Date: Sun, 2 Jul 2023 18:22:26 +0300 Subject: [PATCH 11/32] added description --- .../frc/robot/logging/DriveTrainShuffleBoard.java | 11 +++++++++-- .../frc/robot/logging/DriveTrainShuffleboard.java | 11 +++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java index e36a16d..170cc46 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java @@ -38,9 +38,16 @@ public DriveTrainShuffleboard(DriveTrainComponents components) { tab.addNumber("Robot's angle", () -> PoseEstimator.getInstance().getHeading().getDegrees()); - tab.add("Turning 90 ",new MoveByDistance(new Pose2d(0, 0, Rotation2d.fromDegrees(90)))); +// tab.add("Turning 90 ",new MoveByDistance(new Pose2d(0, 0, Rotation2d.fromDegrees(90)))); +// rotate 90d, (not working) - tab.add("change color", new InstantCommand(()-> LED.getInstance().setStrip(Color.kAqua))); + + tab.add("change color Red", new InstantCommand(()-> LED.getInstance().setStrip(Color.kRed))); + + + + //tab.add("change color Rainbow", new InstantCommand(()-> LED.getInstance().setStrip())); + //change to rainbow (not working) } } \ No newline at end of file diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java index e36a16d..170cc46 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java @@ -38,9 +38,16 @@ public DriveTrainShuffleboard(DriveTrainComponents components) { tab.addNumber("Robot's angle", () -> PoseEstimator.getInstance().getHeading().getDegrees()); - tab.add("Turning 90 ",new MoveByDistance(new Pose2d(0, 0, Rotation2d.fromDegrees(90)))); +// tab.add("Turning 90 ",new MoveByDistance(new Pose2d(0, 0, Rotation2d.fromDegrees(90)))); +// rotate 90d, (not working) - tab.add("change color", new InstantCommand(()-> LED.getInstance().setStrip(Color.kAqua))); + + tab.add("change color Red", new InstantCommand(()-> LED.getInstance().setStrip(Color.kRed))); + + + + //tab.add("change color Rainbow", new InstantCommand(()-> LED.getInstance().setStrip())); + //change to rainbow (not working) } } \ No newline at end of file From 0a8ee75a6c9b0a0dbc9e50ee7fef5dad024dff53 Mon Sep 17 00:00:00 2001 From: negbi2 Date: Tue, 4 Jul 2023 10:27:37 +0300 Subject: [PATCH 12/32] Added a field to know what color the leds currently are --- src/main/java/frc/robot/led/LED.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/led/LED.java b/src/main/java/frc/robot/led/LED.java index 7d5c231..de20d19 100644 --- a/src/main/java/frc/robot/led/LED.java +++ b/src/main/java/frc/robot/led/LED.java @@ -6,19 +6,26 @@ public class LED { + private Color currentColor; + private final LEDComponents components; private LED(LEDComponents components) { this.components = components; } + public Color getCurrentColor() { + return currentColor; + } + private void setOneLed(int ledIndex, Color color) { components.getBuffer().setLED(ledIndex, color); } public void setStrip(Color color) { - for (int ledIndex = 0; ledIndex < STRIP_LENGTH; ledIndex++) + for (int ledIndex = 0; ledIndex < STRIP_LENGTH; ++ledIndex) setOneLed(ledIndex, color); + this.currentColor = color; update(); } From 1b6d0de6c93a280e22489b176126437e790fe3be Mon Sep 17 00:00:00 2001 From: negbi2 Date: Tue, 4 Jul 2023 10:29:32 +0300 Subject: [PATCH 13/32] Added a method to light the colors in a rainbow pattern, \n since rainbow is not a color whenever the leds are set to rainbow current color changes to magenta --- src/main/java/frc/robot/led/LED.java | 15 +++++++++++++++ src/main/java/frc/robot/led/LEDConstants.java | 5 +++++ 2 files changed, 20 insertions(+) diff --git a/src/main/java/frc/robot/led/LED.java b/src/main/java/frc/robot/led/LED.java index de20d19..3e9d962 100644 --- a/src/main/java/frc/robot/led/LED.java +++ b/src/main/java/frc/robot/led/LED.java @@ -34,6 +34,21 @@ public void setStripOff() { setStrip(BLACK); } + public void setGaming(int ledJumps) { + int hue; + int ledOffset = 0; + for (int ledIndex = 0; ledIndex < STRIP_LENGTH; ++ledIndex) { + hue = (ledOffset + (ledIndex * MAX_HUE / STRIP_LENGTH)) % MAX_HUE; + + components.getBuffer().setHSV(ledIndex, hue, RAINBOW_SATURATION, RAINBOW_VALUE); + } + + ledOffset += ledJumps; + ledOffset %= MAX_HUE; + + currentColor = RAINBOW_INDICATOR; + } + public void update() { components.getStrip().setData(components.getBuffer()); } diff --git a/src/main/java/frc/robot/led/LEDConstants.java b/src/main/java/frc/robot/led/LEDConstants.java index d067e75..49207c7 100644 --- a/src/main/java/frc/robot/led/LEDConstants.java +++ b/src/main/java/frc/robot/led/LEDConstants.java @@ -8,4 +8,9 @@ public class LEDConstants { public static final int PORT = 9; public static final Color BLACK = new Color(0, 0, 0); + public static final Color RAINBOW_INDICATOR = new Color(192, 36, 204); + + public static final int RAINBOW_SATURATION = 255; + public static final int RAINBOW_VALUE = 128; + public static final int MAX_HUE = 180; } From cc8ff177ae7b359b4f804aa99bb4b53ccf22ac52 Mon Sep 17 00:00:00 2001 From: negbi2 Date: Tue, 4 Jul 2023 10:35:16 +0300 Subject: [PATCH 14/32] ctrl + alt + L, ctrl + alt + O --- src/main/java/frc/robot/led/LED.java | 11 ++++++++--- src/main/java/frc/robot/led/LEDConstants.java | 5 ++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/frc/robot/led/LED.java b/src/main/java/frc/robot/led/LED.java index 3e9d962..3b82604 100644 --- a/src/main/java/frc/robot/led/LED.java +++ b/src/main/java/frc/robot/led/LED.java @@ -1,6 +1,11 @@ package frc.robot.led; -import static frc.robot.led.LEDConstants.*; +import static frc.robot.led.LEDConstants.BLACK; +import static frc.robot.led.LEDConstants.MAX_HUE; +import static frc.robot.led.LEDConstants.RAINBOW_INDICATOR; +import static frc.robot.led.LEDConstants.RAINBOW_SATURATION; +import static frc.robot.led.LEDConstants.RAINBOW_VALUE; +import static frc.robot.led.LEDConstants.STRIP_LENGTH; import edu.wpi.first.wpilibj.util.Color; @@ -25,8 +30,8 @@ private void setOneLed(int ledIndex, Color color) { public void setStrip(Color color) { for (int ledIndex = 0; ledIndex < STRIP_LENGTH; ++ledIndex) setOneLed(ledIndex, color); - this.currentColor = color; + this.currentColor = color; update(); } @@ -46,7 +51,7 @@ public void setGaming(int ledJumps) { ledOffset += ledJumps; ledOffset %= MAX_HUE; - currentColor = RAINBOW_INDICATOR; + currentColor = RAINBOW_INDICATOR; } public void update() { diff --git a/src/main/java/frc/robot/led/LEDConstants.java b/src/main/java/frc/robot/led/LEDConstants.java index 49207c7..5af6ae7 100644 --- a/src/main/java/frc/robot/led/LEDConstants.java +++ b/src/main/java/frc/robot/led/LEDConstants.java @@ -4,12 +4,11 @@ public class LEDConstants { - public static final int STRIP_LENGTH = 14; - public static final int PORT = 9; - public static final Color BLACK = new Color(0, 0, 0); public static final Color RAINBOW_INDICATOR = new Color(192, 36, 204); + public static final int STRIP_LENGTH = 14; + public static final int PORT = 9; public static final int RAINBOW_SATURATION = 255; public static final int RAINBOW_VALUE = 128; public static final int MAX_HUE = 180; From 74224b96b429c97f30a288192703670e4e0956a4 Mon Sep 17 00:00:00 2001 From: Eytan123123 Date: Tue, 4 Jul 2023 19:11:48 +0300 Subject: [PATCH 15/32] git problem fixed --- src/main/java/frc/robot/Robot.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index 1648c82..01e4484 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -2,6 +2,8 @@ import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj2.command.CommandScheduler; +import frc.robot.led.LED; +import frc.robot.led.LEDComponentsImpl; import frc.robot.robotControl.DeputyOi; import frc.robot.robotControl.DriverOi; import frc.robot.subsystems.driveTrain.DriveTrain; @@ -28,6 +30,7 @@ public class Robot extends TimedRobot { @Override public void robotInit() { DriveTrain.init(new DriveTrainComponentsImpl()); + LED.init(new LEDComponentsImpl()); PoseEstimator.init(); KeepAngleController.init(); driverOi = new DriverOi(); From 6ff72c209eb187343a79b36af204119e39e5f69b Mon Sep 17 00:00:00 2001 From: Eytan123123 Date: Tue, 4 Jul 2023 19:28:13 +0300 Subject: [PATCH 16/32] added all commends, didn't check yes because leds aren't working and rotate 90d doesn't work as well. --- .../java/frc/robot/logging/DriveTrainShuffleBoard.java | 8 +++++--- .../java/frc/robot/logging/DriveTrainShuffleboard.java | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java index 170cc46..0007e62 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java @@ -38,16 +38,18 @@ public DriveTrainShuffleboard(DriveTrainComponents components) { tab.addNumber("Robot's angle", () -> PoseEstimator.getInstance().getHeading().getDegrees()); -// tab.add("Turning 90 ",new MoveByDistance(new Pose2d(0, 0, Rotation2d.fromDegrees(90)))); + tab.add("Turning 90 ",new MoveByDistance(new Pose2d(0, 0, Rotation2d.fromDegrees(90)))); // rotate 90d, (not working) tab.add("change color Red", new InstantCommand(()-> LED.getInstance().setStrip(Color.kRed))); +//change color to red - - //tab.add("change color Rainbow", new InstantCommand(()-> LED.getInstance().setStrip())); + tab.add("change color Rainbow", new InstantCommand(()-> LED.getInstance().setGaming(3))); //change to rainbow (not working) + tab.add("get current color", LED.getInstance().getCurrentColor()); + //get current color } } \ No newline at end of file diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java index 170cc46..0007e62 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java @@ -38,16 +38,18 @@ public DriveTrainShuffleboard(DriveTrainComponents components) { tab.addNumber("Robot's angle", () -> PoseEstimator.getInstance().getHeading().getDegrees()); -// tab.add("Turning 90 ",new MoveByDistance(new Pose2d(0, 0, Rotation2d.fromDegrees(90)))); + tab.add("Turning 90 ",new MoveByDistance(new Pose2d(0, 0, Rotation2d.fromDegrees(90)))); // rotate 90d, (not working) tab.add("change color Red", new InstantCommand(()-> LED.getInstance().setStrip(Color.kRed))); +//change color to red - - //tab.add("change color Rainbow", new InstantCommand(()-> LED.getInstance().setStrip())); + tab.add("change color Rainbow", new InstantCommand(()-> LED.getInstance().setGaming(3))); //change to rainbow (not working) + tab.add("get current color", LED.getInstance().getCurrentColor()); + //get current color } } \ No newline at end of file From 5269504b9c7f20fce5cf6d8507e2cfd2df689276 Mon Sep 17 00:00:00 2001 From: Eytan123123 Date: Tue, 4 Jul 2023 19:42:22 +0300 Subject: [PATCH 17/32] trying getCurent Color --- src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java | 3 +-- src/main/java/frc/robot/logging/DriveTrainShuffleboard.java | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java index 0007e62..65ea58c 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java @@ -29,7 +29,6 @@ public DriveTrainShuffleboard(DriveTrainComponents components) { // tab.addNumber("FR encoderUnits ", () -> swerveModules[1].getAbsEncDeg()); // tab.addNumber("BL encoderUnits ", () -> swerveModules[2].getAbsEncDeg()); // tab.addNumber("BR encoderUnits ", () -> swerveModules[3].getAbsEncDeg()); - //tab.addNumber("encoder units ", () -> swerveModules[0].getAngleOffset()); tab.addNumber("FL CurrentModuleAngle", () -> swerveModules[0].getCurrentAbsoluteDeg()); // tab.addNumber("FR CurrentModuleAngle", () -> swerveModules[1].getCurrentAbsoluteDeg()); @@ -49,7 +48,7 @@ public DriveTrainShuffleboard(DriveTrainComponents components) { tab.add("change color Rainbow", new InstantCommand(()-> LED.getInstance().setGaming(3))); //change to rainbow (not working) - tab.add("get current color", LED.getInstance().getCurrentColor()); + //tab.addString("get current color", () ->LED.getInstance().getCurrentColor().toString()); //get current color } } \ No newline at end of file diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java index 0007e62..65ea58c 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java @@ -29,7 +29,6 @@ public DriveTrainShuffleboard(DriveTrainComponents components) { // tab.addNumber("FR encoderUnits ", () -> swerveModules[1].getAbsEncDeg()); // tab.addNumber("BL encoderUnits ", () -> swerveModules[2].getAbsEncDeg()); // tab.addNumber("BR encoderUnits ", () -> swerveModules[3].getAbsEncDeg()); - //tab.addNumber("encoder units ", () -> swerveModules[0].getAngleOffset()); tab.addNumber("FL CurrentModuleAngle", () -> swerveModules[0].getCurrentAbsoluteDeg()); // tab.addNumber("FR CurrentModuleAngle", () -> swerveModules[1].getCurrentAbsoluteDeg()); @@ -49,7 +48,7 @@ public DriveTrainShuffleboard(DriveTrainComponents components) { tab.add("change color Rainbow", new InstantCommand(()-> LED.getInstance().setGaming(3))); //change to rainbow (not working) - tab.add("get current color", LED.getInstance().getCurrentColor()); + //tab.addString("get current color", () ->LED.getInstance().getCurrentColor().toString()); //get current color } } \ No newline at end of file From 84a9d59afdd69e9cf9d72d3e9c706264f25af428 Mon Sep 17 00:00:00 2001 From: Eytan123123 Date: Tue, 4 Jul 2023 19:59:06 +0300 Subject: [PATCH 18/32] fixing double B files --- .../java/frc/robot/logging/DriveTrainShuffleBoard.java | 8 ++------ .../java/frc/robot/logging/DriveTrainShuffleboard.java | 8 ++------ .../java/frc/robot/subsystems/driveTrain/DriveTrain.java | 4 ++-- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java index 65ea58c..ee76030 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java @@ -2,7 +2,6 @@ import edu.wpi.first.math.geometry.Pose2d; import edu.wpi.first.math.geometry.Rotation2d; -import edu.wpi.first.math.geometry.Rotation3d; import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard; import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab; import edu.wpi.first.wpilibj.util.Color; @@ -10,17 +9,16 @@ import frc.robot.commands.driveTrain.MoveByDistance; import frc.robot.subsystems.driveTrain.DriveTrain; import frc.robot.subsystems.driveTrain.DriveTrainComponents; -import frc.robot.subsystems.driveTrain.DriveTrainComponentsImpl; import frc.robot.subsystems.driveTrain.features.PoseEstimator; import frc.robot.subsystems.driveTrain.features.SwerveModule; import frc.robot.led.LED; -public class DriveTrainShuffleboard { +public class DriveTrainShuffleBoard { private DriveTrain driveTrain; private ShuffleboardTab tab; - public DriveTrainShuffleboard(DriveTrainComponents components) { + public DriveTrainShuffleBoard(DriveTrainComponents components) { driveTrain = DriveTrain.getInstance(); SwerveModule[] swerveModules = components.getSwerveModules(); @@ -43,8 +41,6 @@ public DriveTrainShuffleboard(DriveTrainComponents components) { tab.add("change color Red", new InstantCommand(()-> LED.getInstance().setStrip(Color.kRed))); //change color to red - - tab.add("change color Rainbow", new InstantCommand(()-> LED.getInstance().setGaming(3))); //change to rainbow (not working) diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java index 65ea58c..ee76030 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java @@ -2,7 +2,6 @@ import edu.wpi.first.math.geometry.Pose2d; import edu.wpi.first.math.geometry.Rotation2d; -import edu.wpi.first.math.geometry.Rotation3d; import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard; import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab; import edu.wpi.first.wpilibj.util.Color; @@ -10,17 +9,16 @@ import frc.robot.commands.driveTrain.MoveByDistance; import frc.robot.subsystems.driveTrain.DriveTrain; import frc.robot.subsystems.driveTrain.DriveTrainComponents; -import frc.robot.subsystems.driveTrain.DriveTrainComponentsImpl; import frc.robot.subsystems.driveTrain.features.PoseEstimator; import frc.robot.subsystems.driveTrain.features.SwerveModule; import frc.robot.led.LED; -public class DriveTrainShuffleboard { +public class DriveTrainShuffleBoard { private DriveTrain driveTrain; private ShuffleboardTab tab; - public DriveTrainShuffleboard(DriveTrainComponents components) { + public DriveTrainShuffleBoard(DriveTrainComponents components) { driveTrain = DriveTrain.getInstance(); SwerveModule[] swerveModules = components.getSwerveModules(); @@ -43,8 +41,6 @@ public DriveTrainShuffleboard(DriveTrainComponents components) { tab.add("change color Red", new InstantCommand(()-> LED.getInstance().setStrip(Color.kRed))); //change color to red - - tab.add("change color Rainbow", new InstantCommand(()-> LED.getInstance().setGaming(3))); //change to rainbow (not working) diff --git a/src/main/java/frc/robot/subsystems/driveTrain/DriveTrain.java b/src/main/java/frc/robot/subsystems/driveTrain/DriveTrain.java index 1540fef..465bafa 100644 --- a/src/main/java/frc/robot/subsystems/driveTrain/DriveTrain.java +++ b/src/main/java/frc/robot/subsystems/driveTrain/DriveTrain.java @@ -7,7 +7,7 @@ import frc.robot.subsystems.driveTrain.features.KeepAngleController; import frc.robot.subsystems.driveTrain.features.PoseEstimator; import frc.robot.subsystems.driveTrain.features.SwerveModule; -import frc.robot.logging.DriveTrainShuffleboard; +import frc.robot.logging.DriveTrainShuffleBoard; import static frc.robot.subsystems.driveTrain.DriveTrainConstants.*; public class DriveTrain extends SubsystemBase { @@ -113,7 +113,7 @@ public static void init(DriveTrainComponents components) { if (instance == null) { instance = new DriveTrain(components); } - new DriveTrainShuffleboard(components); + new DriveTrainShuffleBoard(components); } public static DriveTrain getInstance() { From d2b37e76d9b9c82915f110dad0dcee12c55110e3 Mon Sep 17 00:00:00 2001 From: Eytan123123 Date: Tue, 4 Jul 2023 21:14:58 +0300 Subject: [PATCH 19/32] change color and rainbow, working! get current NOT --- src/main/java/frc/robot/led/LED.java | 1 + src/main/java/frc/robot/led/LEDComponentsImpl.java | 3 +++ src/main/java/frc/robot/led/LEDConstants.java | 2 +- .../java/frc/robot/logging/DriveTrainShuffleBoard.java | 7 ++++--- .../java/frc/robot/logging/DriveTrainShuffleboard.java | 7 ++++--- src/main/java/frc/robot/robotControl/DriverOi.java | 9 +++++++-- 6 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/main/java/frc/robot/led/LED.java b/src/main/java/frc/robot/led/LED.java index 3b82604..e760e1d 100644 --- a/src/main/java/frc/robot/led/LED.java +++ b/src/main/java/frc/robot/led/LED.java @@ -51,6 +51,7 @@ public void setGaming(int ledJumps) { ledOffset += ledJumps; ledOffset %= MAX_HUE; + update(); currentColor = RAINBOW_INDICATOR; } diff --git a/src/main/java/frc/robot/led/LEDComponentsImpl.java b/src/main/java/frc/robot/led/LEDComponentsImpl.java index a0f8430..c168235 100644 --- a/src/main/java/frc/robot/led/LEDComponentsImpl.java +++ b/src/main/java/frc/robot/led/LEDComponentsImpl.java @@ -14,6 +14,9 @@ public class LEDComponentsImpl implements LEDComponents { public LEDComponentsImpl() { Strip = new AddressableLED(PORT); Buffer = new AddressableLEDBuffer(STRIP_LENGTH); + + Strip.setLength(Buffer.getLength()); + Strip.start(); } @Override diff --git a/src/main/java/frc/robot/led/LEDConstants.java b/src/main/java/frc/robot/led/LEDConstants.java index 5af6ae7..b801762 100644 --- a/src/main/java/frc/robot/led/LEDConstants.java +++ b/src/main/java/frc/robot/led/LEDConstants.java @@ -7,7 +7,7 @@ public class LEDConstants { public static final Color BLACK = new Color(0, 0, 0); public static final Color RAINBOW_INDICATOR = new Color(192, 36, 204); - public static final int STRIP_LENGTH = 14; + public static final int STRIP_LENGTH = 144; public static final int PORT = 9; public static final int RAINBOW_SATURATION = 255; public static final int RAINBOW_VALUE = 128; diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java index ee76030..62a0904 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java @@ -39,12 +39,13 @@ public DriveTrainShuffleBoard(DriveTrainComponents components) { // rotate 90d, (not working) - tab.add("change color Red", new InstantCommand(()-> LED.getInstance().setStrip(Color.kRed))); + tab.add("change color Red", new InstantCommand(()-> LED.getInstance().setStrip(new Color(0, 0, 0)))); //change color to red tab.add("change color Rainbow", new InstantCommand(()-> LED.getInstance().setGaming(3))); //change to rainbow (not working) - //tab.addString("get current color", () ->LED.getInstance().getCurrentColor().toString()); - //get current color + tab.addString("get current color", ()-> LED.getInstance().getCurrentColor().toString()); + + // Get current color } } \ No newline at end of file diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java index ee76030..62a0904 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java @@ -39,12 +39,13 @@ public DriveTrainShuffleBoard(DriveTrainComponents components) { // rotate 90d, (not working) - tab.add("change color Red", new InstantCommand(()-> LED.getInstance().setStrip(Color.kRed))); + tab.add("change color Red", new InstantCommand(()-> LED.getInstance().setStrip(new Color(0, 0, 0)))); //change color to red tab.add("change color Rainbow", new InstantCommand(()-> LED.getInstance().setGaming(3))); //change to rainbow (not working) - //tab.addString("get current color", () ->LED.getInstance().getCurrentColor().toString()); - //get current color + tab.addString("get current color", ()-> LED.getInstance().getCurrentColor().toString()); + + // Get current color } } \ No newline at end of file diff --git a/src/main/java/frc/robot/robotControl/DriverOi.java b/src/main/java/frc/robot/robotControl/DriverOi.java index b663b3a..5430300 100644 --- a/src/main/java/frc/robot/robotControl/DriverOi.java +++ b/src/main/java/frc/robot/robotControl/DriverOi.java @@ -6,10 +6,13 @@ import commandControl.CommandPlaystation5Controller; import edu.wpi.first.math.geometry.Pose2d; import edu.wpi.first.math.geometry.Rotation2d; +import edu.wpi.first.wpilibj.util.Color; +import edu.wpi.first.wpilibj2.command.InstantCommand; import edu.wpi.first.wpilibj2.command.button.Trigger; import frc.robot.commands.driveTrain.MoveByDistance; import frc.robot.commands.driveTrain.ResetPose; import frc.robot.commands.driveTrain.SwerveDrive; +import frc.robot.led.LED; import frc.robot.subsystems.driveTrain.DriveTrain; @@ -20,11 +23,13 @@ public class DriverOi { private final CommandConsoleController controller; private DriveTrain driveTrain = DriveTrain.getInstance(); + //private LED led = new LED.g public DriverOi() { controller = new CommandPlaystation5Controller(DRIVE_JOYSTICK_PORT); Trigger resetPose = controller.centerLeft(); - Trigger moveByDistance = controller.rightTrigger(); + //Trigger moveByDistance = controller.rightTrigger(); + Trigger changeColor = controller.rightTrigger(); CommandJoystickAxis xAxis = controller.leftYAxis(); CommandJoystickAxis yAxis = controller.leftXAxis(); @@ -37,6 +42,6 @@ public DriverOi() { () -> true )); resetPose.onTrue(new ResetPose()); - moveByDistance.whileTrue(new MoveByDistance(new Pose2d(0, 0, Rotation2d.fromDegrees(90)))); + changeColor.onTrue(new InstantCommand(()-> LED.getInstance().setStrip(new Color(87, 10, 123)))); } } From 9fe1341143a900ae973910465dd06a2d50bbf9c4 Mon Sep 17 00:00:00 2001 From: negbi2 Date: Thu, 6 Jul 2023 13:24:08 +0300 Subject: [PATCH 20/32] fixed rainbow --- src/main/java/frc/robot/led/LED.java | 6 ++++-- src/main/java/frc/robot/led/LEDComponentsImpl.java | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/frc/robot/led/LED.java b/src/main/java/frc/robot/led/LED.java index 3b82604..5e3bfeb 100644 --- a/src/main/java/frc/robot/led/LED.java +++ b/src/main/java/frc/robot/led/LED.java @@ -32,7 +32,7 @@ public void setStrip(Color color) { setOneLed(ledIndex, color); this.currentColor = color; - update(); + Update(); } public void setStripOff() { @@ -52,9 +52,11 @@ public void setGaming(int ledJumps) { ledOffset %= MAX_HUE; currentColor = RAINBOW_INDICATOR; + + Update(); } - public void update() { + public void Update() { components.getStrip().setData(components.getBuffer()); } diff --git a/src/main/java/frc/robot/led/LEDComponentsImpl.java b/src/main/java/frc/robot/led/LEDComponentsImpl.java index a0f8430..d80cdb8 100644 --- a/src/main/java/frc/robot/led/LEDComponentsImpl.java +++ b/src/main/java/frc/robot/led/LEDComponentsImpl.java @@ -14,6 +14,11 @@ public class LEDComponentsImpl implements LEDComponents { public LEDComponentsImpl() { Strip = new AddressableLED(PORT); Buffer = new AddressableLEDBuffer(STRIP_LENGTH); + + Strip.setLength(STRIP_LENGTH); + + Strip.setData(Buffer); + Strip.start(); } @Override From f0a0462fcc20cde21cec01b60982f276c1a23a2f Mon Sep 17 00:00:00 2001 From: negbi2 Date: Thu, 6 Jul 2023 13:38:58 +0300 Subject: [PATCH 21/32] made a command to light the leds in a rainbow pattern --- .../java/frc/robot/commands/led/Gaming.java | 26 +++++++++++++++++++ src/main/java/frc/robot/led/LED.java | 3 ++- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 src/main/java/frc/robot/commands/led/Gaming.java diff --git a/src/main/java/frc/robot/commands/led/Gaming.java b/src/main/java/frc/robot/commands/led/Gaming.java new file mode 100644 index 0000000..e71f34c --- /dev/null +++ b/src/main/java/frc/robot/commands/led/Gaming.java @@ -0,0 +1,26 @@ +package frc.robot.commands.led; + +import edu.wpi.first.wpilibj2.command.CommandBase; +import frc.robot.led.LED; + +public class Gaming extends CommandBase { + + private LED led; + private int jumps; + + public Gaming(int jumps) { + this.led = LED.getInstance(); + this.jumps = jumps; + addRequirements(led); + } + + @Override + public void execute() { + led.setGaming(jumps); + } + + @Override + public void end(boolean interrupted) { + led.setStripOff(); + } +} diff --git a/src/main/java/frc/robot/led/LED.java b/src/main/java/frc/robot/led/LED.java index 5e3bfeb..4fa9762 100644 --- a/src/main/java/frc/robot/led/LED.java +++ b/src/main/java/frc/robot/led/LED.java @@ -8,8 +8,9 @@ import static frc.robot.led.LEDConstants.STRIP_LENGTH; import edu.wpi.first.wpilibj.util.Color; +import edu.wpi.first.wpilibj2.command.SubsystemBase; -public class LED { +public class LED extends SubsystemBase { private Color currentColor; From 4e7fe77382c55eb34416da285090c6c54fd58b3f Mon Sep 17 00:00:00 2001 From: negbi2 Date: Thu, 6 Jul 2023 13:52:46 +0300 Subject: [PATCH 22/32] fixed get current color --- src/main/java/frc/robot/led/LED.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/frc/robot/led/LED.java b/src/main/java/frc/robot/led/LED.java index 4fa9762..7bef71b 100644 --- a/src/main/java/frc/robot/led/LED.java +++ b/src/main/java/frc/robot/led/LED.java @@ -20,8 +20,12 @@ private LED(LEDComponents components) { this.components = components; } - public Color getCurrentColor() { - return currentColor; + public String getCurrentColor() { + if (currentColor == null) + return "no color"; + return "red: " + currentColor.red + + " green: " + currentColor.green + + " blue" + currentColor.blue; } private void setOneLed(int ledIndex, Color color) { From 422f384c4e44da35e6db59b66010551c5b7c6dd4 Mon Sep 17 00:00:00 2001 From: Eytan123123 Date: Sat, 8 Jul 2023 20:17:12 +0300 Subject: [PATCH 23/32] fixing GetCurrentColor --- src/main/java/frc/robot/led/LED.java | 1 - .../robot/logging/DriveTrainShuffleBoard.java | 3 +- .../robot/logging/DriveTrainShuffleboard.java | 51 ------------------- 3 files changed, 1 insertion(+), 54 deletions(-) delete mode 100644 src/main/java/frc/robot/logging/DriveTrainShuffleboard.java diff --git a/src/main/java/frc/robot/led/LED.java b/src/main/java/frc/robot/led/LED.java index fd480b3..7bef71b 100644 --- a/src/main/java/frc/robot/led/LED.java +++ b/src/main/java/frc/robot/led/LED.java @@ -56,7 +56,6 @@ public void setGaming(int ledJumps) { ledOffset += ledJumps; ledOffset %= MAX_HUE; - update(); currentColor = RAINBOW_INDICATOR; Update(); diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java index 62a0904..2ef8bc4 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java @@ -44,8 +44,7 @@ public DriveTrainShuffleBoard(DriveTrainComponents components) { tab.add("change color Rainbow", new InstantCommand(()-> LED.getInstance().setGaming(3))); //change to rainbow (not working) - tab.addString("get current color", ()-> LED.getInstance().getCurrentColor().toString()); - + tab.addString("get current color", ()-> LED.getInstance().getCurrentColor()); // Get current color } } \ No newline at end of file diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java deleted file mode 100644 index 62a0904..0000000 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleboard.java +++ /dev/null @@ -1,51 +0,0 @@ -package frc.robot.logging; - -import edu.wpi.first.math.geometry.Pose2d; -import edu.wpi.first.math.geometry.Rotation2d; -import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard; -import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab; -import edu.wpi.first.wpilibj.util.Color; -import edu.wpi.first.wpilibj2.command.InstantCommand; -import frc.robot.commands.driveTrain.MoveByDistance; -import frc.robot.subsystems.driveTrain.DriveTrain; -import frc.robot.subsystems.driveTrain.DriveTrainComponents; -import frc.robot.subsystems.driveTrain.features.PoseEstimator; -import frc.robot.subsystems.driveTrain.features.SwerveModule; -import frc.robot.led.LED; - -public class DriveTrainShuffleBoard { - - private DriveTrain driveTrain; - private ShuffleboardTab tab; - - public DriveTrainShuffleBoard(DriveTrainComponents components) { - driveTrain = DriveTrain.getInstance(); - SwerveModule[] swerveModules = components.getSwerveModules(); - - tab = Shuffleboard.getTab("DriveTrain"); - tab.addNumber("FL encoderUnits ", () -> swerveModules[0].getAbsEncDeg()); -// tab.addNumber("FR encoderUnits ", () -> swerveModules[1].getAbsEncDeg()); -// tab.addNumber("BL encoderUnits ", () -> swerveModules[2].getAbsEncDeg()); -// tab.addNumber("BR encoderUnits ", () -> swerveModules[3].getAbsEncDeg()); - - tab.addNumber("FL CurrentModuleAngle", () -> swerveModules[0].getCurrentAbsoluteDeg()); -// tab.addNumber("FR CurrentModuleAngle", () -> swerveModules[1].getCurrentAbsoluteDeg()); -// tab.addNumber("BL CurrentModuleAngle", () -> swerveModules[2].getCurrentAbsoluteDeg()); -// tab.addNumber("BR CurrentModuleAngle", () -> swerveModules[3].getCurrentAbsoluteDeg()); - - tab.addNumber("Robot's angle", () -> PoseEstimator.getInstance().getHeading().getDegrees()); - - tab.add("Turning 90 ",new MoveByDistance(new Pose2d(0, 0, Rotation2d.fromDegrees(90)))); -// rotate 90d, (not working) - - - tab.add("change color Red", new InstantCommand(()-> LED.getInstance().setStrip(new Color(0, 0, 0)))); -//change color to red - tab.add("change color Rainbow", new InstantCommand(()-> LED.getInstance().setGaming(3))); - //change to rainbow (not working) - - tab.addString("get current color", ()-> LED.getInstance().getCurrentColor().toString()); - - // Get current color - } -} \ No newline at end of file From b4f8f22c116ab4930edbce4e33fe2c8346de8dbd Mon Sep 17 00:00:00 2001 From: Eytan123123 Date: Sat, 8 Jul 2023 20:18:52 +0300 Subject: [PATCH 24/32] Done, truning 90 not working (have told its optional) --- src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java index 2ef8bc4..fe2ae9a 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java @@ -35,7 +35,7 @@ public DriveTrainShuffleBoard(DriveTrainComponents components) { tab.addNumber("Robot's angle", () -> PoseEstimator.getInstance().getHeading().getDegrees()); - tab.add("Turning 90 ",new MoveByDistance(new Pose2d(0, 0, Rotation2d.fromDegrees(90)))); + //tab.add("Turning 90 ",new MoveByDistance(new Pose2d(0, 0, Rotation2d.fromDegrees(90)))); // rotate 90d, (not working) From c439d932c3a803340509d766da265a0bd2c29630 Mon Sep 17 00:00:00 2001 From: Eytan123123 Date: Sat, 8 Jul 2023 21:16:24 +0300 Subject: [PATCH 25/32] added ColorNull --- src/main/java/frc/robot/led/LED.java | 1 + src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/led/LED.java b/src/main/java/frc/robot/led/LED.java index 7bef71b..d38f49f 100644 --- a/src/main/java/frc/robot/led/LED.java +++ b/src/main/java/frc/robot/led/LED.java @@ -8,6 +8,7 @@ import static frc.robot.led.LEDConstants.STRIP_LENGTH; import edu.wpi.first.wpilibj.util.Color; +import edu.wpi.first.wpilibj2.command.PrintCommand; import edu.wpi.first.wpilibj2.command.SubsystemBase; public class LED extends SubsystemBase { diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java index fe2ae9a..337d665 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java @@ -6,6 +6,7 @@ import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab; import edu.wpi.first.wpilibj.util.Color; import edu.wpi.first.wpilibj2.command.InstantCommand; +import edu.wpi.first.wpilibj2.command.PrintCommand; import frc.robot.commands.driveTrain.MoveByDistance; import frc.robot.subsystems.driveTrain.DriveTrain; import frc.robot.subsystems.driveTrain.DriveTrainComponents; @@ -39,12 +40,14 @@ public DriveTrainShuffleBoard(DriveTrainComponents components) { // rotate 90d, (not working) - tab.add("change color Red", new InstantCommand(()-> LED.getInstance().setStrip(new Color(0, 0, 0)))); + tab.add("change color Red", new InstantCommand(()-> LED.getInstance().setStrip(new Color(255, 0, 0)))); //change color to red tab.add("change color Rainbow", new InstantCommand(()-> LED.getInstance().setGaming(3))); //change to rainbow (not working) tab.addString("get current color", ()-> LED.getInstance().getCurrentColor()); // Get current color + + tab.add("change color null", new InstantCommand(()-> LED.getInstance().setStrip(new Color(0, 0, 0)))); } } \ No newline at end of file From 077c92e295110d8bd3d68a901acf1311c9fcacdf Mon Sep 17 00:00:00 2001 From: negbi Date: Sat, 8 Jul 2023 21:32:53 +0300 Subject: [PATCH 26/32] Allegedly fixed the problem --- src/main/java/frc/robot/led/LED.java | 33 ++++++++++--------- src/main/java/frc/robot/led/LEDConstants.java | 6 ++-- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/main/java/frc/robot/led/LED.java b/src/main/java/frc/robot/led/LED.java index d38f49f..e67da4c 100644 --- a/src/main/java/frc/robot/led/LED.java +++ b/src/main/java/frc/robot/led/LED.java @@ -7,13 +7,13 @@ import static frc.robot.led.LEDConstants.RAINBOW_VALUE; import static frc.robot.led.LEDConstants.STRIP_LENGTH; -import edu.wpi.first.wpilibj.util.Color; -import edu.wpi.first.wpilibj2.command.PrintCommand; import edu.wpi.first.wpilibj2.command.SubsystemBase; public class LED extends SubsystemBase { - private Color currentColor; + private int red; + private int green; + private int blue; private final LEDComponents components; @@ -22,27 +22,28 @@ private LED(LEDComponents components) { } public String getCurrentColor() { - if (currentColor == null) - return "no color"; - return "red: " + currentColor.red + - " green: " + currentColor.green + - " blue" + currentColor.blue; + return "Red: " + red + + " Green: " + green + + " Blue: " + blue; } - private void setOneLed(int ledIndex, Color color) { - components.getBuffer().setLED(ledIndex, color); + private void setOneLed(int ledIndex, int red, int green, int blue) { + components.getBuffer().setRGB(ledIndex, red, green, blue); } - public void setStrip(Color color) { + public void setStrip(int red, int green, int blue) { for (int ledIndex = 0; ledIndex < STRIP_LENGTH; ++ledIndex) - setOneLed(ledIndex, color); + setOneLed(ledIndex, red, green, blue); + + this.red = red; + this.blue = blue; + this.green = green; - this.currentColor = color; Update(); } public void setStripOff() { - setStrip(BLACK); + setStrip(BLACK.getRed(), BLACK.getGreen(), BLACK.getBlue()); } public void setGaming(int ledJumps) { @@ -57,7 +58,9 @@ public void setGaming(int ledJumps) { ledOffset += ledJumps; ledOffset %= MAX_HUE; - currentColor = RAINBOW_INDICATOR; + this.red = RAINBOW_INDICATOR.getRed(); + this.green = RAINBOW_INDICATOR.getGreen(); + this.blue = RAINBOW_INDICATOR.getBlue(); Update(); } diff --git a/src/main/java/frc/robot/led/LEDConstants.java b/src/main/java/frc/robot/led/LEDConstants.java index b801762..8992e2e 100644 --- a/src/main/java/frc/robot/led/LEDConstants.java +++ b/src/main/java/frc/robot/led/LEDConstants.java @@ -1,11 +1,11 @@ package frc.robot.led; -import edu.wpi.first.wpilibj.util.Color; +import java.awt.Color; public class LEDConstants { - public static final Color BLACK = new Color(0, 0, 0); - public static final Color RAINBOW_INDICATOR = new Color(192, 36, 204); + public static Color BLACK = new Color(0, 0, 0); + public static Color RAINBOW_INDICATOR = new Color(210, 52, 235); public static final int STRIP_LENGTH = 144; public static final int PORT = 9; From 9526f423223aecb728a733d7ff1ecb34fc5a2ae8 Mon Sep 17 00:00:00 2001 From: Eytan123123 Date: Sat, 8 Jul 2023 21:43:25 +0300 Subject: [PATCH 27/32] getCurrentColor Working - Done --- src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java | 4 ++-- src/main/java/frc/robot/robotControl/DriverOi.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java index 337d665..ce747d1 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java @@ -40,7 +40,7 @@ public DriveTrainShuffleBoard(DriveTrainComponents components) { // rotate 90d, (not working) - tab.add("change color Red", new InstantCommand(()-> LED.getInstance().setStrip(new Color(255, 0, 0)))); + tab.add("change color Red", new InstantCommand(()-> LED.getInstance().setStrip(255, 0, 0))); //change color to red tab.add("change color Rainbow", new InstantCommand(()-> LED.getInstance().setGaming(3))); //change to rainbow (not working) @@ -48,6 +48,6 @@ public DriveTrainShuffleBoard(DriveTrainComponents components) { tab.addString("get current color", ()-> LED.getInstance().getCurrentColor()); // Get current color - tab.add("change color null", new InstantCommand(()-> LED.getInstance().setStrip(new Color(0, 0, 0)))); + tab.add("change color null", new InstantCommand(()-> LED.getInstance().setStrip(0, 0, 0))); } } \ No newline at end of file diff --git a/src/main/java/frc/robot/robotControl/DriverOi.java b/src/main/java/frc/robot/robotControl/DriverOi.java index 5430300..042bda0 100644 --- a/src/main/java/frc/robot/robotControl/DriverOi.java +++ b/src/main/java/frc/robot/robotControl/DriverOi.java @@ -42,6 +42,6 @@ public DriverOi() { () -> true )); resetPose.onTrue(new ResetPose()); - changeColor.onTrue(new InstantCommand(()-> LED.getInstance().setStrip(new Color(87, 10, 123)))); + changeColor.onTrue(new InstantCommand(()-> LED.getInstance().setStrip(87, 10, 123))); } } From b3addf34819817000e17fc82a58c765df021b31a Mon Sep 17 00:00:00 2001 From: yoav <119526503+Gooshon@users.noreply.github.com> Date: Thu, 13 Jul 2023 22:01:11 +0300 Subject: [PATCH 28/32] limit switch --- src/main/java/frc/robot/Robot.java | 4 ++++ src/main/java/frc/robot/commands/Test.java | 22 +++++++++++++++++++ .../driveTrain/features/SwerveModule.java | 2 +- 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 src/main/java/frc/robot/commands/Test.java diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index 01e4484..6b76af3 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -2,6 +2,7 @@ import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj2.command.CommandScheduler; +import frc.robot.commands.Test; import frc.robot.led.LED; import frc.robot.led.LEDComponentsImpl; import frc.robot.robotControl.DeputyOi; @@ -12,6 +13,7 @@ import frc.robot.subsystems.driveTrain.features.KeepAngleController; import frc.robot.subsystems.driveTrain.features.PoseEstimator; import frc.robot.subsystems.driveTrain.features.SwerveModule; +import sensors.Switch.Switch; /** * The VM is configured to automatically run this class, and to call the functions corresponding to @@ -23,6 +25,7 @@ public class Robot extends TimedRobot { private DriverOi driverOi; private DeputyOi deputyOi; + /** * This function is run when the robot is first started up and should be used for any * initialization code. @@ -80,6 +83,7 @@ public void autonomousPeriodic() { @Override public void teleopInit() { + CommandScheduler.getInstance().schedule(new Test()); } /** diff --git a/src/main/java/frc/robot/commands/Test.java b/src/main/java/frc/robot/commands/Test.java new file mode 100644 index 0000000..34f2c9c --- /dev/null +++ b/src/main/java/frc/robot/commands/Test.java @@ -0,0 +1,22 @@ +package frc.robot.commands; + +import edu.wpi.first.wpilibj.DigitalInput; +import edu.wpi.first.wpilibj2.command.CommandBase; +import frc.robot.led.LED; + +public class Test extends CommandBase { + private DigitalInput toplimitSwitch; + + public Test() { + toplimitSwitch = new DigitalInput(9); + } + + @Override + public void execute() { + if(! toplimitSwitch.get()){ + LED.getInstance().setStrip(0,255,0); + }else { + LED.getInstance().setStrip(255,0,0); + } + } +} diff --git a/src/main/java/frc/robot/subsystems/driveTrain/features/SwerveModule.java b/src/main/java/frc/robot/subsystems/driveTrain/features/SwerveModule.java index ebc117e..dc3cf02 100644 --- a/src/main/java/frc/robot/subsystems/driveTrain/features/SwerveModule.java +++ b/src/main/java/frc/robot/subsystems/driveTrain/features/SwerveModule.java @@ -85,7 +85,7 @@ public void updateSwerveModule(SwerveModuleState targetModuleState) { turningController.update(degreesToEnc(targetModuleState.angle.getDegrees())); double angleError = Math.toRadians(encToDegrees(turningController.getCurrentError())); - System.out.println(targetModuleState.speedMetersPerSecond * Math.cos(angleError)); + //System.out.println(targetModuleState.speedMetersPerSecond * Math.cos(angleError)); driveController.update(mpsToEpd(targetModuleState.speedMetersPerSecond * Math.cos(angleError))); } From f3452221e8243b90032498ee9bfc6fc7059e3094 Mon Sep 17 00:00:00 2001 From: killery2201 Date: Fri, 14 Jul 2023 15:57:35 +0300 Subject: [PATCH 29/32] limit switch check on disable --- src/main/java/frc/robot/Robot.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index 6b76af3..d1ea4ff 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -1,5 +1,6 @@ package frc.robot; +import edu.wpi.first.wpilibj.DigitalInput; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj2.command.CommandScheduler; import frc.robot.commands.Test; @@ -24,6 +25,8 @@ public class Robot extends TimedRobot { private DriverOi driverOi; private DeputyOi deputyOi; + private DigitalInput toplimitSwitch; + /** @@ -38,6 +41,7 @@ public void robotInit() { KeepAngleController.init(); driverOi = new DriverOi(); deputyOi = new DeputyOi(); + toplimitSwitch = new DigitalInput(9); } /** @@ -65,6 +69,11 @@ public void disabledInit() { @Override public void disabledPeriodic() { + if(! toplimitSwitch.get()){ + LED.getInstance().setStrip(0,255,0); + }else { + LED.getInstance().setStrip(255,0,0); + } } /** @@ -83,7 +92,6 @@ public void autonomousPeriodic() { @Override public void teleopInit() { - CommandScheduler.getInstance().schedule(new Test()); } /** From 8a65f1f8d2434403d0f7974d631d8ca7dee9bbc9 Mon Sep 17 00:00:00 2001 From: Eytan123123 Date: Mon, 17 Jul 2023 18:44:19 +0300 Subject: [PATCH 30/32] created blink --- src/main/java/frc/robot/commands/led/Blink.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/main/java/frc/robot/commands/led/Blink.java diff --git a/src/main/java/frc/robot/commands/led/Blink.java b/src/main/java/frc/robot/commands/led/Blink.java new file mode 100644 index 0000000..c0f493e --- /dev/null +++ b/src/main/java/frc/robot/commands/led/Blink.java @@ -0,0 +1,4 @@ +package frc.robot.commands.led; + +public class Blink { +} From 7a9ba9b9481e5f41418279e74055d5c6df8b51a9 Mon Sep 17 00:00:00 2001 From: Eytan123123 Date: Mon, 17 Jul 2023 19:29:10 +0300 Subject: [PATCH 31/32] Blink ~ hasn't been tested --- .../java/frc/robot/commands/led/Blink.java | 36 ++++++++++++++++++- .../robot/logging/DriveTrainShuffleBoard.java | 10 ++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/commands/led/Blink.java b/src/main/java/frc/robot/commands/led/Blink.java index c0f493e..82cce80 100644 --- a/src/main/java/frc/robot/commands/led/Blink.java +++ b/src/main/java/frc/robot/commands/led/Blink.java @@ -1,4 +1,38 @@ package frc.robot.commands.led; -public class Blink { +import edu.wpi.first.wpilibj2.command.InstantCommand; +import edu.wpi.first.wpilibj2.command.SequentialCommandGroup; +import edu.wpi.first.wpilibj2.command.WaitCommand; +import frc.robot.led.LED; + +import static frc.robot.led.LEDConstants.BLACK; + +public class Blink extends SequentialCommandGroup { + private int ranTimes = 0; + + public Blink(int red, int green, int blue, double blinkDelays, int timesToBlink) { + addCommands + ( + new SequentialCommandGroup( + new BlinkOnce(red, green, blue, blinkDelays), + new InstantCommand(() -> ranTimes++) + ).repeatedly().until(() -> ranTimes == timesToBlink) + ); + } + + private class BlinkOnce extends SequentialCommandGroup { + + private LED led; + + public BlinkOnce(int red, int green, int blue, double blinkDelays) { + led = LED.getInstance(); + addRequirements(led); + addCommands( + new InstantCommand(() -> led.setStrip(red, green, blue)), + new WaitCommand(blinkDelays), + new InstantCommand(() -> led.setStrip(BLACK.getRed(), BLACK.getGreen(), BLACK.getBlue())), + new WaitCommand(blinkDelays) + ); + } + } } diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java index ce747d1..5a6c14a 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java @@ -8,17 +8,24 @@ import edu.wpi.first.wpilibj2.command.InstantCommand; import edu.wpi.first.wpilibj2.command.PrintCommand; import frc.robot.commands.driveTrain.MoveByDistance; +import frc.robot.commands.led.Blink; import frc.robot.subsystems.driveTrain.DriveTrain; import frc.robot.subsystems.driveTrain.DriveTrainComponents; import frc.robot.subsystems.driveTrain.features.PoseEstimator; import frc.robot.subsystems.driveTrain.features.SwerveModule; import frc.robot.led.LED; +import java.util.function.DoubleSupplier; +import java.util.function.IntSupplier; +import java.util.function.LongSupplier; + public class DriveTrainShuffleBoard { private DriveTrain driveTrain; private ShuffleboardTab tab; + private int red; + public DriveTrainShuffleBoard(DriveTrainComponents components) { driveTrain = DriveTrain.getInstance(); SwerveModule[] swerveModules = components.getSwerveModules(); @@ -49,5 +56,8 @@ public DriveTrainShuffleBoard(DriveTrainComponents components) { // Get current color tab.add("change color null", new InstantCommand(()-> LED.getInstance().setStrip(0, 0, 0))); + + + tab.add("change color Blink", new InstantCommand(()-> new Blink(183,30,190,1.5,5))); } } \ No newline at end of file From 4f5d3be80c3980a2afec22cce29c4c5bb0857551 Mon Sep 17 00:00:00 2001 From: Eytan123123 Date: Mon, 17 Jul 2023 19:45:03 +0300 Subject: [PATCH 32/32] added Gaming --- src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java index 5a6c14a..3918c96 100644 --- a/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java +++ b/src/main/java/frc/robot/logging/DriveTrainShuffleBoard.java @@ -9,6 +9,7 @@ import edu.wpi.first.wpilibj2.command.PrintCommand; import frc.robot.commands.driveTrain.MoveByDistance; import frc.robot.commands.led.Blink; +import frc.robot.commands.led.Gaming; import frc.robot.subsystems.driveTrain.DriveTrain; import frc.robot.subsystems.driveTrain.DriveTrainComponents; import frc.robot.subsystems.driveTrain.features.PoseEstimator; @@ -59,5 +60,6 @@ public DriveTrainShuffleBoard(DriveTrainComponents components) { tab.add("change color Blink", new InstantCommand(()-> new Blink(183,30,190,1.5,5))); + tab.add("change color Gaming", new InstantCommand(()-> new Gaming(3))); } } \ No newline at end of file