From eec4eee2ff0563f29ee020a50e7e94ad404dfb3e Mon Sep 17 00:00:00 2001 From: Antoine PerreaultE Date: Tue, 28 Jan 2025 19:34:18 -0500 Subject: [PATCH] baleeuse --- .../frc/robot/command/BalayeuseAlgue.java | 56 +++++++++++++++++++ .../frc/robot/command/BalayeuseCoral.java | 56 +++++++++++++++++++ .../java/frc/robot/command/BalayeuseHaut.java | 1 + .../{BalayeuseBas.java => L1Requin.java} | 9 ++- .../java/frc/robot/subsystems/Requin.java | 14 +++-- 5 files changed, 127 insertions(+), 9 deletions(-) create mode 100644 src/main/java/frc/robot/command/BalayeuseAlgue.java create mode 100644 src/main/java/frc/robot/command/BalayeuseCoral.java rename src/main/java/frc/robot/command/{BalayeuseBas.java => L1Requin.java} (86%) diff --git a/src/main/java/frc/robot/command/BalayeuseAlgue.java b/src/main/java/frc/robot/command/BalayeuseAlgue.java new file mode 100644 index 0000000..04e02fa --- /dev/null +++ b/src/main/java/frc/robot/command/BalayeuseAlgue.java @@ -0,0 +1,56 @@ +// 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.command; + +import edu.wpi.first.wpilibj2.command.Command; +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; + /** Creates a new Balayeuse. */ + public BalayeuseAlgue(Requin requin) { + this.requin = requin; + addRequirements(requin); + // Use addRequirements() here to declare subsystem dependencies. + } + + // Called when the command is initially scheduled. + @Override + public void initialize() {} + + // Called every time the scheduler runs while the command is scheduled. + @Override + public void execute() { + if(requin.encodeur()>=500 && requin.encodeur()<=510){ + requin.rotationer(0); + } + else if(requin.encodeur()>=510){ + requin.rotationer(0.5); + } + else{ + requin.rotationer(-0.5); + } + if(requin.stop()){ + requin.balaye(0); + } + else{ + requin.balaye(0.5); + } + } + + // Called once the command ends or is interrupted. + @Override + public void end(boolean interrupted) { + requin.rotationer(0); + requin.balaye(0); + } + + // Returns true when the command should end. + @Override + public boolean isFinished() { + return false; + } +} diff --git a/src/main/java/frc/robot/command/BalayeuseCoral.java b/src/main/java/frc/robot/command/BalayeuseCoral.java new file mode 100644 index 0000000..6075a71 --- /dev/null +++ b/src/main/java/frc/robot/command/BalayeuseCoral.java @@ -0,0 +1,56 @@ +// 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.command; + +import edu.wpi.first.wpilibj2.command.Command; +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; + /** Creates a new Balayeuse. */ + public BalayeuseCoral(Requin requin) { + this.requin = requin; + addRequirements(requin); + // Use addRequirements() here to declare subsystem dependencies. + } + + // Called when the command is initially scheduled. + @Override + public void initialize() {} + + // Called every time the scheduler runs while the command is scheduled. + @Override + public void execute() { + if(requin.encodeur()>=100 && requin.encodeur()<=110){ + requin.rotationer(0); + } + else if(requin.encodeur()>=110){ + requin.rotationer(0.5); + } + else{ + requin.rotationer(-0.5); + } + if(requin.stop()){ + requin.balaye(0); + } + else{ + requin.balaye(0.5); + } + } + + // Called once the command ends or is interrupted. + @Override + public void end(boolean interrupted) { + requin.rotationer(0); + requin.balaye(0); + } + + // Returns true when the command should end. + @Override + public boolean isFinished() { + return false; + } +} diff --git a/src/main/java/frc/robot/command/BalayeuseHaut.java b/src/main/java/frc/robot/command/BalayeuseHaut.java index 4dc75c8..647c592 100644 --- a/src/main/java/frc/robot/command/BalayeuseHaut.java +++ b/src/main/java/frc/robot/command/BalayeuseHaut.java @@ -26,6 +26,7 @@ public class BalayeuseHaut extends Command { public void execute() { if(requin.enHaut()==true){ requin.rotationer(0); + requin.reset(); } else{ requin.rotationer(0.5); diff --git a/src/main/java/frc/robot/command/BalayeuseBas.java b/src/main/java/frc/robot/command/L1Requin.java similarity index 86% rename from src/main/java/frc/robot/command/BalayeuseBas.java rename to src/main/java/frc/robot/command/L1Requin.java index b4016a6..0dc75c5 100644 --- a/src/main/java/frc/robot/command/BalayeuseBas.java +++ b/src/main/java/frc/robot/command/L1Requin.java @@ -8,10 +8,10 @@ import edu.wpi.first.wpilibj2.command.Command; 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 BalayeuseBas extends Command { +public class L1Requin extends Command { private Requin requin; /** Creates a new Balayeuse. */ - public BalayeuseBas(Requin requin) { + public L1Requin(Requin requin) { this.requin = requin; addRequirements(requin); // Use addRequirements() here to declare subsystem dependencies. @@ -24,9 +24,12 @@ public class BalayeuseBas extends Command { // Called every time the scheduler runs while the command is scheduled. @Override public void execute() { - if(requin.enBas()==true){ + if(requin.encodeur()>=800 && requin.encodeur()<=810){ requin.rotationer(0); } + else if(requin.encodeur()>=810){ + requin.rotationer(0.5); + } else{ requin.rotationer(-0.5); } diff --git a/src/main/java/frc/robot/subsystems/Requin.java b/src/main/java/frc/robot/subsystems/Requin.java index f200054..5ebd547 100644 --- a/src/main/java/frc/robot/subsystems/Requin.java +++ b/src/main/java/frc/robot/subsystems/Requin.java @@ -17,23 +17,25 @@ public class Requin extends SubsystemBase { final SparkFlex balaye = new SparkFlex(0, MotorType.kBrushless); final SparkMax rotatione = new SparkMax(0, MotorType.kBrushless); final DigitalInput limit3 = new DigitalInput(0); - final DigitalInput limit4 = new DigitalInput(0); final DigitalInput limit5 = new DigitalInput(0); public void balaye(double vitesse){ balaye.set(vitesse); } public void rotationer(double vitesse){ - rotatione.set(vitesse); + rotatione.set(vitesse); } public boolean enHaut(){ - return limit3.get(); - } - public boolean enBas(){ - return limit4.get(); + return limit3.get(); } public boolean stop(){ return limit5.get(); } + public double encodeur(){ + return rotatione.getEncoder().getPosition(); + } + public void reset(){ + rotatione.getEncoder().setPosition(0); + } @Override public void periodic() { // This method will be called once per scheduler run