Merge pull request #12 from FairportRobotics/ToDo2electricboogalo

Added commands and subsystem changes.
This commit is contained in:
TheRealGreydon 2026-03-10 20:49:10 -04:00 committed by GitHub
commit 1ef5896cd4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 25 additions and 11 deletions

View File

@ -10,19 +10,19 @@ These are the jobs to be completed first, to ensure we have minimal functionalit
- Update launcher wheel to a Neo/SparkMax X
- Define basic commands for manual fire mode
- Y/Top button: Deploy the intake (and run the rollers) (TO MAP)
- Y/Top button: Deploy the intake (and run the rollers) X
- Could be a single command
- Could be 2 commands in sequence
- B/Right button: Reverse the intake (TO MAP)
- B/Right button: Reverse the intake X
- Unclear if this should touch the deploy motor. ATM suggest leaving the deploy motor alone
- A/Bottom button: Retract the intake (and stop the rollers) (TO MAP)
- A/Bottom button: Retract the intake (and stop the rollers) X
- D-pad: Set deflector to pre-programmed angle
- Suggestion: Implement this once, and make the angle an member variable of the command (TO MAP)
- Suggestion: Implement this once, and make the angle an member variable of the command X
- Both Triggers: Spin up flywheel (if not already spun up) and then start the kicker.
- Both Triggers: Spin up flywheel (if not already spun up) and then start the kicker. X
- Re: Sensing flywheel speed
- Could be a time offset (i.e. wait for N seconds for the motor to spin up)
- Ideally, check the encoder speed (will need the encoders for auto launch)

View File

@ -83,6 +83,11 @@ public final class Constants {
public static final Angle LIMIT_ELEVATION_NEG = edu.wpi.first.units.Units.Degrees.of(0);
public static final double HOMING_SPEED = .35;
public static final double TURRET_GEAR_RATIO = 1;
public static final Angle DEFLECTOR_STORED_ANGLE = edu.wpi.first.units.Units.Degrees.of(0);
public static final Angle DEFLECTOR_SET_ANGLE1 = edu.wpi.first.units.Units.Degrees.of(20);
public static final Angle DEFLECTOR_SET_ANGLE2 = edu.wpi.first.units.Units.Degrees.of(40);
public static final Angle DEFLECTOR_SET_ANGLE3 = edu.wpi.first.units.Units.Degrees.of(60);
}
public static class HopperConstants {

View File

@ -4,12 +4,17 @@
package frc.robot;
import edu.wpi.first.units.Unit;
import edu.wpi.first.units.Units;
import edu.wpi.first.wpilibj2.command.Command;
import edu.wpi.first.wpilibj2.command.button.CommandXboxController;
import edu.wpi.first.wpilibj2.command.button.Trigger;
import frc.robot.Constants.OperatorConstants;
import frc.robot.commands.Autos;
import frc.robot.commands.ExampleCommand;
import frc.robot.commands.ManualHopperCommand;
import frc.robot.commands.ManualShootCommand;
import frc.robot.commands.SetDeflectorCommand;
import frc.robot.subsystems.DriveSubsystem;
import frc.robot.subsystems.ExampleSubsystem;
import frc.robot.subsystems.HopperSubsystem;
@ -57,13 +62,17 @@ public class RobotContainer {
* joysticks}.
*/
private void configureBindings() {
// Schedule `ExampleCommand` when `exampleCondition` changes to `true`
new Trigger(m_exampleSubsystem::exampleCondition)
.onTrue(new ExampleCommand(m_exampleSubsystem));
turretSubsystem.setDefaultCommand(new ManualShootCommand(turretSubsystem, m_driverController.getHID()));
hopperSubsystem.setDefaultCommand(new ManualHopperCommand(hopperSubsystem, m_driverController.getHID()));
// Schedule `exampleMethodCommand` when the Xbox controller's B button is pressed,
// cancelling on release.
// m_driverController.b().whileTrue(m_exampleSubsystem.exampleMethodCommand());
m_driverController.povDown().onTrue(new SetDeflectorCommand(turretSubsystem, Constants.ShooterConstants.DEFLECTOR_STORED_ANGLE));
m_driverController.povLeft().onTrue(new SetDeflectorCommand(turretSubsystem, Constants.ShooterConstants.DEFLECTOR_SET_ANGLE1));
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.y().onTrue(intakeSubsystem.deployCommand());
m_driverController.a().onTrue(intakeSubsystem.retractCommand());
m_driverController.b().onTrue(intakeSubsystem.reverseCommand());
}
/**