From b16d11b70a484a897f0b332ced2f6de152b8358b Mon Sep 17 00:00:00 2001 From: Antoine PerreaultE Date: Mon, 27 Jan 2025 19:11:22 -0500 Subject: [PATCH 1/5] elevateur --- .../java/frc/robot/subsystems/Elevateur.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/main/java/frc/robot/subsystems/Elevateur.java diff --git a/src/main/java/frc/robot/subsystems/Elevateur.java b/src/main/java/frc/robot/subsystems/Elevateur.java new file mode 100644 index 0000000..abdf9c4 --- /dev/null +++ b/src/main/java/frc/robot/subsystems/Elevateur.java @@ -0,0 +1,27 @@ +// 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 edu.wpi.first.wpilibj.DigitalInput; +import edu.wpi.first.wpilibj.motorcontrol.Spark; +import edu.wpi.first.wpilibj2.command.SubsystemBase; +import com.revrobotics.spark.SparkMax; +import com.revrobotics.spark.SparkLowLevel.MotorType; +public class Elevateur extends SubsystemBase { + /** Creates a new Elevateur. */ + public Elevateur() {} + final SparkMax monte = new SparkMax(0, MotorType.kBrushless); + final DigitalInput limit2 = new DigitalInput(0); + public double positionL2(double position){ + return monte.getEncoder().getPosition(); + } + public void vitesseL2(double vitesse){ + monte.set(vitesse); + } + @Override + public void periodic() { + // This method will be called once per scheduler run + } +} From 7521c0d94ea8e476df941a0d8679ff52f3d4404b Mon Sep 17 00:00:00 2001 From: Antoine PerreaultE Date: Mon, 27 Jan 2025 19:15:16 -0500 Subject: [PATCH 2/5] elevateur --- .../java/frc/robot/subsystems/Elevateur.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/subsystems/Elevateur.java b/src/main/java/frc/robot/subsystems/Elevateur.java index abdf9c4..33d51b1 100644 --- a/src/main/java/frc/robot/subsystems/Elevateur.java +++ b/src/main/java/frc/robot/subsystems/Elevateur.java @@ -5,7 +5,6 @@ package frc.robot.subsystems; import edu.wpi.first.wpilibj.DigitalInput; -import edu.wpi.first.wpilibj.motorcontrol.Spark; import edu.wpi.first.wpilibj2.command.SubsystemBase; import com.revrobotics.spark.SparkMax; import com.revrobotics.spark.SparkLowLevel.MotorType; @@ -20,6 +19,28 @@ public class Elevateur extends SubsystemBase { public void vitesseL2(double vitesse){ monte.set(vitesse); } + public double positionL3(double position){ + return monte.getEncoder().getPosition(); + } + public void vitesseL3(double vitesse){ + monte.set(vitesse); + } + public double positionL4(double position){ + return monte.getEncoder().getPosition(); + } + public void vitesseL4(double vitesse){ + monte.set(vitesse); + } + public double position1(double position){ + return monte.getEncoder().getPosition(); + } + public void vitesse1(double vitesse){ + monte.set(vitesse); + } + + public void manuel(double vitesse){ + monte.set(vitesse); + } @Override public void periodic() { // This method will be called once per scheduler run From 0577ce368a4ae2f8c77c7cb5e4daa92c58935f3f Mon Sep 17 00:00:00 2001 From: Antoine PerreaultE Date: Mon, 27 Jan 2025 19:26:11 -0500 Subject: [PATCH 3/5] positon --- src/main/java/frc/robot/command/L2.java | 46 +++++++++++++++++++ src/main/java/frc/robot/command/L3.java | 46 +++++++++++++++++++ src/main/java/frc/robot/command/L4.java | 46 +++++++++++++++++++ .../java/frc/robot/subsystems/Elevateur.java | 28 ++--------- 4 files changed, 143 insertions(+), 23 deletions(-) create mode 100644 src/main/java/frc/robot/command/L2.java create mode 100644 src/main/java/frc/robot/command/L3.java create mode 100644 src/main/java/frc/robot/command/L4.java diff --git a/src/main/java/frc/robot/command/L2.java b/src/main/java/frc/robot/command/L2.java new file mode 100644 index 0000000..9804df8 --- /dev/null +++ b/src/main/java/frc/robot/command/L2.java @@ -0,0 +1,46 @@ +// 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.Elevateur; + +/* 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 L2 extends Command { + private Elevateur elevateur; + /** Creates a new L2. */ + public L2(Elevateur elevateur) { + this.elevateur = elevateur; + addRequirements(elevateur); + // 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(elevateur.position(500)>=500){ + elevateur.vitesse(0); + } + else{ + elevateur.vitesse(.5); + } + } + + // Called once the command ends or is interrupted. + @Override + public void end(boolean interrupted) { + elevateur.vitesse(0); + } + + // Returns true when the command should end. + @Override + public boolean isFinished() { + return elevateur.position(500)>=500; + } +} diff --git a/src/main/java/frc/robot/command/L3.java b/src/main/java/frc/robot/command/L3.java new file mode 100644 index 0000000..e5ff0da --- /dev/null +++ b/src/main/java/frc/robot/command/L3.java @@ -0,0 +1,46 @@ +// 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.Elevateur; + +/* 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 L3 extends Command { + private Elevateur elevateur; + /** Creates a new L2. */ + public L3(Elevateur elevateur) { + this.elevateur = elevateur; + addRequirements(elevateur); + // 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(elevateur.position(700)>=700){ + elevateur.vitesse(0); + } + else{ + elevateur.vitesse(.5); + } + } + + // Called once the command ends or is interrupted. + @Override + public void end(boolean interrupted) { + elevateur.vitesse(0); + } + + // Returns true when the command should end. + @Override + public boolean isFinished() { + return elevateur.position(700)>=700; + } +} diff --git a/src/main/java/frc/robot/command/L4.java b/src/main/java/frc/robot/command/L4.java new file mode 100644 index 0000000..b0b3c1c --- /dev/null +++ b/src/main/java/frc/robot/command/L4.java @@ -0,0 +1,46 @@ +// 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.Elevateur; + +/* 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 L4 extends Command { + private Elevateur elevateur; + /** Creates a new L2. */ + public L4(Elevateur elevateur) { + this.elevateur = elevateur; + addRequirements(elevateur); + // 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(elevateur.position(800)>=800){ + elevateur.vitesse(0); + } + else{ + elevateur.vitesse(.5); + } + } + + // Called once the command ends or is interrupted. + @Override + public void end(boolean interrupted) { + elevateur.vitesse(0); + } + + // Returns true when the command should end. + @Override + public boolean isFinished() { + return elevateur.position(800)>=800; + } +} diff --git a/src/main/java/frc/robot/subsystems/Elevateur.java b/src/main/java/frc/robot/subsystems/Elevateur.java index 33d51b1..e81d5ef 100644 --- a/src/main/java/frc/robot/subsystems/Elevateur.java +++ b/src/main/java/frc/robot/subsystems/Elevateur.java @@ -13,34 +13,16 @@ public class Elevateur extends SubsystemBase { public Elevateur() {} final SparkMax monte = new SparkMax(0, MotorType.kBrushless); final DigitalInput limit2 = new DigitalInput(0); - public double positionL2(double position){ + public double position(double position){ return monte.getEncoder().getPosition(); } - public void vitesseL2(double vitesse){ - monte.set(vitesse); - } - public double positionL3(double position){ - return monte.getEncoder().getPosition(); - } - public void vitesseL3(double vitesse){ - monte.set(vitesse); - } - public double positionL4(double position){ - return monte.getEncoder().getPosition(); - } - public void vitesseL4(double vitesse){ - monte.set(vitesse); - } - public double position1(double position){ - return monte.getEncoder().getPosition(); - } - public void vitesse1(double vitesse){ + public void vitesse(double vitesse){ monte.set(vitesse); } + + + - public void manuel(double vitesse){ - monte.set(vitesse); - } @Override public void periodic() { // This method will be called once per scheduler run From e7b4b479284ce1337c598724639717e3e3962ea8 Mon Sep 17 00:00:00 2001 From: Antoine PerreaultE Date: Mon, 27 Jan 2025 19:51:46 -0500 Subject: [PATCH 4/5] elevateur --- src/main/java/frc/robot/command/Depart.java | 47 ++++++++++++++++++ .../frc/robot/command/ElevateurManuel.java | 48 +++++++++++++++++++ src/main/java/frc/robot/command/L2.java | 6 +-- src/main/java/frc/robot/command/L3.java | 4 +- src/main/java/frc/robot/command/L4.java | 4 +- .../java/frc/robot/subsystems/Elevateur.java | 12 +++-- 6 files changed, 109 insertions(+), 12 deletions(-) create mode 100644 src/main/java/frc/robot/command/Depart.java create mode 100644 src/main/java/frc/robot/command/ElevateurManuel.java diff --git a/src/main/java/frc/robot/command/Depart.java b/src/main/java/frc/robot/command/Depart.java new file mode 100644 index 0000000..4d101e9 --- /dev/null +++ b/src/main/java/frc/robot/command/Depart.java @@ -0,0 +1,47 @@ +// 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.Elevateur; + +/* 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 Depart extends Command { + private Elevateur elevateur; + /** Creates a new L2. */ + public Depart(Elevateur elevateur) { + this.elevateur = elevateur; + addRequirements(elevateur); + // 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(elevateur.limit2()==true){ + elevateur.vitesse(0); + elevateur.reset(); + } + else{ + elevateur.vitesse(-.5); + } + } + + // Called once the command ends or is interrupted. + @Override + public void end(boolean interrupted) { + elevateur.vitesse(0); + } + + // Returns true when the command should end. + @Override + public boolean isFinished() { + return elevateur.limit2()==true; + } +} diff --git a/src/main/java/frc/robot/command/ElevateurManuel.java b/src/main/java/frc/robot/command/ElevateurManuel.java new file mode 100644 index 0000000..c75b4f9 --- /dev/null +++ b/src/main/java/frc/robot/command/ElevateurManuel.java @@ -0,0 +1,48 @@ +// 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 java.util.function.DoubleSupplier; + +import edu.wpi.first.wpilibj2.command.Command; +import frc.robot.subsystems.Elevateur; + +/* 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 ElevateurManuel extends Command { + private DoubleSupplier doubleSupplier; + private Elevateur elevateur; + /** Creates a new ElevateurManuel. */ + public ElevateurManuel(Elevateur elevateur,DoubleSupplier doubleSupplier) { + this.doubleSupplier = doubleSupplier; + this.elevateur = elevateur; + addRequirements(elevateur); + // 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(elevateur.limit2()==true){ + elevateur.vitesse(0); + } + elevateur.vitesse(doubleSupplier.getAsDouble()); + } + + // Called once the command ends or is interrupted. + @Override + public void end(boolean interrupted) { + elevateur.vitesse(0); + } + + // Returns true when the command should end. + @Override + public boolean isFinished() { + return false; + } +} diff --git a/src/main/java/frc/robot/command/L2.java b/src/main/java/frc/robot/command/L2.java index 9804df8..36c6522 100644 --- a/src/main/java/frc/robot/command/L2.java +++ b/src/main/java/frc/robot/command/L2.java @@ -24,11 +24,11 @@ public class L2 extends Command { // Called every time the scheduler runs while the command is scheduled. @Override public void execute() { - if(elevateur.position(500)>=500){ + if(elevateur.position()>=500){ elevateur.vitesse(0); } else{ - elevateur.vitesse(.5); + elevateur.vitesse(.3); } } @@ -41,6 +41,6 @@ public class L2 extends Command { // Returns true when the command should end. @Override public boolean isFinished() { - return elevateur.position(500)>=500; + return elevateur.position()>=500; } } diff --git a/src/main/java/frc/robot/command/L3.java b/src/main/java/frc/robot/command/L3.java index e5ff0da..92dfd18 100644 --- a/src/main/java/frc/robot/command/L3.java +++ b/src/main/java/frc/robot/command/L3.java @@ -24,7 +24,7 @@ public class L3 extends Command { // Called every time the scheduler runs while the command is scheduled. @Override public void execute() { - if(elevateur.position(700)>=700){ + if(elevateur.position()>=700){ elevateur.vitesse(0); } else{ @@ -41,6 +41,6 @@ public class L3 extends Command { // Returns true when the command should end. @Override public boolean isFinished() { - return elevateur.position(700)>=700; + return elevateur.position()>=700; } } diff --git a/src/main/java/frc/robot/command/L4.java b/src/main/java/frc/robot/command/L4.java index b0b3c1c..df01def 100644 --- a/src/main/java/frc/robot/command/L4.java +++ b/src/main/java/frc/robot/command/L4.java @@ -24,7 +24,7 @@ public class L4 extends Command { // Called every time the scheduler runs while the command is scheduled. @Override public void execute() { - if(elevateur.position(800)>=800){ + if(elevateur.position()>=800){ elevateur.vitesse(0); } else{ @@ -41,6 +41,6 @@ public class L4 extends Command { // Returns true when the command should end. @Override public boolean isFinished() { - return elevateur.position(800)>=800; + return elevateur.position()>=800; } } diff --git a/src/main/java/frc/robot/subsystems/Elevateur.java b/src/main/java/frc/robot/subsystems/Elevateur.java index e81d5ef..b37f6f0 100644 --- a/src/main/java/frc/robot/subsystems/Elevateur.java +++ b/src/main/java/frc/robot/subsystems/Elevateur.java @@ -13,16 +13,18 @@ public class Elevateur extends SubsystemBase { public Elevateur() {} final SparkMax monte = new SparkMax(0, MotorType.kBrushless); final DigitalInput limit2 = new DigitalInput(0); - public double position(double position){ + public double position(){ return monte.getEncoder().getPosition(); } public void vitesse(double vitesse){ monte.set(vitesse); } - - - - + public boolean limit2(){ + return limit2.get(); + } + public void reset(){ + monte.getEncoder().setPosition(0); + } @Override public void periodic() { // This method will be called once per scheduler run From 0fdfa4269d0ab9efff2fe29047013c8ad6a50fa8 Mon Sep 17 00:00:00 2001 From: Antoine PerreaultE Date: Tue, 28 Jan 2025 18:54:42 -0500 Subject: [PATCH 5/5] elevateurise mieux --- src/main/java/frc/robot/command/L2.java | 8 ++++++-- src/main/java/frc/robot/command/L3.java | 7 +++++-- src/main/java/frc/robot/command/L4.java | 5 ++++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/java/frc/robot/command/L2.java b/src/main/java/frc/robot/command/L2.java index 36c6522..8f7287a 100644 --- a/src/main/java/frc/robot/command/L2.java +++ b/src/main/java/frc/robot/command/L2.java @@ -24,12 +24,16 @@ public class L2 extends Command { // Called every time the scheduler runs while the command is scheduled. @Override public void execute() { - if(elevateur.position()>=500){ + if(elevateur.position()>=500 && elevateur.position()<=510){ elevateur.vitesse(0); } + else if(elevateur.position()>=510){ + elevateur.vitesse(-0.3); + } else{ elevateur.vitesse(.3); } + } // Called once the command ends or is interrupted. @@ -41,6 +45,6 @@ public class L2 extends Command { // Returns true when the command should end. @Override public boolean isFinished() { - return elevateur.position()>=500; + return false; } } diff --git a/src/main/java/frc/robot/command/L3.java b/src/main/java/frc/robot/command/L3.java index 92dfd18..8974af4 100644 --- a/src/main/java/frc/robot/command/L3.java +++ b/src/main/java/frc/robot/command/L3.java @@ -24,9 +24,12 @@ public class L3 extends Command { // Called every time the scheduler runs while the command is scheduled. @Override public void execute() { - if(elevateur.position()>=700){ + if(elevateur.position()>=700 && elevateur.position()<=710){ elevateur.vitesse(0); } + else if(elevateur.position()>=510){ + elevateur.vitesse(-0.5); + } else{ elevateur.vitesse(.5); } @@ -41,6 +44,6 @@ public class L3 extends Command { // Returns true when the command should end. @Override public boolean isFinished() { - return elevateur.position()>=700; + return false; } } diff --git a/src/main/java/frc/robot/command/L4.java b/src/main/java/frc/robot/command/L4.java index df01def..a688516 100644 --- a/src/main/java/frc/robot/command/L4.java +++ b/src/main/java/frc/robot/command/L4.java @@ -24,9 +24,12 @@ public class L4 extends Command { // Called every time the scheduler runs while the command is scheduled. @Override public void execute() { - if(elevateur.position()>=800){ + if(elevateur.position()>=800 && elevateur.position()<=810){ elevateur.vitesse(0); } + else if(elevateur.position()>=810){ + elevateur.vitesse(-0.5); + } else{ elevateur.vitesse(.5); }