This commit is contained in:
Antoine PerreaultE 2024-01-25 19:01:49 -05:00
commit b4ef632169
10 changed files with 222 additions and 14 deletions

View File

@ -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;
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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

View File

@ -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

View File

@ -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