diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index ca8a00f..8c918b3 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -42,12 +42,17 @@ public class Constants { public static int ArriereDroit = 6; public static int ArriereGauche = 7; - // Limit switsh + // Limit switch public static int guideurhaut = 23; public static int guideurbas = 24; public static int limitacc = 25; public static int limitacc2 = 76; public static int limithaut = 28; public static int limitbas = 29; - + + //piston + public static int pistondroiteouvre= 30; + public static int pistondroiteferme= 31; + public static int pistondgaucheouvre= 32; + public static int pistondgauchferme= 32; } diff --git a/src/main/java/frc/robot/command/Balayer.java b/src/main/java/frc/robot/command/Balayer.java new file mode 100644 index 0000000..d13cb6d --- /dev/null +++ b/src/main/java/frc/robot/command/Balayer.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 edu.wpi.first.wpilibj2.command.Command; +import frc.robot.subsystem.Accumulateur; +import frc.robot.subsystem.Balayeuse; + +public class Balayer extends Command { + private Balayeuse balayeuse; + private Accumulateur accumulateur; + /** Creates a new Balayer. */ + public Balayer(Balayeuse balayeuse, Accumulateur accumulateur) { + this.balayeuse = balayeuse; + addRequirements(balayeuse, accumulateur);} + // 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(accumulateur.limitswitch()){ + balayeuse.balaye(0); + accumulateur.Accumuler(0); + } + else{ + balayeuse.balaye(0.6); + accumulateur.Accumuler(0.6); + } +} + + // Called once the command ends or is interrupted. + @Override + public void end(boolean interrupted) { + balayeuse.balaye(0); + accumulateur.Accumuler(0); + } + + // Returns true when the command should end. + @Override + public boolean isFinished() { + return accumulateur.limitswitch()==true; + } +} diff --git a/src/main/java/frc/robot/command/Deaccumuler.java b/src/main/java/frc/robot/command/Deaccumuler.java new file mode 100644 index 0000000..68e16ba --- /dev/null +++ b/src/main/java/frc/robot/command/Deaccumuler.java @@ -0,0 +1,40 @@ +// 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.subsystem.Accumulateur; + +public class Deaccumuler extends Command { + private Accumulateur accumulateur; + /** Creates a new Deaccumuler. */ + public Deaccumuler(Accumulateur accumulateur) { + // Use addRequirements() here to declare subsystem dependencies. + this.accumulateur = accumulateur; + addRequirements(accumulateur); + } + + // 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() { + accumulateur.Accumuler(0.5); + } + + // Called once the command ends or is interrupted. + @Override + public void end(boolean interrupted) { + accumulateur.Accumuler(0); + } + + // Returns true when the command should end. + @Override + public boolean isFinished() { + return false; + } +} diff --git a/src/main/java/frc/robot/command/Debalayer.java b/src/main/java/frc/robot/command/Debalayer.java new file mode 100644 index 0000000..1ec655c --- /dev/null +++ b/src/main/java/frc/robot/command/Debalayer.java @@ -0,0 +1,42 @@ +// 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.subsystem.Accumulateur; +import frc.robot.subsystem.Balayeuse; + +public class Debalayer extends Command { + private Balayeuse balayeuse; + private Accumulateur accumulateur; + /** Creates a new Balayer. */ + public Debalayer(Balayeuse balayeuse, Accumulateur accumulateur) { + this.balayeuse = balayeuse; + addRequirements(balayeuse, accumulateur);} + // 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() { + balayeuse.balaye(-0.6); + accumulateur.Accumuler(-0.6); +} + + // Called once the command ends or is interrupted. + @Override + public void end(boolean interrupted) { + balayeuse.balaye(0); + accumulateur.Accumuler(0); + } + + // Returns true when the command should end. + @Override + public boolean isFinished() { + return false; + } +} diff --git a/src/main/java/frc/robot/command/GrimpeurHaut.java b/src/main/java/frc/robot/command/GrimpeurHaut.java new file mode 100644 index 0000000..840c475 --- /dev/null +++ b/src/main/java/frc/robot/command/GrimpeurHaut.java @@ -0,0 +1,38 @@ +// 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.subsystem.Grimpeur; + +public class GrimpeurHaut extends Command { + private Grimpeur grimpeur; + /** Creates a new GrimpeurHaut. */ + public GrimpeurHaut(Grimpeur grimpeur) { + this.grimpeur = grimpeur; + addRequirements(grimpeur); + // 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() { + + } + + // Called once the command ends or is interrupted. + @Override + public void end(boolean interrupted) {} + + // Returns true when the command should end. + @Override + public boolean isFinished() { + return false; + } +} diff --git a/src/main/java/frc/robot/command/GuiderBas.java b/src/main/java/frc/robot/command/GuiderBas.java index a279897..4d6e5d2 100644 --- a/src/main/java/frc/robot/command/GuiderBas.java +++ b/src/main/java/frc/robot/command/GuiderBas.java @@ -40,6 +40,6 @@ public class GuiderBas extends Command { // Returns true when the command should end. @Override public boolean isFinished() { - return false; + return guideur.bas()==true; } } diff --git a/src/main/java/frc/robot/command/GuiderHaut.java b/src/main/java/frc/robot/command/GuiderHaut.java index d431475..586ebbd 100644 --- a/src/main/java/frc/robot/command/GuiderHaut.java +++ b/src/main/java/frc/robot/command/GuiderHaut.java @@ -40,6 +40,6 @@ public class GuiderHaut extends Command { // Returns true when the command should end. @Override public boolean isFinished() { - return false; + return guideur.haut()==true; } } diff --git a/src/main/java/frc/robot/subsystem/Accumulateur.java b/src/main/java/frc/robot/subsystem/Accumulateur.java index 04b7821..9c51357 100644 --- a/src/main/java/frc/robot/subsystem/Accumulateur.java +++ b/src/main/java/frc/robot/subsystem/Accumulateur.java @@ -12,16 +12,27 @@ import frc.robot.Constants; public class Accumulateur extends SubsystemBase { /** Creates a new Accumulateur. */ - public Accumulateur() {} + final WPI_TalonSRX Moteuracc2 = new WPI_TalonSRX(Constants.Moteuracc2); final WPI_TalonSRX Moteuracc = new WPI_TalonSRX(Constants.Moteuracc); - final DigitalInput limitacc = new DigitalInput(Constants.limitacc); - final DigitalInput limitacc2 = new DigitalInput(Constants.limitacc2); - public void Deaccumuler(double vitesse){Moteuracc2.set(vitesse);} - public void moteuraccfollow(){Moteuracc.follow(Moteuracc2); Moteuracc.setInverted(true);} - public boolean limitswitch1(){return limitacc.get();} - public boolean limitswitch2(){return limitacc2.get();} + final DigitalInput limitacc = new DigitalInput(Constants.limitacc); + public void Deaccumuler(double vitesse){ + Moteuracc2.set(vitesse); + } + public void moteuraccfollow(){ + Moteuracc.follow(Moteuracc2); + Moteuracc.setInverted(true); + } + public boolean limitswitch(){ + return limitacc.get(); + } + public Accumulateur() {} + public void Accumuler(double vitesse){ + Moteuracc.set(vitesse); + Moteuracc2.set(vitesse); + } + @Override public void periodic() { // This method will be called once per scheduler run diff --git a/src/main/java/frc/robot/subsystem/Balayeuse.java b/src/main/java/frc/robot/subsystem/Balayeuse.java index bf971ab..8fc5987 100644 --- a/src/main/java/frc/robot/subsystem/Balayeuse.java +++ b/src/main/java/frc/robot/subsystem/Balayeuse.java @@ -15,9 +15,19 @@ public class Balayeuse extends SubsystemBase { public Balayeuse() {} final WPI_TalonSRX roue = new WPI_TalonSRX(Constants.roue); - final TalonSRX etoile = new TalonSRX(Constants.etoile); - public void Accumulation(double vitesse){roue.set(vitesse);} - public void balayeuse(){etoile.follow(roue); etoile.setInverted(true);} + final WPI_TalonSRX etoile = new WPI_TalonSRX(Constants.etoile); + + public void Accumulation(double vitesse){ + roue.set(vitesse); + } + public void balayeuse(){ + etoile.follow(roue); + etoile.setInverted(true); + } + public void balaye(double vitesse){ + roue.set(vitesse); + etoile.set(vitesse); + } @Override public void periodic() { // This method will be called once per scheduler run diff --git a/src/main/java/frc/robot/subsystem/Grimpeur.java b/src/main/java/frc/robot/subsystem/Grimpeur.java index 447132b..ed02bda 100644 --- a/src/main/java/frc/robot/subsystem/Grimpeur.java +++ b/src/main/java/frc/robot/subsystem/Grimpeur.java @@ -9,6 +9,9 @@ import com.revrobotics.CANSparkMax; import com.revrobotics.CANSparkLowLevel.MotorType; import edu.wpi.first.wpilibj.DigitalInput; +import edu.wpi.first.wpilibj.DoubleSolenoid; +import edu.wpi.first.wpilibj.PneumaticsModuleType; +import edu.wpi.first.wpilibj.DoubleSolenoid.Value; import edu.wpi.first.wpilibj2.command.SubsystemBase; import frc.robot.Constants; @@ -21,6 +24,8 @@ public class Grimpeur extends SubsystemBase { // limit switch final DigitalInput limitdroite = new DigitalInput(Constants.limithaut); final DigitalInput limitgauche = new DigitalInput(Constants.limitbas); + final DoubleSolenoid pistondroite= new DoubleSolenoid(PneumaticsModuleType.CTREPCM, Constants.pistondroiteouvre, Constants.pistondroiteouvre); + final DoubleSolenoid pistondgauche= new DoubleSolenoid(PneumaticsModuleType.CTREPCM, Constants.pistondgaucheouvre, Constants.pistondroiteouvre); //fonction public void droit(double vitesse){ grimpeurd.set(vitesse); @@ -40,10 +45,19 @@ public void resetencodeurd(){ public void resetencodeurg(){ grimpeurg.getEncoder().setPosition(0); } + public AHRS gyroscope = new AHRS(); public double getpitch(){ return gyroscope.getPitch(); } + public void pistonouvre(){ + pistondroite.set(Value.kForward); + pistondgauche.set(Value.kForward); + } + public void pistonferme(){ + pistondroite.set(Value.kReverse); + pistondgauche.set(Value.kReverse); + } @Override public void periodic() { // This method will be called once per scheduler run