Conversation
…IGenuielyCannotCode #ctrePackageBeingHorribleToMeOnceAgain# ItBetterNotBeBecuaseMyFileIsWithinSevenOtherFiles #Worlds2026 #ThisIsntTheFinalProduct #IamBetterThanSmashingMyComputer #willFinishTheButtonsWhenIRegainMySanityIPromise
bensonkhau
left a comment
There was a problem hiding this comment.
Thanks for submitting a review! Hopefully the others can follow suit when they've got time, but this is probably enough to get good practice in.
I focused mainly on the Elevator subsystem but also left some comments on how you might think about managing your constants during the season.
There was a problem hiding this comment.
this file is probably freaking out because it's not .java
| motor_one = new TalonFx(27, /*idk what type our motors are*/); | ||
| motor_two = new TalonFX(28, /*idk what type our motors are*/ ); |
There was a problem hiding this comment.
I don't know either :)
Also probably during the season, you'll want to either name the ports here clearly (e.g. LeftClimberMotor = 27), or storing these in a Constants file of some kind (e.g. MotorConstants.java)
| motor_one; = new TalonFx(/*port*/); | ||
| motor_two; = new TalonFx(/*port*/); //side note (again ikr eyeroll) idk the ports but | ||
| //im pretty sure the ones we use are in the constants... |
There was a problem hiding this comment.
same idea here - I think since this is a totally separate project and branch, you can choose where you want to store them and name them appropriately
also I think Reefscape's elevator uses just one motor so you can probably just make this one guy
|
|
||
|
|
||
| new JoystickButton(main_stick, 1) | ||
| new JoystickButton(main_stick, 7) |
There was a problem hiding this comment.
ok it might also be worth making like a JoystickButtonConstants file so if we look at this next year, we aren't confused what button is which on the controller
| double l4value = motor_one.getPositon(); | ||
| //assuming levels are equidistant | ||
| public double l3val = .66*l4value; | ||
| public double l2val = .33*l4value; | ||
| public double l1val = 0.01; |
There was a problem hiding this comment.
seems fine for now. probably when you do this for reals you'll get the exact values and just set them as constants for this subsystem
| import frc.robot.subsystems.Shooter; | ||
|
|
||
| /** An example command that uses an example subsystem. */ | ||
| public class ExampleCommand extends Command { |
There was a problem hiding this comment.
Commands might be a little out of scope, but you can see some example commands that were used on Reefscape here: https://github.com/FRC-Team-1160/2025-Reefscape/blob/main/src/main/java/frc/robot/SubsystemManager.java
They didn't seem to create their own Command classes, but they combined a set of commands that changed and/or tracked some of the robot's states until it met certain objectives so they could use them for the pathplanner auto.
| //also gonna make an "afk" thing that applies constant voltage to perchance | ||
| //keep the elevator at the target position like how we did witht eh climber wow |
There was a problem hiding this comment.
You can try a NeutralOut()
You'd configure the motor in the constructor to "brake" when in neutral (probably have to configure one of these) and then requesting a NeutralOut will probably do what you want.
| //idk if this works for sure, if the | ||
| // motors work in opposite directions th | ||
| // en do they do to the same positon but | ||
| // just like the opposite? idk. | ||
| //gemini said yes 🥹 |
There was a problem hiding this comment.
assuming you configure the motors facing each other and configure them the same, probably...?
also Positon -> Position
…IGenuielyCannotCode #ctrePackageBeingHorribleToMeOnceAgain# ItBetterNotBeBecuaseMyFileIsWithinSevenOtherFiles #Worlds2026 #ThisIsntTheFinalProduct #IamBetterThanSmashingMyComputer #willFinishTheButtonsWhenIRegainMySanityIPromise
erm