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

81 lines
2.6 KiB
Java
Raw Normal View History

/*----------------------------------------------------------------------------*/
/* 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;
import com.revrobotics.CANSparkMax.IdleMode;
import com.revrobotics.CANSparkMaxLowLevel.MotorType;
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
public class Intake extends SubsystemBase {
CANSparkMax m_intakeMotor = new CANSparkMax(IntakeConstants.INTAKE_SPARK_ID, MotorType.kBrushless);
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;
/**
* Creates a new Intake.
*/
public Intake() {
2020-02-18 18:12:06 -08:00
2020-02-15 16:01:28 -08:00
m_intakeMotor.restoreFactoryDefaults();
m_extenderMotor.restoreFactoryDefaults();
m_intakeMotor.setIdleMode(IdleMode.kCoast);
m_extenderMotor.setIdleMode(IdleMode.kBrake);
m_intakeMotor.setInverted(false);
m_extenderMotor.setInverted(false);
m_extenderForwardLimit = m_extenderMotor.getForwardLimitSwitch(LimitSwitchPolarity.kNormallyClosed);
m_extenderReverseLimit = m_extenderMotor.getReverseLimitSwitch(LimitSwitchPolarity.kNormallyClosed);
m_extenderForwardLimit.enableLimitSwitch(false);
m_extenderReverseLimit.enableLimitSwitch(false);
}
@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-02-15 16:01:28 -08:00
public void runIntake(final double input) {
m_intakeMotor.set(input);
}
/**
* Runs extender motor
* @param input the percent output to run motor at
*/
2020-02-15 16:01:28 -08:00
public void runExtender(final 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-18 18:12:06 -08:00
m_extenderMotor.set(0.5);
}
2020-02-20 17:00:50 -07:00
if (isExtended == true) {
2020-02-18 18:12:06 -08:00
m_extenderMotor.set(-0.5);
}
}
2020-02-18 18:12:06 -08:00
}