Skip to content
This repository was archived by the owner on Nov 24, 2024. It is now read-only.

Commit 3fb3868

Browse files
committed
2 parents c6670e3 + d983f4c commit 3fb3868

File tree

3 files changed

+47
-24
lines changed

3 files changed

+47
-24
lines changed

src/main/java/frc/robot/subsystems/climb/ClimbConstants.java

+17-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
public final class ClimbConstants {
1515

1616
public static final int kLeftClimbMotorID = 18;
17+
public static final int kRightClimbMotorID = 17;
1718
public static final double gearRatio = 20; // needs to be tuned
1819

1920
public static final double kClimbUpPosition = 150 / 20;
@@ -29,7 +30,22 @@ public final class ClimbConstants {
2930
public static double updateFrequency;
3031
public static boolean kUseMotionMagic = false;
3132

32-
public static final TalonFXConfiguration motorConfig =
33+
public static final TalonFXConfiguration leftClimbConfig =
34+
new TalonFXConfiguration()
35+
.withSlot0(new Slot0Configs().withKS(0).withKV(0).withKP(1).withKI(0).withKD(0))
36+
.withMotorOutput(
37+
new MotorOutputConfigs()
38+
.withNeutralMode(NeutralModeValue.Brake)
39+
.withInverted(InvertedValue.Clockwise_Positive))
40+
.withMotionMagic(
41+
new MotionMagicConfigs()
42+
.withMotionMagicAcceleration(400)
43+
.withMotionMagicCruiseVelocity(100))
44+
.withCurrentLimits(
45+
new CurrentLimitsConfigs()
46+
.withStatorCurrentLimitEnable(true)
47+
.withStatorCurrentLimit(60));
48+
public static final TalonFXConfiguration righClimbConfig =
3349
new TalonFXConfiguration()
3450
.withSlot0(new Slot0Configs().withKS(0).withKV(0).withKP(1).withKI(0).withKD(0))
3551
.withMotorOutput(

src/main/java/frc/robot/subsystems/climb/ClimbIOTalonFX.java

+29-22
Original file line numberDiff line numberDiff line change
@@ -9,34 +9,40 @@
99

1010
import com.ctre.phoenix6.BaseStatusSignal;
1111
import com.ctre.phoenix6.StatusSignal;
12-
import com.ctre.phoenix6.controls.MotionMagicVoltage;
13-
import com.ctre.phoenix6.controls.NeutralOut;
14-
import com.ctre.phoenix6.controls.PositionVoltage;
15-
import com.ctre.phoenix6.controls.VoltageOut;
12+
import com.ctre.phoenix6.controls.*;
1613
import com.ctre.phoenix6.hardware.TalonFX;
1714
import frc.robot.utils.PhoenixUtil;
1815
import frc.robot.utils.TalonUtil;
1916

2017
public class ClimbIOTalonFX implements ClimbIO {
2118

22-
private final TalonFX climbMotor = new TalonFX(ClimbConstants.kLeftClimbMotorID);
19+
private final TalonFX leftClimbMotor = new TalonFX(ClimbConstants.kLeftClimbMotorID);
2320
private final PositionVoltage positionRequest = new PositionVoltage(0).withSlot(0);
2421
private final MotionMagicVoltage motionMagicRequest = new MotionMagicVoltage(0).withSlot(0);
2522
private final VoltageOut voltageReq = new VoltageOut(0);
2623

27-
private final StatusSignal<Double> climbMotorVoltage = climbMotor.getMotorVoltage();
28-
private final StatusSignal<Double> climbMotorVelocity = climbMotor.getVelocity();
29-
private final StatusSignal<Double> climbMotorPosition = climbMotor.getPosition();
30-
private final StatusSignal<Double> climbMotorStatorCurrent = climbMotor.getStatorCurrent();
31-
private final StatusSignal<Double> climbMotorSupplyCurrent = climbMotor.getSupplyCurrent();
32-
private final StatusSignal<Double> climbMotorTemperature = climbMotor.getDeviceTemp();
24+
private final StatusSignal<Double> climbMotorVoltage = leftClimbMotor.getMotorVoltage();
25+
private final StatusSignal<Double> climbMotorVelocity = leftClimbMotor.getVelocity();
26+
private final StatusSignal<Double> climbMotorPosition = leftClimbMotor.getPosition();
27+
private final StatusSignal<Double> climbMotorStatorCurrent = leftClimbMotor.getStatorCurrent();
28+
private final StatusSignal<Double> climbMotorSupplyCurrent = leftClimbMotor.getSupplyCurrent();
29+
private final StatusSignal<Double> climbMotorTemperature = leftClimbMotor.getDeviceTemp();
3330
private final StatusSignal<Double> climbMotorReferenceSlope =
34-
climbMotor.getClosedLoopReferenceSlope();
31+
leftClimbMotor.getClosedLoopReferenceSlope();
32+
33+
private final TalonFX rightClimbMotor = new TalonFX(ClimbConstants.kRightClimbMotorID);
34+
35+
private final Follower rightClimbFollowReq = new Follower(leftClimbMotor.getDeviceID(), false);
3536

3637
public ClimbIOTalonFX() {
37-
var motorConfig = ClimbConstants.motorConfig;
38-
PhoenixUtil.checkErrorAndRetry(() -> climbMotor.getConfigurator().refresh(motorConfig));
39-
TalonUtil.applyAndCheckConfiguration(climbMotor, motorConfig);
38+
var leftClimbConfig = ClimbConstants.leftClimbConfig;
39+
PhoenixUtil.checkErrorAndRetry(() -> leftClimbMotor.getConfigurator().refresh(leftClimbConfig));
40+
TalonUtil.applyAndCheckConfiguration(leftClimbMotor, leftClimbConfig);
41+
42+
var rightClimbConfig = ClimbConstants.righClimbConfig;
43+
PhoenixUtil.checkErrorAndRetry(
44+
() -> rightClimbMotor.getConfigurator().refresh(rightClimbConfig));
45+
TalonUtil.applyAndCheckConfiguration(rightClimbMotor, rightClimbConfig);
4046

4147
BaseStatusSignal.setUpdateFrequencyForAll(
4248
ClimbConstants.updateFrequency,
@@ -47,7 +53,8 @@ public ClimbIOTalonFX() {
4753
climbMotorSupplyCurrent,
4854
climbMotorTemperature,
4955
climbMotorReferenceSlope);
50-
climbMotor.optimizeBusUtilization();
56+
leftClimbMotor.optimizeBusUtilization();
57+
rightClimbMotor.setControl(rightClimbFollowReq);
5158
}
5259

5360
@Override
@@ -72,30 +79,30 @@ public void updateInputs(ClimbIOInputs inputs) {
7279
@Override
7380
public void setPosition(double position) {
7481
if (ClimbConstants.kUseMotionMagic) {
75-
climbMotor.setControl(motionMagicRequest.withPosition(position));
82+
leftClimbMotor.setControl(motionMagicRequest.withPosition(position));
7683
} else {
77-
climbMotor.setControl(positionRequest.withPosition(position));
84+
leftClimbMotor.setControl(positionRequest.withPosition(position));
7885
}
7986
}
8087

8188
@Override
8289
public void setVoltage(double voltage) {
83-
climbMotor.setVoltage(voltage);
90+
leftClimbMotor.setVoltage(voltage);
8491
}
8592

8693
@Override
8794
public void off() {
88-
climbMotor.setControl(new NeutralOut());
95+
leftClimbMotor.setControl(new NeutralOut());
8996
}
9097

9198
@Override
9299
public void zero() {
93-
climbMotor.setPosition(0);
100+
leftClimbMotor.setPosition(0);
94101
}
95102

96103
@Override
97104
public TalonFX getMotor() {
98-
return climbMotor;
105+
return leftClimbMotor;
99106
}
100107

101108
@Override

src/main/java/frc/robot/subsystems/intake/IntakeConstants.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
public final class IntakeConstants {
1515
/* CAN */
1616
public static final int kIntakeMotorID = 33;
17-
public static final int kSecondaryIntakeMotorID = 999;
17+
public static final int kSecondaryIntakeMotorID = 37;
1818

1919
public static final double kPassthroughIntakeVoltage = -8;
2020
public static final double kIntakeIntakeVoltage = 12;

0 commit comments

Comments
 (0)