// 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.Elevateur; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.math.controller.PIDController; import frc.robot.subsystems.Elevateur; import frc.robot.subsystems.Pince; /* 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; private Pince pince; private PIDController pidController1; private PIDController pidController2; private double output; private double output2; /** Creates a new L2. */ public L3(Elevateur elevateur,Pince pince) { this.elevateur = elevateur; this.pince = pince; addRequirements(elevateur,pince); // Use addRequirements() here to declare subsystem dependencies. } // Called when the command is initially scheduled. @Override public void initialize() { pidController1 = new PIDController(0.3, 0.04,0); pidController2 = new PIDController(0.025, 0.00125,0.001, 0.01); pidController1.reset(); pidController2.reset(); } // Called every time the scheduler runs while the command is scheduled. @Override public void execute() { output = pidController1.calculate(elevateur.position(),-3); output2 = pidController2.calculate(pince.encodeurpivot(),20); elevateur.vitesse(output); pince.pivote(output2); // if(elevateur.position()<=elevateur.encodeurelevateurL3bas() && elevateur.position()>=elevateur.encodeurelevateurL3haut()){ // elevateur.vitesse(0); // pince.pivote(-0.15); // if(pince.encodeurpivot()>=20 && pince.encodeurpivot()<=21){ // pince.pivote(0); // } // else if(pince.encodeurpivot()>=20){ // pince.pivote(-0.15); // } // else{ // pince.pivote(0.15); // } // } // else if(elevateur.position()>=elevateur.encodeurelevateurL3bas()){ // elevateur.vitesse(-0.7); // } // else{ // elevateur.vitesse(0.25); // } } // Called once the command ends or is interrupted. @Override public void end(boolean interrupted) { elevateur.vitesse(0); pince.pivote(0); } // Returns true when the command should end. @Override public boolean isFinished() { return false; } }