dashboard + limitswitchs tourel

This commit is contained in:
Olivier Dubois 2024-11-25 18:32:18 -05:00
parent 899f8f3bf6
commit 03bf04f40e
7 changed files with 75 additions and 21 deletions

View File

@ -27,13 +27,16 @@ public class FollowAprilTag extends Command {
@Override
public void execute() {
if (lanceur.limitswitch1()){
if (enlignement.getv()==1)
}
else if(lanceur.limitswitch2()){
}
else if (enlignement.getv()==1)
{
lanceur.tourelRotation(0,0, enlignement.getx()/30);
}
if (lanceur.limitswitch1() || lanceur.limitswitch2()){
lanceur.lance(0);}
else
{
lanceur.tourelRotation(0, 0, 0);

View File

@ -29,9 +29,6 @@ public class Lancer extends Command {
lanceur.lance();
accumulateur.Petitlanceur(0.7);
accumulateur.desaccumule(0.2);
}
// Called once the command ends or is interrupted.
@Override

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.Commands;
import edu.wpi.first.wpilibj2.command.Command;
import frc.robot.Subsystems.Lanceur;
public class Tourel extends Command {
private Lanceur lanceur;
/** Creates a new Tourel. */
public Tourel(Lanceur lanceur) {
this.lanceur = lanceur;
// 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(lanceur.limitswitch1()){
lanceur.touchagedelimitswitch1(0);
}
else if(lanceur.limitswitch2()){
lanceur.touchagedelimitswitch2(0);
}
}
// 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

@ -28,11 +28,11 @@ public class RobotContainer {
CommandXboxController manette = new CommandXboxController(0);
public RobotContainer() {
dashboard.addCamera("limelight3G", "limelight3G","limelight.local:5800")
.withSize(4,3)
.withPosition(0,0);
.withSize(3,3)
.withPosition(5,0);
dashboard.addCamera("limelight3", "limelight3","limelight.local:5800")
.withSize(4,3)
.withPosition(4,0);
.withSize(3,3)
.withPosition(2,0);
configureBindings();
drive.setDefaultCommand(new RunCommand(()->{
drive.drive(-MathUtil.applyDeadband(manette.getRightX(),0.2), MathUtil.applyDeadband(-manette.getRightY(),0.2), MathUtil.applyDeadband(-manette.getRightX(), 0.2));

View File

@ -13,14 +13,14 @@ public class Accumulateur extends SubsystemBase {
/** Creates a new Accumulateur. */
public Accumulateur() {dashboard.addBoolean("photocell", this::photocell).withSize(1, 1).withPosition(0, 1);
dashboard.addBoolean("photocell2", this::photocell).withSize(1, 1).withPosition(0, 1);
dashboard.addBoolean("photocell2", this::photocell).withSize(1, 1).withPosition(1, 1);
}
ShuffleboardTab dashboard = Shuffleboard.getTab("dashboard");
private GenericEntry vitesse =
dashboard.add("vitesseacc", 0.1)
.withSize(1, 1)
.withPosition(0, 4)
.withPosition(0, 0)
.getEntry();
final WPI_TalonSRX strap = new WPI_TalonSRX(0);

View File

@ -21,20 +21,25 @@ import edu.wpi.first.wpilibj2.command.SubsystemBase;
public class Lanceur extends SubsystemBase {
/** Creates a new Lanceur. */
public Lanceur() {dashboard.add("rottourel", 0.2)
.withSize(0,0)
.withPosition(1, 3);}
public Lanceur() {
dashboard.addBoolean("limitswitch1", this::limitswitch1)
.withSize(0,0).withPosition(1,2);
dashboard.addBoolean("limitswitch2", this::limitswitch2)
.withSize(0,0).withPosition(0,3);
dashboard.addDouble("rottourel", this::distancetourel)
.withSize(0,0).withPosition(1, 0);
}
ShuffleboardTab dashboard = Shuffleboard.getTab("dashboard");
final WPI_TalonSRX lanceur1 = new WPI_TalonSRX(0);
final WPI_TalonSRX lanceur2 = new WPI_TalonSRX(1);
final CANSparkMax tourelle = new CANSparkMax(2, MotorType.kBrushed);
final CANSparkMax tourelle = new CANSparkMax(2, MotorType.kBrushless);
final DigitalInput limitswitch1 = new DigitalInput(0);
final DigitalInput limitswitch2 = new DigitalInput(1);
private GenericEntry vitesse =
dashboard.add("vitesselanceur", 0.2)
.withSize(0,0)
.withPosition(0, 3)
.withPosition(0, 2)
.getEntry();
public void encodeur(double distance){
@ -42,7 +47,12 @@ public class Lanceur extends SubsystemBase {
lanceur2.configSelectedFeedbackSensor(FeedbackDevice.CTRE_MagEncoder_Relative);
lanceur1.setStatusFramePeriod(StatusFrameEnhanced.Status_2_Feedback0, 1);
}
public void touchagedelimitswitch1(double distance){
tourelle.getEncoder().setPosition(distance);
}
public void touchagedelimitswitch2(double distance){
tourelle.getEncoder().setPosition(distance);
}
public void masterslave(){
lanceur2.follow(lanceur1);
lanceur2.setInverted(true);
@ -58,10 +68,10 @@ public class Lanceur extends SubsystemBase {
}
public double vitessetourel(){
return(tourelle.getEncoder().getVelocity());
return (tourelle.getEncoder().getVelocity());
}
public double distancetourel(){
return(tourelle.getEncoder().getPosition());
return (tourelle.getEncoder().getPosition());
}
public void PIDlanceur(double p, double i, double d) {
lanceur1.config_kP(0, p);

View File

@ -21,8 +21,10 @@ public class Limelight3G extends SubsystemBase {
NetworkTableEntry tv = table.getEntry("tv");
NetworkTableEntry camMode = table.getEntry("camMode");
NetworkTableEntry tid = table.getEntry("tid");
/** Creates a new Limelight. */
public Limelight3G() {
dashboard.addDouble("tv", this::getv).withSize(0, 0).withPosition(1,3);
for (int port = 5800; port <= 5807; port++) {
PortForwarder.add(port, "limelight.local", port);
}}