]> git.taranathan.com Git - FRC2026.git/commitdiff
stuff
authorJames Smith <jamesrsmithca@gmail.com>
Sat, 28 Mar 2026 17:49:24 +0000 (10:49 -0700)
committermoo <moogoesmeow123@gmail.com>
Tue, 31 Mar 2026 22:54:34 +0000 (15:54 -0700)
src/main/deploy/chirp/file.chrp [new file with mode: 0644]
src/main/java/frc/robot/commands/Music.java [new file with mode: 0644]
src/main/java/frc/robot/subsystems/drivetrain/Drivetrain.java
src/main/java/frc/robot/subsystems/drivetrain/Module.java

diff --git a/src/main/deploy/chirp/file.chrp b/src/main/deploy/chirp/file.chrp
new file mode 100644 (file)
index 0000000..8e0a95d
Binary files /dev/null and b/src/main/deploy/chirp/file.chrp differ
diff --git a/src/main/java/frc/robot/commands/Music.java b/src/main/java/frc/robot/commands/Music.java
new file mode 100644 (file)
index 0000000..d180af9
--- /dev/null
@@ -0,0 +1,32 @@
+package frc.robot.commands;
+
+import com.ctre.phoenix6.Orchestra;
+import com.ctre.phoenix6.hardware.TalonFX;
+
+import edu.wpi.first.wpilibj.Filesystem;
+import edu.wpi.first.wpilibj2.command.Command;
+
+public class Music extends Command {
+    private Orchestra orchestra;
+
+    public Music(TalonFX[] motors) {
+        orchestra = new Orchestra(Filesystem.getDeployDirectory() + "/chirp/file.chrp");
+        for (TalonFX motor : motors)
+            orchestra.addInstrument(motor);
+    }
+
+    @Override
+    public void initialize() {
+        orchestra.play();
+    }
+
+    @Override
+    public boolean isFinished() {
+        return false;
+    }
+
+    @Override
+    public void end(boolean interrupted) {
+        orchestra.stop();
+    }
+}
index cb77ac2879a0fc7285b5721193ff669a43632e13..5b4448b2af994fbccb16659f2567d8869eaf5d5e 100644 (file)
@@ -1,5 +1,6 @@
 package frc.robot.subsystems.drivetrain;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Optional;
 import java.util.concurrent.locks.Lock;
@@ -9,6 +10,7 @@ import java.util.function.Supplier;
 import org.littletonrobotics.junction.AutoLogOutput;
 import org.littletonrobotics.junction.Logger;
 
+import com.ctre.phoenix6.hardware.TalonFX;
 import com.pathplanner.lib.util.PathPlannerLogging;
 
 import edu.wpi.first.math.VecBuilder;
@@ -25,8 +27,10 @@ import edu.wpi.first.units.measure.Voltage;
 import edu.wpi.first.wpilibj.RobotBase;
 import edu.wpi.first.wpilibj.Timer;
 import edu.wpi.first.wpilibj.smartdashboard.Field2d;
+import edu.wpi.first.wpilibj.motorcontrol.Talon;
 import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
 import edu.wpi.first.wpilibj2.command.SubsystemBase;
+import frc.robot.commands.Music;
 import frc.robot.constants.Constants;
 import frc.robot.constants.FieldConstants;
 import frc.robot.constants.VisionConstants;
@@ -125,6 +129,7 @@ public class Drivetrain extends SubsystemBase {
         this.gyroIO = gyroIO;
         ModuleConstants[] constants = Arrays.copyOfRange(ModuleConstants.values(), 0, 4);
 
+
         if (RobotBase.isReal()) {
             Arrays.stream(constants).forEach(moduleConstants -> {
                 modules[moduleConstants.ordinal()] = new Module(moduleConstants);
@@ -135,6 +140,14 @@ public class Drivetrain extends SubsystemBase {
             });
         }
 
+        ArrayList<TalonFX> motors = new ArrayList<TalonFX>();
+        for (Module module : modules) {
+            motors.add(module.getMotors()[0]);
+            motors.add(module.getMotors()[1]);
+        }
+
+        SmartDashboard.putData("Beep", new Music(motors.toArray(new TalonFX[0])));
+
         /*
          * By pausing init for a second before setting module offsets, we avoid a bug
          * with inverting motors.
index d30e47e71b5c899b301e02e179ac455e6d1a1acc..c9d241e4bf89a58f03d33f55d7b8ebdf3d6aca12 100644 (file)
@@ -423,4 +423,7 @@ public class Module implements ModuleIO{
         return inputs.odometryTimestamps;
     }
 
+    public TalonFX[] getMotors() {
+        return new TalonFX[]{angleMotor, driveMotor};
+    }
 }
\ No newline at end of file