From e785132dc669fab968fc892f7bfd87745cf5c549 Mon Sep 17 00:00:00 2001 From: Samuel <2540638@etudiant.cegepvicto.com> Date: Tue, 24 Feb 2026 18:42:20 -0500 Subject: [PATCH] moyenne d'amps --- src/main/java/frc/robot/commands/Aspirer.java | 10 ++- src/main/java/frc/robot/commands/Lancer.java | 43 ++++++------ .../java/frc/robot/commands/LancerOposer.java | 65 +++++++++++++++++++ 3 files changed, 95 insertions(+), 23 deletions(-) create mode 100644 src/main/java/frc/robot/commands/LancerOposer.java diff --git a/src/main/java/frc/robot/commands/Aspirer.java b/src/main/java/frc/robot/commands/Aspirer.java index 1b35c9a..88ba264 100644 --- a/src/main/java/frc/robot/commands/Aspirer.java +++ b/src/main/java/frc/robot/commands/Aspirer.java @@ -14,12 +14,14 @@ public class Aspirer extends Command { private Balayeuse balayeuse; private Timer timer; private Led led; + private double temp; /** Creates a new Aspirer. */ public Aspirer(Balayeuse balayeuse, Led led) { this.balayeuse = balayeuse; this.led = led; this.timer = new Timer(); addRequirements(balayeuse, led); + this.temp = 0; // Use addRequirements() here to declare subsystem dependencies. } @@ -27,6 +29,7 @@ public class Aspirer extends Command { @Override public void initialize() { timer.reset(); + temp = balayeuse.Amp(); } // Called every time the scheduler runs while the command is scheduled. @@ -40,13 +43,16 @@ public class Aspirer extends Command { moyenneAmp += balayeuse.Amp() / nbFois; } else{ - timer.reset(); + nbFois++; + moyenneAmp -= temp; + moyenneAmp += balayeuse.Amp() / nbFois; + temp = balayeuse.Amp(); } if(moyenneAmp < 40){ timer.reset(); balayeuse.Balayer(0.5); } - else if(moyenneAmp > 40){ + else{ balayeuse.Balayer(0); led.Jaune2(); } diff --git a/src/main/java/frc/robot/commands/Lancer.java b/src/main/java/frc/robot/commands/Lancer.java index 8395eec..1c32190 100644 --- a/src/main/java/frc/robot/commands/Lancer.java +++ b/src/main/java/frc/robot/commands/Lancer.java @@ -21,6 +21,7 @@ public class Lancer extends Command { private Timer timer; private Balayeuse balayeuse; private Led led; + private double temp; /** Creates a new Lancer. */ public Lancer(Lanceur lanceur, LimeLight3 limeLight3, Balayeuse balayeuse,Led led) { this.lanceur = lanceur; @@ -29,6 +30,7 @@ public class Lancer extends Command { this.timer = new Timer(); this.limeLight3G = new Limelight3G(); addRequirements(lanceur); + this.temp = 0; // Use addRequirements() here to declare subsystem dependencies. } @@ -37,39 +39,38 @@ public class Lancer extends Command { public void initialize() { pidController = new PIDController(0, 0,0, 0); timer.reset(); + timer.start(); + temp = lanceur.Amp(); } // Called every time the scheduler runs while the command is scheduled. @Override public void execute() { - timer.start(); - if(lanceur.Amp() > 40){ + int nbFois = 0; + + double moyenneAmp = 0; + if(timer.get() < 3){ + nbFois++; + moyenneAmp += balayeuse.Amp() / nbFois; + } + else{ + nbFois++; + moyenneAmp -= temp; + moyenneAmp += balayeuse.Amp() / nbFois; + temp = balayeuse.Amp(); + } + if(moyenneAmp > 30 && nbFois > 10){ timer.reset(); - double vitesse = (100-limeLight3G.getTA())/100; + balayeuse.Balayer(0.5); + } + else{ + double vitesse = (100-limeLight3G.getTA())/lanceur.Vitesse(); double output = pidController.calculate(lanceur.Vitesse(),vitesse); lanceur.Lancer(output); if(lanceur.Vitesse() >= vitesse){ lanceur.Demeler(0.5); } } - else if(lanceur.Amp() < 40){ - lanceur.Lancer(0); - lanceur.Demeler(0); - if(!balayeuse.GetLimiSwtich()){ - balayeuse.Pivoter(0.2); - } - else{ - balayeuse.Reset(); - balayeuse.Pivoter(0); - double vitesse = (100-limeLight3G.getTA())/lanceur.Vitesse(); - double output = pidController.calculate(lanceur.Vitesse(),vitesse); - lanceur.Lancer(output); - if(lanceur.Vitesse() >= vitesse){ - lanceur.Demeler(0.5); - } - } - led.Vert2(); - } } diff --git a/src/main/java/frc/robot/commands/LancerOposer.java b/src/main/java/frc/robot/commands/LancerOposer.java new file mode 100644 index 0000000..4c129c6 --- /dev/null +++ b/src/main/java/frc/robot/commands/LancerOposer.java @@ -0,0 +1,65 @@ +// 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.commands; + +import edu.wpi.first.math.controller.PIDController; +import edu.wpi.first.wpilibj.Timer; +import edu.wpi.first.wpilibj2.command.Command; +import frc.robot.subsystems.Balayeuse; +import frc.robot.subsystems.Lanceur; +import frc.robot.subsystems.Led; +import frc.robot.subsystems.LimeLight3; +import frc.robot.subsystems.Limelight3G; + +/* 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 LancerOposer extends Command { + private Lanceur lanceur; + private PIDController pidController; + private Limelight3G limeLight3G; + private Timer timer; + private Balayeuse balayeuse; + private Led led; + private double temp; + /** Creates a new Lancer. */ + public LancerOposer(Lanceur lanceur, LimeLight3 limeLight3, Balayeuse balayeuse,Led led) { + this.lanceur = lanceur; + this.balayeuse = balayeuse; + this.led = led; + this.timer = new Timer(); + this.limeLight3G = new Limelight3G(); + addRequirements(lanceur); + this.temp = 0; + // Use addRequirements() here to declare subsystem dependencies. + } + + // Called when the command is initially scheduled. + @Override + public void initialize() { + pidController = new PIDController(0, 0,0, 0); + timer.reset(); + timer.start(); + temp = lanceur.Amp(); + } + + // Called every time the scheduler runs while the command is scheduled. + @Override + public void execute() { + lanceur.Lancer(-0.2); + lanceur.Demeler(-0.2); + } + + // Called once the command ends or is interrupted. + @Override + public void end(boolean interrupted) { + lanceur.Demeler(0); + lanceur.Lancer(0); + } + + // Returns true when the command should end. + @Override + public boolean isFinished() { + return false; + } +}