Files
RiseOfRidgebotics2020/src/main/java/frc4388/robot/subsystems/Climber.java
T

89 lines
2.5 KiB
Java
Raw Normal View History

2020-01-28 18:56:09 -08:00
/*----------------------------------------------------------------------------*/
/* Copyright (c) 2019 FIRST. All Rights Reserved. */
/* Open Source Software - may be modified and shared by FRC teams. The code */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project. */
/*----------------------------------------------------------------------------*/
package frc4388.robot.subsystems;
import com.revrobotics.CANDigitalInput;
import com.revrobotics.CANSparkMax;
import com.revrobotics.CANDigitalInput.LimitSwitchPolarity;
2020-02-11 17:35:36 -07:00
import com.revrobotics.CANSparkMax.IdleMode;
2020-01-28 18:56:09 -08:00
import com.revrobotics.CANSparkMaxLowLevel.MotorType;
2020-03-06 16:42:53 -07:00
import edu.wpi.first.wpilibj.Servo;
import edu.wpi.first.wpilibj.Spark;
2020-01-28 18:56:09 -08:00
import edu.wpi.first.wpilibj2.command.SubsystemBase;
import frc4388.robot.Constants.ClimberConstants;
public class Climber extends SubsystemBase {
CANSparkMax m_climberMotor = new CANSparkMax(ClimberConstants.CLIMBER_SPARK_ID, MotorType.kBrushless);
2020-02-11 17:35:36 -07:00
CANDigitalInput m_climberForwardLimit, m_climberReverseLimit;
2020-02-15 13:29:06 -08:00
2020-03-06 16:42:53 -07:00
Servo m_servo;
//Spark m_spark = new Spark(4);
2020-02-15 13:29:06 -08:00
public boolean climberSafety = false;
2020-01-28 18:56:09 -08:00
/**
* Creates a new Climber.
*/
public Climber() {
2020-03-06 16:42:53 -07:00
m_servo = new Servo(4);
2020-01-28 18:56:09 -08:00
m_climberMotor.restoreFactoryDefaults();
2020-02-11 17:35:36 -07:00
m_climberMotor.setIdleMode(IdleMode.kBrake);
2020-03-06 16:42:53 -07:00
m_climberMotor.setInverted(true);
2020-02-11 17:35:36 -07:00
2020-03-01 12:21:03 -07:00
m_climberForwardLimit = m_climberMotor.getForwardLimitSwitch(LimitSwitchPolarity.kNormallyOpen);
m_climberReverseLimit = m_climberMotor.getReverseLimitSwitch(LimitSwitchPolarity.kNormallyOpen);
m_climberForwardLimit.enableLimitSwitch(true);
m_climberReverseLimit.enableLimitSwitch(true);
2020-01-28 18:56:09 -08:00
}
@Override
public void periodic() {
// This method will be called once per scheduler run
}
/**
* Runs climber motor
* @param input the voltage to run motor at
*/
public void runClimber(double input) {
2020-02-15 13:29:06 -08:00
if(climberSafety){
2020-03-06 16:42:53 -07:00
input *= 1.0;
2020-02-15 13:29:06 -08:00
m_climberMotor.set(input);
}
else{
m_climberMotor.set(0);
}
}
/* Safety Button for Climber */
public void setSafetyPressed()
{
climberSafety = true;
}
/* Safety Button for Climber set back to false */
public void setSafetyNotPressed()
{
climberSafety = false;
2020-01-28 18:56:09 -08:00
}
2020-03-06 16:42:53 -07:00
/**
* @param shift true to enage rachet, false to disengage
*/
public void shiftServo(boolean shift) {
if (shift) {
m_servo.setPosition(0.5);
} else {
m_servo.setPosition(0.56);
}
}
2020-01-28 18:56:09 -08:00
}