Skip to content

Commit fc410f4

Browse files
committed
Merge branch 'master' into usb_vision
2 parents 6e07d08 + 88167a1 commit fc410f4

3 files changed

Lines changed: 31 additions & 13 deletions

File tree

src/main/java/frc/robot/Constants.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -318,9 +318,10 @@ public class CanIDs {
318318
public static final int INTAKE_FRONT_ROLLERS_CAN_ID = 8;
319319
public static final int INTAKE_BACK_ROLLERS_CAN_ID = 9;
320320
public static final int INTAKE_EXTENDER_CAN_ID = 10;
321-
public static final int HOPPER_CAN_ID = 11;
322-
public static final int SHOOTER_LEAD_CAN_ID = 12;
323-
public static final int SHOOTER_FOLLOW_CAN_ID = 13;
321+
public static final int HOPPER_LEAD_CAN_ID = 11;
322+
public static final int HOPPER_FOLLOW_CAN_ID = 12;
323+
public static final int SHOOTER_LEAD_CAN_ID = 13;
324+
public static final int SHOOTER_FOLLOW_CAN_ID = 14;
324325
}
325326

326327
public class FieldConstants {

src/main/java/frc/robot/subsystems/hopper/Hopper.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
package frc.robot.subsystems.hopper;
66

7+
import com.revrobotics.spark.SparkBase.PersistMode;
8+
import com.revrobotics.spark.SparkBase.ResetMode;
79
import com.revrobotics.spark.config.SparkBaseConfig.IdleMode;
810
import edu.wpi.first.units.Units;
911
import edu.wpi.first.units.measure.AngularVelocity;
@@ -17,6 +19,8 @@
1719
import frc.robot.Constants;
1820
import frc.robot.Constants.HopperConstants;
1921
import frc.robot.Constants.Mode;
22+
import frc.robot.Constants.ShooterConstants;
23+
2024
import org.littletonrobotics.junction.Logger;
2125

2226
public class Hopper extends SubsystemBase {

src/main/java/frc/robot/subsystems/hopper/HopperIOReal.java

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,34 +13,45 @@
1313
import edu.wpi.first.units.measure.AngularVelocity;
1414
import frc.robot.Constants;
1515
import frc.robot.Constants.HopperConstants;
16+
import frc.robot.Constants.ShooterConstants;
1617

1718
public class HopperIOReal implements HopperIO {
1819

19-
private final SparkFlex motor =
20-
new SparkFlex(Constants.CanIDs.HOPPER_CAN_ID, MotorType.kBrushless);
20+
private final SparkFlex leadMotor =
21+
new SparkFlex(Constants.CanIDs.HOPPER_LEAD_CAN_ID, MotorType.kBrushless);
22+
private final SparkFlex followMotor =
23+
new SparkFlex(Constants.CanIDs.HOPPER_FOLLOW_CAN_ID, MotorType.kBrushless);
2124
private SparkFlexConfig config = Constants.ElevatorConstants.MOTOR_CONFIG();
2225

23-
private final RelativeEncoder encoder = motor.getEncoder();
26+
private final RelativeEncoder encoder = leadMotor.getEncoder();
27+
28+
private final SparkFlexConfig followConfig = new SparkFlexConfig();
2429

2530
// private final VL6180 timeOfFlight = new VL6180(Port.kOnboard);
2631

32+
public HopperIOReal(){
33+
followConfig.follow(leadMotor, ShooterConstants.FOLLOW_INVERT);
34+
followMotor.configure(
35+
followConfig, ResetMode.kResetSafeParameters, PersistMode.kPersistParameters);
36+
}
37+
2738
@Override
2839
public void updateInputs(HopperInputs inputs) {
2940
inputs.velocityRPM = encoder.getVelocity();
30-
inputs.appliedOutput = motor.getAppliedOutput();
31-
inputs.currentAmps = motor.getOutputCurrent();
32-
inputs.tempCelsius = motor.getMotorTemperature();
41+
inputs.appliedOutput = leadMotor.getAppliedOutput();
42+
inputs.currentAmps = leadMotor.getOutputCurrent();
43+
inputs.tempCelsius = leadMotor.getMotorTemperature();
3344
// inputs.tofDistanceInches = timeOfFlight.getDistance().in(Units.Inches);
3445
}
3546

3647
@Override
3748
public void setVoltage(double volts) {
38-
motor.setVoltage(volts);
49+
leadMotor.setVoltage(volts);
3950
}
4051

4152
@Override
4253
public void setVel(AngularVelocity angle) {
43-
motor
54+
leadMotor
4455
.getClosedLoopController()
4556
.setReference(
4657
angle.in(Units.RPM) / HopperConstants.GEAR_RATIO,
@@ -51,13 +62,15 @@ public void setVel(AngularVelocity angle) {
5162
public void configMotor(double kV, double kP, double maxAcceleration) {
5263
config.closedLoop.pidf(kP, 0, 0, kV);
5364
config.closedLoop.maxMotion.maxAcceleration(maxAcceleration);
54-
motor.configure(config, ResetMode.kResetSafeParameters, PersistMode.kPersistParameters);
65+
leadMotor.configure(config, ResetMode.kResetSafeParameters, PersistMode.kPersistParameters);
5566
}
5667

5768
@Override
5869
public boolean setIdleMode(IdleMode value) {
5970
config.idleMode(value);
60-
return motor.configure(config, ResetMode.kResetSafeParameters, PersistMode.kPersistParameters)
71+
followConfig.idleMode(value);
72+
return leadMotor.configure(config, ResetMode.kResetSafeParameters, PersistMode.kPersistParameters)
73+
== REVLibError.kOk && followMotor.configure(followConfig, ResetMode.kResetSafeParameters, PersistMode.kPersistParameters)
6174
== REVLibError.kOk;
6275
}
6376
}

0 commit comments

Comments
 (0)