Skip to content

Commit d14b66d

Browse files
committed
buncha changes
1 parent 9d42e79 commit d14b66d

2 files changed

Lines changed: 58 additions & 29 deletions

File tree

src/main/java/frc/robot/subsystems/dropper/DropperConstants.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@
55
public class DropperConstants {
66

77
public static Constraints kDropperConstraints;
8+
9+
public static final int LEFT_DROPPER_MOTOR_ID = 0;
10+
public static final int RIGHT_DROPPER_MOTOR_ID = 0;
11+
812
public static final double UPPER_LIMIT = 1;
913
public static final double LOWER_LIMIT = -1;
10-
11-
public static final int LEFT_MOTOR_ID = 0;
12-
public static final int RIGHT_MOTOR_ID = 0;
14+
public static final double PI = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679; // 100 digits of pi just cuz
1315

1416

1517
}

src/main/java/frc/robot/subsystems/dropper/DropperIOSparkMax.java

Lines changed: 53 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,70 +2,72 @@
22

33
import static frc.robot.Constants.NEO_CURRENT_LIMIT;
44

5+
import com.fasterxml.jackson.databind.ser.std.StdKeySerializers.Default;
56
import com.revrobotics.RelativeEncoder;
67
import com.revrobotics.servohub.ServoHub.ResetMode;
78
import com.revrobotics.spark.SparkBase.PersistMode;
8-
import com.revrobotics.spark.SparkFlex;
99
import com.revrobotics.spark.SparkLowLevel.MotorType;
10-
import com.revrobotics.spark.config.SparkFlexConfig;
10+
import com.revrobotics.spark.config.SparkMaxConfig;
1111
import com.revrobotics.spark.config.SparkBaseConfig.IdleMode;
12-
12+
import com.revrobotics.spark.SparkMax;
13+
import edu.wpi.first.math.controller.PIDController;
1314
import edu.wpi.first.math.controller.ProfiledPIDController;
15+
import edu.wpi.first.math.trajectory.TrapezoidProfile;
1416
import edu.wpi.first.math.util.Units;
1517
import edu.wpi.first.units.measure.Angle;
1618

1719
public class DropperIOSparkMax implements DropperIO {
1820

1921
private ProfiledPIDController controller = new ProfiledPIDController(0, 0, 0, new TrapezoidProfile(-12, 12));
20-
private SparkFlex rightMotor;
22+
private SparkMax rightMotor; //changed from spark flex to can spark max cuz
2123
private RelativeEncoder rightEncoder;
22-
private SparkFlex leftMotor;
24+
private SparkMax leftMotor;
2325
private RelativeEncoder leftEncoder;
26+
private final ProfiledPIDController pidController;
27+
private double pi = DropperConstants.PI;
2428

2529
public DropperIOSparkMax() {
2630
//motors
27-
leftMotor = new SparkFlex(DropperConstants.blank, MotorType.kBrushless);//make a constant for motor id and ask the type of motor
28-
rightMotor = new SparkFlex(DropperConstants.blankmotorid, MotorType.kBrushless);
31+
leftMotor = new SparkMax(DropperConstants.LEFT_DROPPER_MOTOR_ID, MotorType.kBrushless);//ask the type of motor
32+
rightMotor = new SparkMax(DropperConstants.RIGHT_DROPPER_MOTOR_ID, MotorType.kBrushless);
33+
34+
rightMotor.follow(leftMotor, false);
2935

3036
leftEncoder = leftMotor.getEncoder();
3137
rightEncoder = rightMotor.getEncoder();
3238

33-
SparkFlexConfig configLeft = new SparkFlexConfig();
39+
SparkMaxConfig configLeft = new SparkMaxConfig();
3440
configLeft
3541
.idleMode(IdleMode.kBrake)
3642
.voltageCompensation(12)
3743
.smartCurrentLimit(NEO_CURRENT_LIMIT)
3844
.inverted(true);
3945

40-
leftMotor.configure(configLeft, ResetMode.kResetSafeParameters, PersistMode.kPersistParameters);
41-
42-
SparkFlexConfig configRight = new SparkFlexConfig();
43-
configRight
44-
.idleMode(IdleMode.kBrake)
45-
.voltageCompensation(12)
46-
.smartCurrentLimit(NEO_CURRENT_LIMIT)
47-
.inverted(false);
48-
rightMotor.configure(configLeft, ResetMode.kResetSafeParameters, PersistMode.kPersistParameters);
46+
leftMotor.configure(configLeft, ResetMode.kResetSafeParameters, PersistMode.kPersistParameters);
4947
}
5048
//methods from IO
5149

5250
@Override
5351

54-
public void updateInputs(DropperIOInputs inputs){
55-
//do later im lazy
52+
public void updateInputs(DropperIOInputs inputs){ //update the imputs form io
53+
inputs.appliedVoltage = leftMotor.getAppliedOutput() * leftMotor.getBusVoltage();
54+
inputs.angVelocityRadsPerSec = leftEncoder.getVelocity() * 2 * pi / 60; // in rotations so radians per sec converted
55+
inputs.angleRads = leftEncoder.getPosition() * 2 * pi;
56+
inputs.angle = leftEncoder.getPosition() * 360;
57+
inputs.velocity = leftEncoder.getVelocity();
5658
}
5759

5860
@Override //not sure if there is one of these for each motor or not
5961

6062
public double getAngle(){
61-
return leftEncoder.getPosition() * 6.28; //its just two pi make a pi constant later
63+
return leftEncoder.getPosition() * 2 * pi; //its just gets the rotations and convers to angle using two pi make a pi constant later
6264
}
6365

6466
@Override
6567

6668
public double getAngVelocity(){
6769
double rpm = leftEncoder.getVelocity();//in rotations per min i think so convert
68-
double rps = rpm * 6.28 / 60; //radians per second (its just 2pi divide by 60)
70+
double rps = rpm * 2 * pi / 60; //radians per second (its just 2pi divide by 60)
6971
return rps;
7072
}
7173

@@ -77,7 +79,19 @@ public void setVoltage(double voltage) {
7779

7880
@Override
7981

80-
public void setPosition(){
82+
public void setPosition(int position){
83+
leftEncoder.setPosition(position);
84+
}
85+
86+
@Override
87+
public void setSetpoint(double setpoint){
88+
pidController.setGoal(setpoint);
89+
pidController.reset(getAngle(), getAngVelocity());
90+
91+
}
92+
93+
@Override
94+
public void goToSetpoint(){
8195

8296
}
8397

@@ -89,15 +103,26 @@ public void stop(){
89103
}
90104

91105
//PID
92-
106+
107+
@Override
93108
public void setPIDGains(double kp, ki, kd){
94109
velocityPID.setP(kp);//idek
95110
velocityPID.setI(ki);
96-
velocityPID.setD(kd);
111+
velocityPID.setD(kd);
97112
}
98113

99-
100-
114+
@Override
115+
public default double getP(){
116+
return pidController.getP();
117+
}
118+
@Override
119+
public default double getI(){
120+
return pidController.getI();
121+
}
122+
@Override
123+
public default double getD(){
124+
return pidController.getD();
125+
}
101126
}
102127

103128
/*
@@ -112,4 +137,6 @@ public default void setPIDGains(double kp, ki, kd) {}
112137
public default double getP() {}
113138
public default double getI() {}
114139
public default double getD() {}
140+
141+
115142
*/

0 commit comments

Comments
 (0)