Skip to content

Commit

Permalink
Add rough simulation support
Browse files Browse the repository at this point in the history
  • Loading branch information
m10653 committed Jan 27, 2024
1 parent 7dd91e9 commit 479914e
Showing 1 changed file with 23 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
package org.jmhsrobotics.frc2024.subsystems.shooter;

import org.jmhsrobotics.warcore.rev.RevEncoderSimWrapper;

import com.revrobotics.CANSparkMax;
import com.revrobotics.RelativeEncoder;
import com.revrobotics.CANSparkBase.IdleMode;
import com.revrobotics.CANSparkLowLevel.MotorType;

import edu.wpi.first.math.system.plant.DCMotor;
import edu.wpi.first.wpilibj.RobotBase;
import edu.wpi.first.wpilibj.simulation.FlywheelSim;
import edu.wpi.first.wpilibj2.command.SubsystemBase;

public class ShooterSubsystem extends SubsystemBase {
Expand All @@ -17,6 +22,9 @@ public class ShooterSubsystem extends SubsystemBase {
public ShooterSubsystem() {
// Initializes motor(s)
initializeMotors();
if(RobotBase.isSimulation()){
initSim();
}
}

private void initializeMotors() {
Expand All @@ -38,4 +46,19 @@ public double getRPM() {
public void setSpeed(double speed) {
motor1.set(speed);
}

FlywheelSim flywheelSim;
RevEncoderSimWrapper encSim;
public void initSim(){
flywheelSim = new FlywheelSim(DCMotor.getNEO(1), 1, 1);
encSim = RevEncoderSimWrapper.create(motor1);
}

@Override
public void simulationPeriodic() {
double motorVolts = motor1.get()*12;
flywheelSim.setInputVoltage(motorVolts);
flywheelSim.update(0.2);
encSim.setVelocity(flywheelSim.getAngularVelocityRPM());
}
}

0 comments on commit 479914e

Please sign in to comment.