Skip to content

Commit

Permalink
Add Feeder
Browse files Browse the repository at this point in the history
  • Loading branch information
suryatho committed Feb 10, 2024
1 parent 0bcb944 commit 64cfa03
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package org.littletonrobotics.frc2024.subsystems.superstructure.feeder;

import edu.wpi.first.wpilibj2.command.SubsystemBase;
import org.littletonrobotics.junction.Logger;

public class Feeder extends SubsystemBase {
private final FeederIO io;
private FeederIOInputsAutoLogged inputs = new FeederIOInputsAutoLogged();

public Feeder(FeederIO io) {
this.io = io;
}

@Override
public void periodic() {
io.updateInputs(inputs);
Logger.processInputs("Feeder", inputs);
}

public void runVolts(double volts) {
io.runVolts(volts);
}

public void stop() {
io.stop();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package org.littletonrobotics.frc2024.subsystems.superstructure.feeder;

import static org.littletonrobotics.frc2024.subsystems.superstructure.SuperstructureConstants.FeederConstants.*;

import com.revrobotics.CANSparkBase;
import com.revrobotics.CANSparkFlex;
import com.revrobotics.RelativeEncoder;
import edu.wpi.first.math.util.Units;

public class FeederIOSparkFlex implements FeederIO {
private final CANSparkFlex motor;
private final RelativeEncoder encoder;

public FeederIOSparkFlex() {
motor = new CANSparkFlex(id, CANSparkBase.MotorType.kBrushless);

motor.setInverted(inverted);
motor.setIdleMode(CANSparkBase.IdleMode.kBrake);

encoder = motor.getEncoder();
}

@Override
public void updateInputs(FeederIOInputs inputs) {
inputs.positionRads = Units.rotationsToRadians(encoder.getPosition()) / reduction;
inputs.velocityRadsPerSec =
Units.rotationsPerMinuteToRadiansPerSecond(encoder.getVelocity()) / reduction;
inputs.appliedVoltage = motor.getAppliedOutput() * motor.getBusVoltage();
inputs.outputCurrent = motor.getOutputCurrent();
}

@Override
public void runVolts(double volts) {
motor.setVoltage(volts);
}

@Override
public void stop() {
motor.stopMotor();
}
}

0 comments on commit 64cfa03

Please sign in to comment.