diff --git a/src/main/java/frc/robot/subsystems/pivot/Pivot.java b/src/main/java/frc/robot/subsystems/pivot/Pivot.java new file mode 100644 index 0000000..69da527 --- /dev/null +++ b/src/main/java/frc/robot/subsystems/pivot/Pivot.java @@ -0,0 +1,6 @@ +package frc.robot.subsystems.pivot; + +import edu.wpi.first.wpilibj2.command.SubsystemBase; + +public class Pivot extends SubsystemBase{ +} diff --git a/src/main/java/frc/robot/subsystems/pivot/PivotConstants.java b/src/main/java/frc/robot/subsystems/pivot/PivotConstants.java new file mode 100644 index 0000000..4b38fa8 --- /dev/null +++ b/src/main/java/frc/robot/subsystems/pivot/PivotConstants.java @@ -0,0 +1,9 @@ +package frc.robot.subsystems.pivot; + +import java.util.concurrent.Flow.Publisher; + +public class PivotConstants{ + public static int pivotMotorID = 0; //not right + public static int stallLimit = 30; //not right + public static int freeLimit = 20; //not right +} \ No newline at end of file diff --git a/src/main/java/frc/robot/subsystems/pivot/PivotIO.java b/src/main/java/frc/robot/subsystems/pivot/PivotIO.java new file mode 100644 index 0000000..58bca42 --- /dev/null +++ b/src/main/java/frc/robot/subsystems/pivot/PivotIO.java @@ -0,0 +1,14 @@ +package frc.robot.subsystems.pivot; + +import org.littletonrobotics.junction.AutoLog; + +public interface PivotIO { + @AutoLog + public static class PivotIOInputs { + public double position = 0; + public double velocity = 0; + public double voltage = 0; + } + public default void setVoltage(double voltage) {}; + public default void updateInputs(PivotIOInputs inputs) {}; + } \ No newline at end of file diff --git a/src/main/java/frc/robot/subsystems/pivot/PivotIOReal.java b/src/main/java/frc/robot/subsystems/pivot/PivotIOReal.java new file mode 100644 index 0000000..044efcc --- /dev/null +++ b/src/main/java/frc/robot/subsystems/pivot/PivotIOReal.java @@ -0,0 +1,33 @@ +package frc.robot.subsystems.pivot; + +import com.revrobotics.AbsoluteEncoder; +import com.revrobotics.spark.SparkMax; +import com.revrobotics.spark.SparkBase.PersistMode; +import com.revrobotics.spark.SparkBase.ResetMode; +import com.revrobotics.spark.SparkLowLevel.MotorType; +import com.revrobotics.spark.config.SparkBaseConfig; +import com.revrobotics.spark.config.SparkMaxConfig; + +public class PivotIOReal implements PivotIO { + private SparkMax pivotMotor = new SparkMax(PivotConstants.pivotMotorID, MotorType.kBrushless); + private SparkMaxConfig config = new SparkMaxConfig(); + private AbsoluteEncoder encoder = pivotMotor.getAbsoluteEncoder(); + public PivotIOReal() { + config.smartCurrentLimit(PivotConstants.stallLimit); + pivotMotor.configure(config, ResetMode.kResetSafeParameters, PersistMode.kPersistParameters); + pivotMotor.getStickyFaults(); + } + + @Override + public void setVoltage(double voltage) { + pivotMotor.setVoltage(voltage); + } + + @Override + public void updateInputs(PivotIOInputs inputs) { + inputs.voltage = pivotMotor.getBusVoltage(); + inputs.position = encoder.getPosition(); + inputs.velocity = encoder.getVelocity(); + } + +} \ No newline at end of file diff --git a/src/main/java/frc/robot/subsystems/pivot/PivotIOSim.java b/src/main/java/frc/robot/subsystems/pivot/PivotIOSim.java new file mode 100644 index 0000000..71e89f0 --- /dev/null +++ b/src/main/java/frc/robot/subsystems/pivot/PivotIOSim.java @@ -0,0 +1,5 @@ +package frc.robot.subsystems.pivot; + +public class PivotIOSim { + private +}