From 54f7abea784c440d00ba720e4b13d53493a6d670 Mon Sep 17 00:00:00 2001 From: James Smith Date: Sat, 28 Mar 2026 10:49:24 -0700 Subject: [PATCH] stuff --- src/main/deploy/chirp/file.chrp | Bin 0 -> 6168 bytes src/main/java/frc/robot/commands/Music.java | 32 ++++++++++++++++++ .../subsystems/drivetrain/Drivetrain.java | 13 +++++++ .../robot/subsystems/drivetrain/Module.java | 3 ++ 4 files changed, 48 insertions(+) create mode 100644 src/main/deploy/chirp/file.chrp create mode 100644 src/main/java/frc/robot/commands/Music.java diff --git a/src/main/deploy/chirp/file.chrp b/src/main/deploy/chirp/file.chrp new file mode 100644 index 0000000000000000000000000000000000000000..8e0a95d9c6c8b2e8c8a4c5dda00b15e5fa2ce523 GIT binary patch literal 6168 zcmXw-cd%B~6~zw_H6m&fiN;`f^xk{t(R*(iloA6ff{orDR%}zzGsFK$%nVmm zaqVicWp&rK5?j=E+)}(Mu^z6dzW9lYj(SihHNZXlkOxX*BYZ`Upm>pkaMc)G7^zZ6gPckO9$&H&fK+5=r% zM?CqWYfp)@2D=u{7~y%%>0=+ZIo+a z<*}}KS=9r&j(6GNV#fy$@nh&AasdQCCU(bEry@RDNKSzj=VjkXIYs+{q>%`1^O!@R4 z%j~hD-(%FK_Za!~9-|NMu|L=JzTjnv^{`ki@2j}jTVh{uj>Nv;KPC1BZ%Oq3R;*at ze>0HxB>Uoh*rKlEtKy1!j$72%b0Dz>E^pwtdBYH{NaU9{3ZYqJ$5%w&tK?yarv81w z0TTNfD841}`+~U=`x#0)LOo)R;_K@u|z7RO7>0Ov}~Fi%_}ab3tcLVPivBiskh z5zY+yr?Z1NogK`>+0mez_tH?zoFmGob0o9JUOq>tP3H*tbdJ!6bEHQBs#kJBoMLwNV%*Hu&=Vi|Z ztG?pds)>UnW`nCFW`p}A?)iT4fgzp^HjwBKUzeB-X3jyy=^SKDItQ68orC1lImm3B zgByo?Hh4s0JuEcBv%zK(vo#k-OUwrUC~@E5X^H;u$&sGzDKT@-Dxc0-)}(WmYo&9R zd^%^DjdQkLj%R~866@i+68G&r@uI|Ru;?Vu275@%24_n2pCx`Eao=F(99Nvqan_`B zoNJ|XoP0XRnT>P&`b^ITOV9FbWyHP`v%!TDv%&vJ+&6efVz#?twb`Bx4w9G+W_*I; zA54n{+2nZsCf~)J z$#;=YzKiwvt}PNV#DfvTF7jcSH6orYvqroVV~9_qC%i3jE&N*NC!EKpZ7S^A&EoAC zLp&8d;iedWFLsj0%H&1-7X4wTr`-R0apSL??<8M@H)1{PD33%8@k^P!h-b>=#SIcY z@lG3_aZf%2-jc}UquOVAeFt%Uj3K^?J}|GCp*;&$=(jgGuD)_6wm-f3JsgVmw#Gzj7^DXMp25 z;;9&)7V)z5fu|(y$(-NmbL)%F<8NpG-nH;#jA5-oF)yBsF|0M%wfNzhFS+Llapud; z*L+3a+eplILaaH&F~rxBhhL=ptIA86yokqTW;kQ0`_~v2!silsd~fyFy&g`F@eJ|v zlz&5ciJtJdL@hq~xWs*!{+2x3aOaPUZ;$YL_*sl0ewRLQT8#0%RY%3Vi1(#GtTNjD zkBPZsoW~CzmFRO!tTN6q%#HC;vGVws7jq?g;-9BZaL>vU<>e&uQ*%P7G|B7Xlo(GH z@xfdRR+{X1ig-B2kngzYgEu}baZjd9RX*2weDb7euAM9%iZQJ4cFc>1Vhk%xcP+lU z{0#T}RLq&_eEC@+9F&;tQ?dMP#}I!^9v+M_K6#>)$%}YpW`+~zx_`NO`b;g6$3K@{ z;Pr4qjNyTlU#Pr9Pk2D07QcN!;y#RjN8WF-^ZUhdOT2!(xIe}a-%KAkF2?xh(#v9A z#6!~`mRj!q`^2#;oX1!1mFNRYu5w&T92?`kV#(Fc!!Z&)@!@0ExM#_=`ivlvAG0om z5_w(^N5>fAtGO1wy2N_Nqs5P74Dr_Vfx9K{$*7I`-e!~Y`0bIKT{}wL9b;H*i}NGJ rT`}G*7TfAt{CUt(@s literal 0 HcmV?d00001 diff --git a/src/main/java/frc/robot/commands/Music.java b/src/main/java/frc/robot/commands/Music.java new file mode 100644 index 0000000..d180af9 --- /dev/null +++ b/src/main/java/frc/robot/commands/Music.java @@ -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(); + } +} diff --git a/src/main/java/frc/robot/subsystems/drivetrain/Drivetrain.java b/src/main/java/frc/robot/subsystems/drivetrain/Drivetrain.java index cb77ac2..5b4448b 100644 --- a/src/main/java/frc/robot/subsystems/drivetrain/Drivetrain.java +++ b/src/main/java/frc/robot/subsystems/drivetrain/Drivetrain.java @@ -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 motors = new ArrayList(); + 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. diff --git a/src/main/java/frc/robot/subsystems/drivetrain/Module.java b/src/main/java/frc/robot/subsystems/drivetrain/Module.java index d30e47e..c9d241e 100644 --- a/src/main/java/frc/robot/subsystems/drivetrain/Module.java +++ b/src/main/java/frc/robot/subsystems/drivetrain/Module.java @@ -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 -- 2.39.5