Skip to content

Commit

Permalink
merging
Browse files Browse the repository at this point in the history
  • Loading branch information
ethan jones committed Jan 11, 2025
2 parents b0551d7 + 313e871 commit c5fb8d8
Show file tree
Hide file tree
Showing 9 changed files with 125 additions and 8 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
plugins {
id "java"
id "edu.wpi.first.GradleRIO" version "2025.1.1"
id "edu.wpi.first.GradleRIO" version "2025.2.1"
id 'com.diffplug.spotless' version '6.24.0'
}

Expand Down
6 changes: 6 additions & 0 deletions src/main/java/org/sciborgs1155/robot/Ports.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,10 @@ public static final class Elevator {
public static final int LEADER = -1;
public static final int FOLLOWER = -1;
}

public static final class Scoral {
public static final int TOP_ROLLER = 21;
public static final int BOTTOM_ROLLER = 22;
public static final int BEAMBREAK = 23;
}
}
12 changes: 12 additions & 0 deletions src/main/java/org/sciborgs1155/robot/scoral/NoScoral.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package org.sciborgs1155.robot.scoral;

public class NoScoral implements ScoralIO {

@Override
public void setPower(double power) {}

@Override
public boolean beambreak() {
return false;
}
}
30 changes: 30 additions & 0 deletions src/main/java/org/sciborgs1155/robot/scoral/RealScoral.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package org.sciborgs1155.robot.scoral;

import static org.sciborgs1155.robot.Ports.Scoral.*;

import com.revrobotics.spark.SparkLowLevel.MotorType;
import com.revrobotics.spark.SparkMax;
import edu.wpi.first.wpilibj.DigitalInput;

public class RealScoral implements ScoralIO {

private final SparkMax topMotor;
private final SparkMax bottomMotor;

private final DigitalInput beambreak;

public RealScoral() {
topMotor = new SparkMax(TOP_ROLLER, MotorType.kBrushed);
bottomMotor = new SparkMax(BOTTOM_ROLLER, MotorType.kBrushed);

beambreak = new DigitalInput(BEAMBREAK);
}

@Override
public void setPower(double power) {}

@Override
public boolean beambreak() {
return beambreak.get();
}
}
39 changes: 39 additions & 0 deletions src/main/java/org/sciborgs1155/robot/scoral/Scoral.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package org.sciborgs1155.robot.scoral;

import static org.sciborgs1155.robot.scoral.ScoralConstants.*;

import edu.wpi.first.wpilibj2.command.Command;
import edu.wpi.first.wpilibj2.command.SubsystemBase;
import org.sciborgs1155.robot.Robot;

public class Scoral extends SubsystemBase {

private ScoralIO scoral;

public Scoral(ScoralIO scoral) {
this.scoral = scoral;
}

public static Scoral create() {
return Robot.isReal() ? new Scoral(new RealScoral()) : new Scoral(new SimScoral());
}

public static Scoral none() {
return new Scoral(new NoScoral());
}

/** Runs the motor to outtake, as in pushing out, a coral. */
public Command outtake() {
return run(() -> scoral.setPower(POWER));
}

/** Runs the motor to intake, as in pulling in, a coral. */
public Command intake() {
return run(() -> scoral.setPower(-POWER));
}

/** Returns the value of the beambreak. */
public boolean beambreak() {
return scoral.beambreak();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package org.sciborgs1155.robot.scoral;

public class ScoralConstants {
public static final double POWER = 0.5;
}
8 changes: 8 additions & 0 deletions src/main/java/org/sciborgs1155/robot/scoral/ScoralIO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package org.sciborgs1155.robot.scoral;

public interface ScoralIO {

void setPower(double power);

boolean beambreak();
}
12 changes: 12 additions & 0 deletions src/main/java/org/sciborgs1155/robot/scoral/SimScoral.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package org.sciborgs1155.robot.scoral;

public class SimScoral implements ScoralIO {

@Override
public void setPower(double power) {}

@Override
public boolean beambreak() {
return false;
}
}
19 changes: 12 additions & 7 deletions src/main/java/org/sciborgs1155/robot/vision/VisionConstants.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

public class VisionConstants {
public static final AprilTagFieldLayout TAG_LAYOUT =
AprilTagFieldLayout.loadField(AprilTagFields.kDefaultField);
AprilTagFieldLayout.loadField(AprilTagFields.k2025Reefscape);

/** TODO: Create cameras with updated constants; be sure to add in {@link Vision#create} */
// WARNING: EMPTY TRANSFORMS WILL CRASH SIMULATION UPON TAG DETECTION
Expand All @@ -38,10 +38,15 @@ public class VisionConstants {
public static final double MAX_HEIGHT = 0.305;
public static final double MAX_ANGLE = 0.3;

/** TODO: Modify AprilTag information as needed. */
// Total of n AprilTags
// Reference:
// Tag Locations (1-n) | Description...

public static final double[] TAG_WEIGHTS = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
// Total of 22 AprilTags
// Reference: https://firstfrc.blob.core.windows.net/frc2025/Manual/2025GameManual.pdf (page 35)
// Tag Locations (1-22)
// Reef | Red: 6-11, Blue: 17-22
// Cage | Red Side: 4-5, Blue Side: 14-15
// Coral Station | Red Side: 1-2, Blue Side: 12-13
// Processor | Red Side: 3 | Blue Side: 16

public static final double[] TAG_WEIGHTS = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
};
}

0 comments on commit c5fb8d8

Please sign in to comment.