turret position cycle

This commit is contained in:
TheRealGrayden 2026-03-22 15:03:31 -04:00
parent 4f0f38a893
commit 942606ca1e
3 changed files with 18 additions and 14 deletions

@ -1 +1 @@
Subproject commit 30421c381aaa883745985b7852f90da5bc42b624 Subproject commit eea76939a3cbb76aba47874adf15eaf49a8333de

View File

@ -16,13 +16,11 @@ import edu.wpi.first.wpilibj2.command.button.CommandXboxController;
import edu.wpi.first.wpilibj2.command.button.Trigger; import edu.wpi.first.wpilibj2.command.button.Trigger;
import frc.robot.Constants.OperatorConstants; import frc.robot.Constants.OperatorConstants;
import frc.robot.commands.Autos; import frc.robot.commands.Autos;
import frc.robot.commands.ExampleCommand;
import frc.robot.commands.ManualHopperCommand; import frc.robot.commands.ManualHopperCommand;
import frc.robot.commands.ManualIntake; import frc.robot.commands.ManualIntake;
import frc.robot.commands.ManualShootCommand; import frc.robot.commands.ManualShootCommand;
import frc.robot.commands.SetDeflectorCommand; import frc.robot.commands.SetDeflectorCommand;
import frc.robot.subsystems.DriveSubsystem; import frc.robot.subsystems.DriveSubsystem;
import frc.robot.subsystems.ExampleSubsystem;
import frc.robot.subsystems.HopperSubsystem; import frc.robot.subsystems.HopperSubsystem;
import frc.robot.subsystems.IntakeSubsystem; import frc.robot.subsystems.IntakeSubsystem;
import frc.robot.subsystems.TurretSubsystem; import frc.robot.subsystems.TurretSubsystem;
@ -35,14 +33,14 @@ import frc.robot.subsystems.TurretSubsystem;
*/ */
public class RobotContainer { public class RobotContainer {
// The robot's subsystems and commands are defined here... // The robot's subsystems and commands are defined here...
private final ExampleSubsystem m_exampleSubsystem = new ExampleSubsystem();
// Replace with CommandPS4Controller or CommandJoystick if needed // Replace with CommandPS4Controller or CommandJoystick if needed
private final CommandXboxController m_driverController = private final CommandXboxController m_driverController =
new CommandXboxController(OperatorConstants.kDriverControllerPort); new CommandXboxController(OperatorConstants.kDriverControllerPort);
// private final CommandPS4Controller m_driverController = new CommandPS4Controller(OperatorConstants.kDriverControllerPort); // private final CommandPS4Controller m_driverController = new CommandPS4Controller(OperatorConstants.kDriverControllerPort);
private final SendableChooser<Command> autoChooser;
public final DriveSubsystem driveSubsystem = new DriveSubsystem(m_driverController); public final DriveSubsystem driveSubsystem = new DriveSubsystem(m_driverController);
public final IntakeSubsystem intakeSubsystem = new IntakeSubsystem(); public final IntakeSubsystem intakeSubsystem = new IntakeSubsystem();
@ -53,10 +51,11 @@ public class RobotContainer {
/** The container for the robot. Contains subsystems, OI devices, and commands. */ /** The container for the robot. Contains subsystems, OI devices, and commands. */
public RobotContainer() { public RobotContainer() {
autoChooser = AutoBuilder.buildAutoChooser();
SmartDashboard.putData("Auto Chooser", autoChooser);
// Configure the trigger bindings // Configure the trigger bindings
configureBindings(); configureBindings();
} }
/** /**
@ -68,6 +67,7 @@ public class RobotContainer {
* PS4} controllers or {@link edu.wpi.first.wpilibj2.command.button.CommandJoystick Flight * PS4} controllers or {@link edu.wpi.first.wpilibj2.command.button.CommandJoystick Flight
* joysticks}. * joysticks}.
*/ */
private void configureBindings() { private void configureBindings() {
turretSubsystem.setDefaultCommand(new ManualShootCommand(turretSubsystem, m_driverController.getHID())); turretSubsystem.setDefaultCommand(new ManualShootCommand(turretSubsystem, m_driverController.getHID()));
hopperSubsystem.setDefaultCommand(new ManualHopperCommand(hopperSubsystem, m_driverController.getHID())); hopperSubsystem.setDefaultCommand(new ManualHopperCommand(hopperSubsystem, m_driverController.getHID()));
@ -77,13 +77,8 @@ public class RobotContainer {
m_driverController.povRight().onTrue(new SetDeflectorCommand(turretSubsystem, Constants.ShooterConstants.DEFLECTOR_SET_ANGLE3)); m_driverController.povRight().onTrue(new SetDeflectorCommand(turretSubsystem, Constants.ShooterConstants.DEFLECTOR_SET_ANGLE3));
m_driverController.povUp().onTrue(new SetDeflectorCommand(turretSubsystem, Constants.ShooterConstants.DEFLECTOR_SET_ANGLE2)); m_driverController.povUp().onTrue(new SetDeflectorCommand(turretSubsystem, Constants.ShooterConstants.DEFLECTOR_SET_ANGLE2));
/*m_driverController.y().onTrue(intakeSubsystem.deployCommand());
m_driverController.a().onTrue(intakeSubsystem.retractCommand());
m_driverController.b().onTrue(intakeSubsystem.reverseCommand());*/
m_driverController.x().onTrue(intakeSubsystem.killSpeedCommand()); m_driverController.x().onTrue(intakeSubsystem.killSpeedCommand());
m_driverController.a().onTrue(intakeSubsystem.startSpeedCommand()); m_driverController.a().onTrue(intakeSubsystem.startSpeedCommand());
//m_driverController.b().onTrue(intakeSubsystem.revSpeedCommand());
intakeSubsystem.setDefaultCommand(new ManualIntake(intakeSubsystem, m_driverController.getHID())); intakeSubsystem.setDefaultCommand(new ManualIntake(intakeSubsystem, m_driverController.getHID()));
} }
@ -95,6 +90,6 @@ public class RobotContainer {
*/ */
public Command getAutonomousCommand() { public Command getAutonomousCommand() {
// An example command will be run in autonomous // An example command will be run in autonomous
return driveSubsystem.getAutoCommand(); return autoChooser.getSelected();
} }
} }

View File

@ -6,6 +6,10 @@ package frc.robot.subsystems;
import org.fairportrobotics.frc.posty.TestableSubsystem; import org.fairportrobotics.frc.posty.TestableSubsystem;
import com.ctre.phoenix6.controls.ControlRequest;
import com.ctre.phoenix6.controls.DutyCycleOut;
import com.ctre.phoenix6.controls.PositionDutyCycle;
import com.ctre.phoenix6.controls.VelocityDutyCycle;
import com.ctre.phoenix6.hardware.CANcoder; import com.ctre.phoenix6.hardware.CANcoder;
import com.ctre.phoenix6.hardware.TalonFX; import com.ctre.phoenix6.hardware.TalonFX;
import com.revrobotics.spark.SparkMax; import com.revrobotics.spark.SparkMax;
@ -17,6 +21,7 @@ import static org.fairportrobotics.frc.robolib.motors.Utils.*;
import edu.wpi.first.units.Units; import edu.wpi.first.units.Units;
import edu.wpi.first.units.measure.Angle; import edu.wpi.first.units.measure.Angle;
import edu.wpi.first.units.measure.Velocity;
import edu.wpi.first.wpilibj.DigitalInput; import edu.wpi.first.wpilibj.DigitalInput;
import edu.wpi.first.wpilibj.Servo; import edu.wpi.first.wpilibj.Servo;
@ -29,8 +34,7 @@ public class TurretSubsystem extends TestableSubsystem {
private TurretState currentState; private TurretState currentState;
private DigitalInput turretLimitSwitch; private DigitalInput turretLimitSwitch;
// TODO: Reinsert the turret once motor is installed private TalonFX turretMotor;
//private TalonFX turretMotor;
private SparkMax launcherMotor; private SparkMax launcherMotor;
private Servo hood; private Servo hood;
private Angle limitPos; private Angle limitPos;
@ -56,6 +60,11 @@ public class TurretSubsystem extends TestableSubsystem {
public void setLauncher(double speed) {launcherMotor.set(speed);} public void setLauncher(double speed) {launcherMotor.set(speed);}
public void turretControl(double position)
{
turretMotor.setControl(new PositionDutyCycle(position));
}
public void setTargetElevation(Angle elev) public void setTargetElevation(Angle elev)
{ {
if(Constants.ShooterConstants.HOOD_SERVO_INVERTED){ if(Constants.ShooterConstants.HOOD_SERVO_INVERTED){