This commit is contained in:
Olivier Dubois 2023-12-05 19:14:54 -05:00
commit 446e6f820f
10 changed files with 155 additions and 174 deletions

View File

@ -3,6 +3,7 @@
// the WPILib BSD license file in the root directory of this project.
package frc.robot;
import edu.wpi.first.cameraserver.CameraServer;
import edu.wpi.first.math.MathUtil;
import edu.wpi.first.networktables.GenericEntry;
import edu.wpi.first.wpilibj.shuffleboard.BuiltInLayouts;
@ -10,19 +11,21 @@ import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard;
import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardLayout;
import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab;
import edu.wpi.first.wpilibj2.command.Command;
import edu.wpi.first.wpilibj2.command.ParallelCommandGroup;
import edu.wpi.first.wpilibj2.command.RunCommand;
import edu.wpi.first.wpilibj2.command.SequentialCommandGroup;
import edu.wpi.first.wpilibj2.command.button.CommandJoystick;
import edu.wpi.first.wpilibj2.command.button.CommandXboxController;
import frc.robot.commands.Avancer;
import frc.robot.commands.Force1;
//import frc.robot.commands.Lancer;
import frc.robot.commands.LancerTest;
import frc.robot.commands.Force2;
import frc.robot.commands.Force3;
import frc.robot.commands.Force4;
import frc.robot.commands.Force5;
import frc.robot.commands.Force6;
import frc.robot.commands.Force7;
import frc.robot.commands.Force1;
import frc.robot.commands.Reculer;
import frc.robot.commands.accumulateurtest;
import frc.robot.subsystems.Accumulateur;
@ -39,7 +42,9 @@ public class RobotContainer {
ShuffleboardLayout forces = Shuffleboard.getTab("Dashboard")
.getLayout("forces", BuiltInLayouts.kList)
.withSize(1, 7)
.withPosition(1, 0);
.withPosition(1, 0)
.withSize(1, 7);
GenericEntry force1 = forces.add("Force1", 2).getEntry();
GenericEntry force2 = forces.add("Force2", 4).getEntry();
GenericEntry force3 = forces.add("Force3", 6).getEntry();
@ -62,24 +67,30 @@ public class RobotContainer {
private void configureBindings() {
accumulateurtest accumulateurtest = new accumulateurtest(accumulateur);
LancerTest lancertest = new LancerTest(lanceur);
// joystick1.button(7).onTrue(new Lancer(lanceur, accumulateur, force1));
/* joystick1.button(8).onTrue(new Lancer(lanceur, accumulateur, force2));
joystick1.button(9).onTrue(new Lancer(lanceur, accumulateur, force3));
joystick1.button(10).onTrue(new Lancer(lanceur, accumulateur, force4));
joystick1.button(11).onTrue(new Lancer(lanceur, accumulateur, force5));
joystick1.button(12).onTrue(new Lancer(lanceur, accumulateur, force6));*/
// joystick1.button(3).onTrue(new Lancer(lanceur, accumulateur, force7));
joystick1.button(5).whileTrue(accumulateurtest);
joystick1.button(1).whileTrue(lancertest);
Force1 Force1 = new Force1(lanceur, force1);
Force2 Force2 = new Force2(lanceur, force2);
Force3 Force3 = new Force3(lanceur, force3);
Force4 Force4 = new Force4(lanceur, force4);
Force5 Force5 = new Force5(lanceur, force5);
Force6 Force6 = new Force6(lanceur, force6);
Force7 Force7 = new Force7(lanceur, force7);
//touche
joystick1.button(3).whileTrue(accumulateurtest);
joystick1.button(1).whileTrue(Force1);
joystick1.button(7).whileTrue(Force2);
joystick1.button(8).whileTrue(Force3);
joystick1.button(9).whileTrue(Force4);
joystick1.button(10).whileTrue(Force5);
joystick1.button(11).whileTrue(Force6);
joystick1.button(12).whileTrue(Force7);
}
public Command getAutonomousCommand() {
return null;
/* new SequentialCommandGroup(new Avancer(drive), new Force7(lanceur, force7, accumulateur)
, new Lancer(lanceur, accumulateur, force1), new Reculer(drive));
*/ }
return new SequentialCommandGroup(new ParallelCommandGroup(new Force1(lanceur).withTimeout(5),new accumulateurtest(accumulateur).withTimeout(5))
,new Avancer(drive));
}
}

View File

@ -4,13 +4,19 @@
package frc.robot.commands;
import edu.wpi.first.networktables.GenericEntry;
import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard;
import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab;
import edu.wpi.first.wpilibj2.command.CommandBase;
import frc.robot.subsystems.Lanceur;
public class LancerTest extends CommandBase {
public class Force1 extends CommandBase {
ShuffleboardTab dashboard = Shuffleboard.getTab("Dashboard");
private Lanceur lanceur;
/** Creates a new LancerTest. */
public LancerTest(Lanceur lanceur) {
public Force1(Lanceur lanceur, g) {
dashboard.add("vitesse lanceur", 0.5);
this.lanceur = lanceur;
addRequirements(lanceur);
// Use addRequirements() here to declare subsystem dependencies.
@ -25,7 +31,7 @@ public class LancerTest extends CommandBase {
// Called every time the scheduler runs while the command is scheduled.
@Override
public void execute() {
lanceur.lancer(0.5);
lanceur.lancer(0.3);
}
// Called once the command ends or is interrupted.

View File

@ -6,39 +6,27 @@ package frc.robot.commands;
import edu.wpi.first.networktables.GenericEntry;
import edu.wpi.first.wpilibj2.command.CommandBase;
import frc.robot.subsystems.Accumulateur;
import frc.robot.subsystems.Lanceur;
public class Force2 extends CommandBase {
private Lanceur lanceur;
private Accumulateur accumulateur;
GenericEntry force2;
/** Creates a new Force1. */
public Force2(Lanceur lanceur,Accumulateur accumulateur, GenericEntry force2) {
/** Creates a new LancerTest. */
public Force2(Lanceur lanceur, GenericEntry force2) {
this.lanceur = lanceur;
this.accumulateur = accumulateur;
addRequirements(lanceur, accumulateur);
this.force2 = force2;
addRequirements(lanceur);
// Use addRequirements() here to declare subsystem dependencies.
}
// Called when the command is initially scheduled.
@Override
public void initialize() {
lanceur.setPID(0,0,0);
lanceur.setPID(0.000000000000075572, 0, 0);
}
// Called every time the scheduler runs while the command is scheduled.
@Override
public void execute() {
double vitesse = (200);
lanceur.lancer(force2.getDouble(200));
if (lanceur.vitesse() > vitesse ){
accumulateur.tourneavant();
accumulateur.tournearriere();
} else {
accumulateur.stop();
}
lanceur.lancer(0.35);
}
// Called once the command ends or is interrupted.

View File

@ -2,54 +2,42 @@
// 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.
// 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 frc.robot.subsystems.Accumulateur;
import edu.wpi.first.networktables.GenericEntry;
import edu.wpi.first.wpilibj2.command.CommandBase;
import frc.robot.subsystems.Lanceur;
public class Force3 extends CommandBase {
private Lanceur lanceur;
private Accumulateur accumulateur;
GenericEntry force3;
/** Creates a new Force1. */
public Force3(Lanceur lanceur,GenericEntry force3, Accumulateur accumulateur) {
/** Creates a new LancerTest. */
public Force3(Lanceur lanceur, GenericEntry force3) {
this.lanceur = lanceur;
addRequirements(lanceur, accumulateur);
this.force3 = force3;
this.accumulateur = accumulateur;
addRequirements(lanceur);
// Use addRequirements() here to declare subsystem dependencies.
}
// Called when the command is initially scheduled.
@Override
public void initialize() {
lanceur.setPID(0, 0, 0);
lanceur.setPID(0.000000000000075572, 0, 0);
}
// Called every time the scheduler runs while the command is scheduled.
@Override
public void execute() {
lanceur.lancer(0.4);
}
double vitesse = (300);
lanceur.lancer(force3.getDouble(300));
if (lanceur.vitesse() > vitesse ){
accumulateur.tourneavant();
accumulateur.tournearriere();
} else {
accumulateur.stop();
}
// Called once the command ends or is interrupted.
@Override
public void end(boolean interrupted) {
lanceur.lancer(0);
}
// Returns true when the command should end.
@Override
public boolean isFinished() {
return false;
}
}
}

View File

@ -3,59 +3,41 @@
// the WPILib BSD license file in the root directory of this project.
package frc.robot.commands;
import frc.robot.subsystems.Accumulateur;
import edu.wpi.first.networktables.GenericEntry;
import edu.wpi.first.wpilibj2.command.CommandBase;
import frc.robot.subsystems.Lanceur;
public class Force4 extends CommandBase {
private Lanceur lanceur;
private Accumulateur accumulateur;
GenericEntry force4;
/** Creates a new Force1. */
public Force4(Lanceur lanceur,GenericEntry force4, Accumulateur accumulateur) {
/** Creates a new LancerTest. */
public Force4(Lanceur lanceur, GenericEntry force4) {
this.lanceur = lanceur;
addRequirements(lanceur, accumulateur);
this.force4 = force4;
this.accumulateur = accumulateur;
addRequirements(lanceur);
// Use addRequirements() here to declare subsystem dependencies.
}
// Called when the command is initially scheduled.
@Override
public void initialize() {
lanceur.setPID(0, 0, 0);
lanceur.setPID(0.000000000000075572, 0, 0);
}
// Called every time the scheduler runs while the command is scheduled.
@Override
public void execute() {
double vitesse = (400);
lanceur.lancer(force4.getDouble(400));
if (lanceur.vitesse() > vitesse ){
accumulateur.tourneavant();
accumulateur.tournearriere();
} else {
accumulateur.stop();
}
lanceur.lancer(0.45);
}
// Called once the command ends or is interrupted.
@Override
public void end(boolean interrupted) {
lanceur.stop();
accumulateur.stop();
lanceur.lancer(0);
}
// Returns true when the command should end.
@Override
public boolean isFinished() {
return lanceur.distance()>1;
return false;
}
}

View File

@ -3,59 +3,41 @@
// the WPILib BSD license file in the root directory of this project.
package frc.robot.commands;
import frc.robot.subsystems.Accumulateur;
import edu.wpi.first.networktables.GenericEntry;
import edu.wpi.first.wpilibj2.command.CommandBase;
import frc.robot.subsystems.Lanceur;
public class Force5 extends CommandBase {
private Lanceur lanceur;
private Accumulateur accumulateur;
GenericEntry force5;
/** Creates a new Force1. */
public Force5(Lanceur lanceur,GenericEntry force5, Accumulateur accumulateur) {
/** Creates a new LancerTest. */
public Force5(Lanceur lanceur, GenericEntry force5) {
this.lanceur = lanceur;
addRequirements(lanceur, accumulateur);
this.force5 = force5;
this.accumulateur = accumulateur;
addRequirements(lanceur);
// Use addRequirements() here to declare subsystem dependencies.
}
// Called when the command is initially scheduled.
@Override
public void initialize() {
lanceur.setPID(0, 0, 0);
lanceur.setPID(0.000000000000075572, 0, 0);
}
// Called every time the scheduler runs while the command is scheduled.
@Override
public void execute() {
double vitesse = (500);
lanceur.lancer(force5.getDouble(500));
if (lanceur.vitesse() > vitesse ){
accumulateur.tourneavant();
accumulateur.tournearriere();
} else {
accumulateur.stop();
}
lanceur.lancer(0.5);
}
// Called once the command ends or is interrupted.
@Override
public void end(boolean interrupted) {
lanceur.stop();
accumulateur.stop();
lanceur.lancer(0);
}
// Returns true when the command should end.
@Override
public boolean isFinished() {
return lanceur.distance()>1;
return false;
}
}

View File

@ -3,58 +3,41 @@
// the WPILib BSD license file in the root directory of this project.
package frc.robot.commands;
import frc.robot.subsystems.Accumulateur;
import edu.wpi.first.networktables.GenericEntry;
import edu.wpi.first.wpilibj2.command.CommandBase;
import frc.robot.subsystems.Lanceur;
public class Force6 extends CommandBase {
private Lanceur lanceur;
private Accumulateur accumulateur;
GenericEntry force6;
/** Creates a new Force1. */
public Force6(Lanceur lanceur, GenericEntry force6, Accumulateur accumulateur) {
/** Creates a new LancerTest. */
public Force6(Lanceur lanceur, GenericEntry force6) {
this.lanceur = lanceur;
addRequirements(lanceur, accumulateur);
this.force6 = force6;
this.accumulateur = accumulateur;
addRequirements(lanceur);
// Use addRequirements() here to declare subsystem dependencies.
}
// Called when the command is initially scheduled.
@Override
public void initialize() {
lanceur.setPID(0, 0, 0);
lanceur.setPID(0.000000000000075572, 0, 0);
}
// Called every time the scheduler runs while the command is scheduled.
@Override
public void execute() {
double vitesse = (600);
lanceur.lancer(force6.getDouble(600));
if (lanceur.vitesse() > vitesse ){
accumulateur.tourneavant();
accumulateur.tournearriere();
} else {
accumulateur.stop();
}
lanceur.lancer(0.55);
}
// Called once the command ends or is interrupted.
@Override
public void end(boolean interrupted) {
lanceur.stop();
accumulateur.stop();
lanceur.lancer(0);
}
// Returns true when the command should end.
@Override
public boolean isFinished() {
return lanceur.distance()>1;
return false;
}
}

View File

@ -3,56 +3,41 @@
// the WPILib BSD license file in the root directory of this project.
package frc.robot.commands;
import frc.robot.subsystems.Accumulateur;
import edu.wpi.first.networktables.GenericEntry;
import edu.wpi.first.wpilibj2.command.CommandBase;
import frc.robot.subsystems.Lanceur;
public class Force7 extends CommandBase {
private Lanceur lanceur;
private Accumulateur accumulateur;
GenericEntry force7;
/** Creates a new Force1. */
public Force7(Lanceur lanceur,GenericEntry force7, Accumulateur accumulateur) {
/** Creates a new LancerTest. */
public Force7(Lanceur lanceur, GenericEntry force7) {
this.lanceur = lanceur;
addRequirements(lanceur, accumulateur);
this.force7 = force7;
this.accumulateur = accumulateur;
addRequirements(lanceur);
// Use addRequirements() here to declare subsystem dependencies.
}
// Called when the command is initially scheduled.
@Override
public void initialize() {
lanceur.setPID(0, 0, 0);
lanceur.setPID(0.000000000000075572, 0, 0);
}
// Called every time the scheduler runs while the command is scheduled.
@Override
public void execute() {
double vitesse = (700);
lanceur.lancer(force7.getDouble(700));
if (lanceur.vitesse() > vitesse ){
accumulateur.tourneavant();
accumulateur.tournearriere();
} else {
accumulateur.stop();
}
lanceur.lancer(0.6);
}
// Called once the command ends or is interrupted.
@Override
public void end(boolean interrupted) {
lanceur.stop();
accumulateur.stop();
lanceur.lancer(0);
}
// Returns true when the command should end.
@Override
public boolean isFinished() {
return lanceur.distance()>1;
return false;
}
}

View File

@ -0,0 +1,37 @@
// 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.wpilibj2.command.CommandBase;
import frc.robot.subsystems.Lanceur;
public class LanceurAuto extends CommandBase {
private Lanceur lanceur;
/** Creates a new LanceurAuto. */
public LanceurAuto(Lanceur lanceur) {
this.lanceur = lanceur;
// Use addRequirements() here to declare subsystem dependencies.
}
// Called when the command is initially scheduled.
@Override
public void initialize() {
lanceur.setPID(0, 0, 0);
}
// 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

@ -14,9 +14,18 @@ import edu.wpi.first.wpilibj.Filesystem;
import edu.wpi.first.wpilibj.shuffleboard.BuiltInLayouts;
import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard;
import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardLayout;
import com.revrobotics.CANSparkMax;
import com.revrobotics.CANSparkMaxLowLevel.MotorType;
import edu.wpi.first.math.geometry.Translation2d;
import edu.wpi.first.math.kinematics.SwerveModulePosition;
import edu.wpi.first.wpilibj.Filesystem;
import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard;
import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab;
import edu.wpi.first.wpilibj2.command.SubsystemBase;
import frc.robot.Constants;
import swervelib.SwerveDrive;
import swervelib.encoders.CanAndCoderSwerve;
import swervelib.parser.SwerveParser;
public class Drive extends SubsystemBase {
@ -31,7 +40,14 @@ public class Drive extends SubsystemBase {
.withPosition(3,0);
SwerveDrive swerveDrive;
File swerveJsonDirectory = new File(Filesystem.getDeployDirectory(),"swerve");
/* final CanAndCoderSwerve avantdroitdrive = new CanAndCoderSwerve(Constants.avantdroitDrive);
final CanAndCoderSwerve avantgauchedrive = new CanAndCoderSwerve(Constants.avantgaucheDrive);
final CanAndCoderSwerve arrieregauchedrive = new CanAndCoderSwerve(Constants.arrieregaucheDrive);
final CanAndCoderSwerve arrieredroitdrive = new CanAndCoderSwerve(Constants.arrieredroitDrive);
final CanAndCoderSwerve avantdroitangle = new CanAndCoderSwerve(Constants.avantdroitAngle);
final CanAndCoderSwerve avantgaucheangle = new CanAndCoderSwerve(Constants.avantgaucheAngle);
final CanAndCoderSwerve arrieregaucheangle = new CanAndCoderSwerve(Constants.arrieregaucheAngle);
final CanAndCoderSwerve arrieredroitangle = new CanAndCoderSwerve(Constants.arrieredroitAngle); */
public void drive(double x, double y, double zRotation){
swerveDrive.drive(new Translation2d(x, y), zRotation, false, false);
}
@ -56,6 +72,9 @@ public class Drive extends SubsystemBase {
public SwerveModulePosition[] distance(){
return swerveDrive.getModulePositions();
}
public void reset(){
}
@Override
public void periodic() {
// This method will be called once per scheduler run