diff --git a/simgui-ds.json b/simgui-ds.json new file mode 100644 index 0000000..b16ea5c --- /dev/null +++ b/simgui-ds.json @@ -0,0 +1,101 @@ +{ + "keyboardJoysticks": [ + { + "axisConfig": [ + { + "decKey": 65, + "incKey": 68 + }, + { + "decKey": 87, + "incKey": 83 + }, + { + "decKey": 69, + "decayRate": 0.0, + "incKey": 82, + "keyRate": 0.009999999776482582 + } + ], + "axisCount": 3, + "buttonCount": 4, + "buttonKeys": [ + 90, + 88, + 67, + 86 + ], + "povConfig": [ + { + "key0": 328, + "key135": 323, + "key180": 322, + "key225": 321, + "key270": 324, + "key315": 327, + "key45": 329, + "key90": 326 + } + ], + "povCount": 1 + }, + { + "axisConfig": [ + { + "decKey": 74, + "incKey": 76 + }, + { + "decKey": 73, + "incKey": 75 + } + ], + "axisCount": 2, + "buttonCount": 4, + "buttonKeys": [ + 77, + 44, + 46, + 47 + ], + "povCount": 0 + }, + { + "axisConfig": [ + { + "decKey": 263, + "incKey": 262 + }, + { + "decKey": 265, + "incKey": 264 + } + ], + "axisCount": 2, + "buttonCount": 6, + "buttonKeys": [ + 260, + 268, + 266, + 261, + 269, + 267 + ], + "povCount": 0 + }, + { + "axisCount": 0, + "buttonCount": 0, + "povCount": 0 + } + ], + "robotJoysticks": [ + { + "useGamepad": true + }, + { + "guid": "78696e70757401000000000000000000", + "useGamepad": true + } + ] +} diff --git a/simgui.json b/simgui.json new file mode 100644 index 0000000..72aab8f --- /dev/null +++ b/simgui.json @@ -0,0 +1,34 @@ +{ + "HALProvider": { + "Other Devices": { + "SPARK MAX [10]": { + "header": { + "open": true + } + }, + "SPARK MAX [30]": { + "header": { + "open": true + } + }, + "SPARK MAX [31]": { + "header": { + "open": true + } + } + } + }, + "NTProvider": { + "types": { + "/FMSInfo": "FMSInfo", + "/LiveWindow/BoomBoom": "Subsystem", + "/LiveWindow/Hood": "Subsystem", + "/LiveWindow/LED": "Subsystem", + "/LiveWindow/SwerveDrive": "Subsystem", + "/LiveWindow/SwerveModule": "Subsystem", + "/LiveWindow/Turret": "Subsystem", + "/LiveWindow/Ungrouped/Scheduler": "Scheduler", + "/LiveWindow/Vision": "Subsystem" + } + } +} diff --git a/src/main/java/frc4388/robot/Constants.java b/src/main/java/frc4388/robot/Constants.java index 1b9b7a8..7edef00 100644 --- a/src/main/java/frc4388/robot/Constants.java +++ b/src/main/java/frc4388/robot/Constants.java @@ -94,9 +94,9 @@ public final class Constants { public static final SupplyCurrentLimitConfiguration SUPPLY_CURRENT_LIMIT_CONFIG = new SupplyCurrentLimitConfiguration(true, 60, 40, 0.5); public static final int SHOOTER_FALCON_LEFT_CAN_ID = 0; public static final int SHOOTER_FALCON_RIGHT_CAN_ID = 0; - public static final int SHOOTER_ROTATE_ID = 0; //"unknown value" //figure out later + public static final int SHOOTER_ROTATE_ID = 31; //"unknown value" //figure out later public static final int TURRET_RIGHT_SOFT_LIMIT = 0; //""// - public static final int TURRET_SPEED_MULTIPLIER = 0; //""// + public static final double TURRET_SPEED_MULTIPLIER = 0.1d; //""// public static final int DEGREES_PER_ROT = 0; //""// public static final int TURRET_MOTOR_POS_AT_ZERO_ROT = 0; //""// public static final int TURRET_MOTOR_ROTS_PER_ROT = 0; //""// @@ -105,7 +105,7 @@ public final class Constants { /* Turret Constants */ //ID - public static final int TURRET_MOTOR_CAN_ID = 0; + public static final int TURRET_MOTOR_CAN_ID = 30; public static final Gains SHOOTER_TURRET_GAINS = new Gains(0.6, 0.0, 0.0, 0.0, 0, 1.0); public static final Gains SHOOTER_ANGLE_GAINS = new Gains(0.05, 0.0, 0.0, 0.0, 0, 0.3); public static final double SHOOTER_TURRET_MIN = -1.0; diff --git a/src/main/java/frc4388/robot/RobotContainer.java b/src/main/java/frc4388/robot/RobotContainer.java index d72c42a..8dee4e3 100644 --- a/src/main/java/frc4388/robot/RobotContainer.java +++ b/src/main/java/frc4388/robot/RobotContainer.java @@ -73,11 +73,11 @@ public class RobotContainer { m_robotTurret.setDefaultCommand( new RunCommand(() -> m_robotTurret.runShooterWithInput(getOperatorController().getLeftXAxis()), m_robotTurret) - ); - + ); + // m_robotTurret.setDefaultCommand( + // new RunCommand(() -> m_robotTurret.aimToCenter())); + } - m_robotTurret.setDefaultCommand( - new RunCommand(() -> m_robotTurret.aimToCenter())); /** * Use this method to define your button->command mappings. Buttons can be * created by instantiating a {@link GenericHID} or one of its subclasses diff --git a/src/main/java/frc4388/robot/RobotMap.java b/src/main/java/frc4388/robot/RobotMap.java index d713cbe..a1ee217 100644 --- a/src/main/java/frc4388/robot/RobotMap.java +++ b/src/main/java/frc4388/robot/RobotMap.java @@ -6,6 +6,8 @@ package frc4388.robot; import com.ctre.phoenix.motorcontrol.can.WPI_TalonFX; import com.ctre.phoenix.sensors.CANCoder; +import com.revrobotics.CANSparkMax; +import com.revrobotics.CANSparkMaxLowLevel.MotorType; import edu.wpi.first.wpilibj.motorcontrol.Spark; import frc4388.robot.Constants.LEDConstants; @@ -97,7 +99,7 @@ public class RobotMap { /*Boom Boom Subsystem*/ public final WPI_TalonFX shooterFalconLeft = new WPI_TalonFX(ShooterConstants.SHOOTER_FALCON_LEFT_CAN_ID); public final WPI_TalonFX shooterFalconRight = new WPI_TalonFX(ShooterConstants.SHOOTER_FALCON_RIGHT_CAN_ID); - public final CANSparkMax shooterTurret = new CANSparkMax(ShooterConstants.SHOOTER_TURRET_CAN_ID); + public final CANSparkMax shooterTurret = new CANSparkMax(ShooterConstants.TURRET_MOTOR_CAN_ID, MotorType.kBrushless); //Create motor CANSparkMax void ConfigureShooterMotorControllers() { diff --git a/src/main/java/frc4388/robot/subsystems/BoomBoom.java b/src/main/java/frc4388/robot/subsystems/BoomBoom.java index 005abdc..5675e4b 100644 --- a/src/main/java/frc4388/robot/subsystems/BoomBoom.java +++ b/src/main/java/frc4388/robot/subsystems/BoomBoom.java @@ -4,6 +4,7 @@ package frc4388.robot.subsystems; +import java.io.Console; import java.util.Base64.Encoder; import com.ctre.phoenix.motorcontrol.NeutralMode; import com.ctre.phoenix.motorcontrol.TalonFXControlMode; @@ -24,6 +25,7 @@ public ShooterTables m_shooterTable; public static Gains m_drumShooterGains = ShooterConstants.DRUM_SHOOTER_GAINS; public static BoomBoom m_boomBoom; public static IHandController m_driverController; //not sure if driverController in 2022 = m_controller in 2020 +BangBangController m_controller = new BangBangController(); double velP; double input; @@ -124,11 +126,13 @@ public void setShooterGains() { m_shooterFalconLeft.set(TalonFXControlMode.Velocity, targetVel); //Init m_shooterFalconRight.follow(m_shooterFalconLeft); // New BoomBoom controller stuff - BangBangController controller = new BangBangController(); //Controls a motor with the output of the BangBang controller //Controls a motor with the output of the BangBang conroller and a feedforward //Shrinks the feedforward slightly to avoid over speeding the shooter m_shooterFalconLeft.set(controller.calculate(Encoder.getRate(), targetVel) + 0.9 * feedforward.calculate(targetVel)); + // m_shooterFalconLeft.set(controller.calculate(encoder.getRate(), targetVel) + 0.9 * feedforward.calculate(targetVel)); + m_shooterFalconLeft.set(m_controller.calculate(m_shooterFalconLeft.get(), targetVel)); + System.err.println(targetVel); } -} +} \ No newline at end of file diff --git a/src/main/java/frc4388/robot/subsystems/Turret.java b/src/main/java/frc4388/robot/subsystems/Turret.java index 0202c6d..0528c73 100644 --- a/src/main/java/frc4388/robot/subsystems/Turret.java +++ b/src/main/java/frc4388/robot/subsystems/Turret.java @@ -67,11 +67,11 @@ public class Turret extends SubsystemBase { @Override public void periodic() { - SmartDashboard.putNumber("Turret Angle Raw", getboomBoomRotatePosition()); + // SmartDashboard.putNumber("Turret Angle Raw", getboomBoomRotatePosition()); - SmartDashboard.putData("Turret Angle", (Sendable) m_turretGyro); + // SmartDashboard.putData("Turret Angle", (Sendable) m_turretGyro); - SmartDashboard.putBoolean("Turret Aimed", m_isAimReady); + // SmartDashboard.putBoolean("Turret Aimed", m_isAimReady); // This method will be called once per scheduler run }