Skip to content

Commit 7da3ba3

Browse files
adjuste pid, make speed tunable
1 parent e6b2293 commit 7da3ba3

1 file changed

Lines changed: 23 additions & 16 deletions

File tree

‎src/main/java/org/team340/robot/subsystems/Shootake.java‎

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,38 +10,45 @@
1010
import com.revrobotics.spark.SparkBase.ControlType;
1111
import com.revrobotics.spark.SparkClosedLoopController;
1212
import com.revrobotics.spark.SparkLowLevel.MotorType;
13+
import com.revrobotics.spark.SparkMax;
1314
import com.revrobotics.spark.config.SparkBaseConfig;
1415
import com.revrobotics.spark.config.SparkBaseConfig.IdleMode;
1516
import com.revrobotics.spark.config.SparkMaxConfig;
16-
import com.revrobotics.spark.SparkMax;
1717
import edu.wpi.first.wpilibj2.command.Command;
18+
import org.team340.lib.tunable.TunableTable;
19+
import org.team340.lib.tunable.Tunables;
20+
import org.team340.lib.tunable.Tunables.TunableDouble;
1821
import org.team340.lib.util.command.GRRSubsystem;
1922
import org.team340.robot.Constants.RobotMap;
2023

2124
public class Shootake extends GRRSubsystem {
2225

2326
private final SparkMax hopper;
2427
private final SparkMax shooter;
28+
29+
private static final TunableTable tunables = Tunables.getNested("shooter");
30+
private static final TunableDouble shootingSpeed = tunables.value("velocity", 2000.0);
2531
SparkClosedLoopController shooterController;
32+
2633
/** Creates a new Shootake. */
2734
public Shootake() {
2835
hopper = new SparkMax(RobotMap.HOPPER_MOTOR, MotorType.kBrushless);
2936
shooter = new SparkMax(RobotMap.INTAKE_SHOOTER_MOTOR, MotorType.kBrushless);
3037
SparkBaseConfig shooterConfig = new SparkMaxConfig();
31-
shooterConfig.voltageCompensation(12)
32-
.idleMode(IdleMode.kCoast)
33-
.closedLoop
34-
.feedbackSensor(FeedbackSensor.kPrimaryEncoder)
35-
.pid(0.01, 0, 0)
36-
.feedForward.kS(0.0)
37-
.kV(.13);
38+
shooterConfig
39+
.voltageCompensation(12)
40+
.idleMode(IdleMode.kCoast)
41+
.closedLoop.feedbackSensor(FeedbackSensor.kPrimaryEncoder)
42+
.pid(0.01, 0, 0)
43+
.feedForward.kS(0.0)
44+
.kV(.13);
3845
shooterConfig.encoder
39-
.positionConversionFactor(1.0)
40-
.velocityConversionFactor(1.0 / 60.0)
41-
.uvwMeasurementPeriod(16)
42-
.uvwAverageDepth(2);
43-
hopperConfig.voltageCompensation(12)
44-
.idleMode(IdleMode.kBrake)
46+
.positionConversionFactor(1.0)
47+
.velocityConversionFactor(1.0)
48+
.uvwMeasurementPeriod(16)
49+
.uvwAverageDepth(2);
50+
SparkBaseConfig hopperConfig = new SparkMaxConfig();
51+
hopperConfig.voltageCompensation(12).idleMode(IdleMode.kBrake);
4552
shooter.configure(shooterConfig, ResetMode.kNoResetSafeParameters, PersistMode.kPersistParameters);
4653
shooterController = shooter.getClosedLoopController();
4754
}
@@ -78,13 +85,13 @@ public Command barf() {
7885
public Command shoot() {
7986
return commandBuilder()
8087
.onExecute(() -> {
81-
shooterController.setSetpoint(2, ControlType.kVelocity);
88+
shooterController.setSetpoint(shootingSpeed.getAsDouble(), ControlType.kVelocity);
8289
})
8390
.withTimeout(.5)
8491
.andThen(
8592
commandBuilder()
8693
.onExecute(() -> {
87-
shooterController.setSetpoint(2, ControlType.kVelocity);
94+
shooterController.setSetpoint(shootingSpeed.getAsDouble(), ControlType.kVelocity);
8895
hopper.set(-1);
8996
})
9097
.onEnd(() -> {

0 commit comments

Comments
 (0)