2020-01-13 19:50:26 -07: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;
|
|
|
|
|
|
2020-02-08 15:58:11 -07:00
|
|
|
import com.revrobotics.CANDigitalInput;
|
2020-02-08 15:23:42 -07:00
|
|
|
import com.revrobotics.CANSparkMax;
|
2020-02-08 15:58:11 -07:00
|
|
|
import com.revrobotics.CANDigitalInput.LimitSwitchPolarity;
|
|
|
|
|
import com.revrobotics.CANSparkMax.IdleMode;
|
2020-02-08 15:23:42 -07:00
|
|
|
import com.revrobotics.CANSparkMaxLowLevel.MotorType;
|
|
|
|
|
|
2020-01-13 19:50:26 -07:00
|
|
|
import edu.wpi.first.wpilibj.Spark;
|
|
|
|
|
import edu.wpi.first.wpilibj2.command.SubsystemBase;
|
|
|
|
|
import frc4388.robot.Constants.IntakeConstants;
|
|
|
|
|
|
2020-02-15 16:01:28 -08:00
|
|
|
|
|
|
|
|
|
2020-01-13 19:50:26 -07:00
|
|
|
public class Intake extends SubsystemBase {
|
2020-02-08 15:23:42 -07:00
|
|
|
CANSparkMax m_intakeMotor = new CANSparkMax(IntakeConstants.INTAKE_SPARK_ID, MotorType.kBrushless);
|
2020-02-08 15:58:11 -07:00
|
|
|
CANSparkMax m_extenderMotor = new CANSparkMax(IntakeConstants.EXTENDER_SPARK_ID, MotorType.kBrushless);
|
2020-02-18 18:12:06 -08:00
|
|
|
CANDigitalInput m_extenderForwardLimit;
|
|
|
|
|
CANDigitalInput m_extenderReverseLimit;
|
2020-02-20 17:00:50 -07:00
|
|
|
public boolean isExtended = false;
|
2020-02-08 15:58:11 -07:00
|
|
|
|
2020-01-13 19:50:26 -07:00
|
|
|
/**
|
|
|
|
|
* Creates a new Intake.
|
|
|
|
|
*/
|
|
|
|
|
public Intake() {
|
2020-02-18 18:12:06 -08:00
|
|
|
|
2020-02-15 16:01:28 -08:00
|
|
|
|
2020-02-08 15:58:11 -07:00
|
|
|
m_intakeMotor.restoreFactoryDefaults();
|
|
|
|
|
m_extenderMotor.restoreFactoryDefaults();
|
|
|
|
|
|
|
|
|
|
m_intakeMotor.setIdleMode(IdleMode.kCoast);
|
|
|
|
|
m_extenderMotor.setIdleMode(IdleMode.kBrake);
|
2020-01-13 19:50:26 -07:00
|
|
|
m_intakeMotor.setInverted(false);
|
2020-02-08 15:58:11 -07:00
|
|
|
m_extenderMotor.setInverted(false);
|
|
|
|
|
|
|
|
|
|
m_extenderForwardLimit = m_extenderMotor.getForwardLimitSwitch(LimitSwitchPolarity.kNormallyClosed);
|
2020-03-01 12:21:03 -07:00
|
|
|
m_extenderReverseLimit = m_extenderMotor.getReverseLimitSwitch(LimitSwitchPolarity.kNormallyOpen);
|
|
|
|
|
m_extenderForwardLimit.enableLimitSwitch(true);
|
|
|
|
|
m_extenderReverseLimit.enableLimitSwitch(true);
|
2020-01-13 19:50:26 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void periodic() {
|
|
|
|
|
// This method will be called once per scheduler run
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Runs intake motor
|
2020-01-30 21:59:12 -07:00
|
|
|
* @param input the percent output to run motor at
|
2020-01-13 19:50:26 -07:00
|
|
|
*/
|
2020-02-21 21:11:43 -07:00
|
|
|
public void runIntake(double input) {
|
2020-01-13 19:50:26 -07:00
|
|
|
m_intakeMotor.set(input);
|
|
|
|
|
}
|
2020-02-08 15:58:11 -07:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Runs extender motor
|
|
|
|
|
* @param input the percent output to run motor at
|
|
|
|
|
*/
|
2020-02-21 21:18:12 -07:00
|
|
|
public void runExtender(double input) {
|
2020-02-18 18:12:06 -08:00
|
|
|
if (m_extenderForwardLimit.get()) {
|
2020-02-20 17:00:50 -07:00
|
|
|
isExtended = true;
|
2020-02-18 18:12:06 -08:00
|
|
|
}
|
|
|
|
|
if (m_extenderReverseLimit.get()) {
|
2020-02-20 17:00:50 -07:00
|
|
|
isExtended = false;
|
2020-02-18 18:12:06 -08:00
|
|
|
}
|
|
|
|
|
|
2020-02-20 17:00:50 -07:00
|
|
|
if (isExtended == false) {
|
2020-02-21 21:18:12 -07:00
|
|
|
m_extenderMotor.set(input);
|
2020-02-18 18:12:06 -08:00
|
|
|
}
|
2020-02-20 17:00:50 -07:00
|
|
|
if (isExtended == true) {
|
2020-02-21 21:18:12 -07:00
|
|
|
m_extenderMotor.set(-input);
|
2020-02-18 18:12:06 -08:00
|
|
|
}
|
2020-02-08 15:58:11 -07:00
|
|
|
}
|
2020-02-18 18:12:06 -08:00
|
|
|
}
|