Skip to content

Commit

Permalink
feat: DutyCylce encoder and setting position via desired states.
Browse files Browse the repository at this point in the history
  • Loading branch information
ProgrammingSR committed Feb 10, 2024
1 parent 0c22273 commit 479bf3c
Show file tree
Hide file tree
Showing 3 changed files with 392 additions and 3 deletions.
6 changes: 6 additions & 0 deletions src/main/java/frc/robot/subsystems/ShooterSubsystem.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@ public void spin(double speed){
m_bottom.set(speed);
m_top.set(speed);
}






@Override
public void periodic() {
// This method will be called once per scheduler run
Expand Down
50 changes: 47 additions & 3 deletions src/main/java/frc/robot/subsystems/intake.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,59 @@

package frc.robot.subsystems;

import com.revrobotics.AbsoluteEncoder;
import com.revrobotics.CANEncoder;
import com.revrobotics.CANSparkFlex;
import com.revrobotics.CANSparkMax;
import com.revrobotics.EncoderType;
import com.revrobotics.RelativeEncoder;
import com.revrobotics.CANSparkLowLevel.MotorType;

import edu.wpi.first.math.controller.PIDController;
import edu.wpi.first.wpilibj.AnalogEncoder;
import edu.wpi.first.wpilibj.DigitalInput;
import edu.wpi.first.wpilibj.DigitalSource;
import edu.wpi.first.wpilibj.DutyCycle;
import edu.wpi.first.wpilibj.DutyCycleEncoder;
import edu.wpi.first.wpilibj.Encoder;
import edu.wpi.first.wpilibj.CounterBase.EncodingType;
import edu.wpi.first.math.controller.PIDController;

import edu.wpi.first.wpilibj2.command.SubsystemBase;

public class intake extends SubsystemBase {
public class Intake extends SubsystemBase {
//TODO: add constants
CANSparkFlex intakeMotor = new CANSparkFlex(0, MotorType.kBrushless);
CANSparkFlex armMotor = new CANSparkFlex(0, MotorType.kBrushless);


PIDController intakeVeloPID = new PIDController(0,0,0);
PIDController armPID = new PIDController(0,0,0);
DutyCycleEncoder armEncoder = new DutyCycleEncoder(0);





/** Creates a new intake. */
public intake() {}
public Intake() {

}

void load(int speed){
void load(double speed){
intakeMotor.set(speed);
//TODO: Implement load/unload through speed (which is a trigger)
}
/**
*@param angle in radians
*@everyone join vc we are playing gartic phone
*/

public void tiltToAngle(double angle) {
double motorPower = armPID.calculate(armEncoder.getAbsolutePosition(), angle);
armMotor.set(motorPower);
}


@Override
public void periodic() {
Expand Down
Loading

0 comments on commit 479bf3c

Please sign in to comment.