From 3458203225f58a8ee08380bdf326299fedfa6297 Mon Sep 17 00:00:00 2001 From: Antoine PerreaultE Date: Tue, 11 Feb 2025 19:51:37 -0500 Subject: [PATCH] leds baleeuse et saaaaaaaaaaam --- src/main/java/frc/robot/RobotContainer.java | 9 ++-- .../frc/robot/commands/BalayeuseAlgue.java | 21 +++++--- .../frc/robot/commands/BalayeuseCoral.java | 21 +++++--- .../java/frc/robot/commands/L1Requin.java | 24 ++++++--- .../java/frc/robot/subsystems/Bougie.java | 52 +++++++++++++++++++ 5 files changed, 99 insertions(+), 28 deletions(-) create mode 100644 src/main/java/frc/robot/subsystems/Bougie.java diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index a8affa1..71fb150 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -12,19 +12,20 @@ import frc.robot.commands.BalayeuseCoral; import frc.robot.commands.BalayeuseHaut; import frc.robot.commands.L1Requin; import frc.robot.subsystems.Requin; - +import frc.robot.subsystems.Bougie; public class RobotContainer { CommandXboxController manette1 = new CommandXboxController(0); CommandXboxController manette2 = new CommandXboxController(1); Requin requin = new Requin(); + Bougie bougie = new Bougie(); public RobotContainer() { configureBindings(); } private void configureBindings() { - manette2.b().whileTrue(new BalayeuseAlgue(requin)); - manette2.x().whileTrue(new BalayeuseCoral(requin)); - manette2.y().whileTrue(new L1Requin(requin)); + manette2.b().whileTrue(new BalayeuseAlgue(requin,bougie)); + manette2.x().whileTrue(new BalayeuseCoral(requin,bougie)); + manette2.y().whileTrue(new L1Requin(requin,bougie)); manette2.rightBumper().whileTrue(new BalayeuseHaut(requin)); } diff --git a/src/main/java/frc/robot/commands/BalayeuseAlgue.java b/src/main/java/frc/robot/commands/BalayeuseAlgue.java index 38b6a09..03dc31d 100644 --- a/src/main/java/frc/robot/commands/BalayeuseAlgue.java +++ b/src/main/java/frc/robot/commands/BalayeuseAlgue.java @@ -5,15 +5,18 @@ package frc.robot.commands; import edu.wpi.first.wpilibj2.command.Command; +import frc.robot.subsystems.Bougie; import frc.robot.subsystems.Requin; /* You should consider using the more terse Command factories API instead https://docs.wpilib.org/en/stable/docs/software/commandbased/organizing-command-based.html#defining-commands */ public class BalayeuseAlgue extends Command { private Requin requin; + private Bougie bougie; /** Creates a new Balayeuse. */ - public BalayeuseAlgue(Requin requin) { + public BalayeuseAlgue(Requin requin,Bougie bougie) { this.requin = requin; - addRequirements(requin); + this.bougie =bougie; + addRequirements(requin, bougie); // Use addRequirements() here to declare subsystem dependencies. } @@ -26,6 +29,13 @@ public class BalayeuseAlgue extends Command { public void execute() { if(requin.encodeur()>=500 && requin.encodeur()<=510){ requin.rotationer(0); + if(requin.stop()){ + requin.balaye(0); + bougie.Vert(); + } + else{ + requin.balaye(0.5); + } } else if(requin.encodeur()>=510){ requin.rotationer(0.5); @@ -33,12 +43,7 @@ public class BalayeuseAlgue extends Command { else{ requin.rotationer(-0.5); } - if(requin.stop()){ - requin.balaye(0); - } - else{ - requin.balaye(0.5); - } + } // Called once the command ends or is interrupted. diff --git a/src/main/java/frc/robot/commands/BalayeuseCoral.java b/src/main/java/frc/robot/commands/BalayeuseCoral.java index 879eee3..35aa9d8 100644 --- a/src/main/java/frc/robot/commands/BalayeuseCoral.java +++ b/src/main/java/frc/robot/commands/BalayeuseCoral.java @@ -5,15 +5,18 @@ package frc.robot.commands; import edu.wpi.first.wpilibj2.command.Command; +import frc.robot.subsystems.Bougie; import frc.robot.subsystems.Requin; /* You should consider using the more terse Command factories API instead https://docs.wpilib.org/en/stable/docs/software/commandbased/organizing-command-based.html#defining-commands */ public class BalayeuseCoral extends Command { private Requin requin; + private Bougie bougie; /** Creates a new Balayeuse. */ - public BalayeuseCoral(Requin requin) { + public BalayeuseCoral(Requin requin,Bougie bougie) { this.requin = requin; - addRequirements(requin); + this.bougie = bougie; + addRequirements(requin,bougie); // Use addRequirements() here to declare subsystem dependencies. } @@ -26,6 +29,13 @@ public class BalayeuseCoral extends Command { public void execute() { if(requin.encodeur()>=100 && requin.encodeur()<=110){ requin.rotationer(0); + if(requin.stop()){ + requin.balaye(0); + bougie.Vert(); + } + else{ + requin.balaye(0.5); + } } else if(requin.encodeur()>=110){ requin.rotationer(0.5); @@ -33,12 +43,7 @@ public class BalayeuseCoral extends Command { else{ requin.rotationer(-0.5); } - if(requin.stop()){ - requin.balaye(0); - } - else{ - requin.balaye(0.5); - } + } // Called once the command ends or is interrupted. diff --git a/src/main/java/frc/robot/commands/L1Requin.java b/src/main/java/frc/robot/commands/L1Requin.java index 6f23948..230f6f5 100644 --- a/src/main/java/frc/robot/commands/L1Requin.java +++ b/src/main/java/frc/robot/commands/L1Requin.java @@ -5,15 +5,18 @@ package frc.robot.commands; import edu.wpi.first.wpilibj2.command.Command; +import frc.robot.subsystems.Bougie; import frc.robot.subsystems.Requin; /* You should consider using the more terse Command factories API instead https://docs.wpilib.org/en/stable/docs/software/commandbased/organizing-command-based.html#defining-commands */ public class L1Requin extends Command { private Requin requin; + private Bougie bougie; /** Creates a new Balayeuse. */ - public L1Requin(Requin requin) { + public L1Requin(Requin requin,Bougie bougie) { this.requin = requin; - addRequirements(requin); + this.bougie = bougie; + addRequirements(requin,bougie); // Use addRequirements() here to declare subsystem dependencies. } @@ -26,6 +29,13 @@ public class L1Requin extends Command { public void execute() { if(requin.encodeur()>=800 && requin.encodeur()<=810){ requin.rotationer(0); + if(requin.stop()){ + requin.balaye(-0.5); + } + else{ + requin.balaye(-0.5); + bougie.Rouge(); + } } else if(requin.encodeur()>=810){ requin.rotationer(0.5); @@ -33,12 +43,10 @@ public class L1Requin extends Command { else{ requin.rotationer(-0.5); } - if(requin.stop()){ - requin.balaye(0); - } - else{ - requin.balaye(0.5); - } + + + + } // Called once the command ends or is interrupted. diff --git a/src/main/java/frc/robot/subsystems/Bougie.java b/src/main/java/frc/robot/subsystems/Bougie.java new file mode 100644 index 0000000..98bdf49 --- /dev/null +++ b/src/main/java/frc/robot/subsystems/Bougie.java @@ -0,0 +1,52 @@ +// 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.subsystems; + +import com.ctre.phoenix.led.CANdle; +import com.ctre.phoenix.led.CANdleConfiguration; +import com.ctre.phoenix.led.RainbowAnimation; + +import edu.wpi.first.wpilibj2.command.SubsystemBase; + +public class Bougie extends SubsystemBase { + CANdle candle = new CANdle(5); + CANdleConfiguration config = new CANdleConfiguration(); + RainbowAnimation rainbowAnim = new RainbowAnimation(1, 0.5, 64); + /** Creates a new Bougie. */ + public Bougie() { + config.brightnessScalar = 0.5; + candle.configAllSettings(config); + } + public void Rouge() { + candle.setLEDs(255, 0, 0,0,8,8); + candle.setLEDs(255, 0, 0,0,24,8); + candle.setLEDs(255, 0, 0,0,40,8); + candle.setLEDs(255, 0, 0,0,56,8); + } + public void Vert() { + candle.setLEDs(0, 255, 0,0,8,8); + candle.setLEDs(0, 255, 0,0,24,8); + candle.setLEDs(0, 255, 0,0,40,8); + candle.setLEDs(0, 255, 0,0,56,8); + } + public void Bleu() { + candle.setLEDs(0, 0, 255,0,16,8); + candle.setLEDs(0, 0, 255,0,32,8); + candle.setLEDs(0, 0, 255,0,48,8); + candle.setLEDs(0, 0, 255,0,64,8); + } + public void Jaune() { + candle.setLEDs(255, 215, 0,0,16,8); + candle.setLEDs(255, 215, 0,0,32,8); + candle.setLEDs(255, 215, 0,0,48,8); + candle.setLEDs(255, 215, 0,0,64,8); + } + public void RainBow(){candle.animate(rainbowAnim);} + public void RainBowStop(){candle.animate(null);} + @Override + public void periodic() { + // This method will be called once per scheduler run + } +}