59
59
public class RobotContainer {
60
60
61
61
private Swerve swerve ;
62
+ private Hopper hopper ;
63
+ private Intake intake ;
64
+ private Shooter shooter ;
65
+
66
+
62
67
private Leds leds ;
63
68
64
69
// private NAR_ButtonBoard judgePad;
@@ -82,8 +87,13 @@ public RobotContainer() {
82
87
controller = new NAR_XboxController (2 );
83
88
buttonPad = new NAR_ButtonBoard (3 );
84
89
90
+ swerve = Swerve .getInstance ();
91
+ hopper = Hopper .getInstance ();
92
+ intake = Intake .getInstance ();
93
+ shooter = Shooter .getInstance ();
94
+
85
95
//uncomment line below to enable driving
86
- CommandScheduler .getInstance ().setDefaultCommand (Swerve . getInstance () , new CmdSwerveDrive (controller ::getLeftX ,controller ::getLeftY , controller ::getRightX , true ));
96
+ CommandScheduler .getInstance ().setDefaultCommand (swerve , new CmdSwerveDrive (controller ::getLeftX ,controller ::getLeftY , controller ::getRightX , true ));
87
97
88
98
initRobotTest ();
89
99
@@ -116,55 +126,87 @@ private void configureButtonBindings() {
116
126
117
127
controller .getButton (XboxButton .kLeftTrigger ).onTrue (intake (Intake .Setpoint .GROUND ));
118
128
controller .getButton (XboxButton .kLeftBumper ).onTrue (retractIntake ());
119
- controller .getButton (XboxButton .kRightTrigger ).onTrue (Shooter . getInstance (). rampUpShooter ()).onFalse (Shooter . getInstance () .setShooting (true ));
129
+ controller .getButton (XboxButton .kRightTrigger ).onTrue (shooter . rampUpShooter ()).onFalse (shooter .setShooting (true ));
120
130
121
- controller .getButton (XboxButton .kA ).onTrue (Shooter . getInstance () .runShooter (0.8 ));
122
- controller .getButton (XboxButton .kY ).onTrue (Shooter . getInstance () .runShooter (0 ));
123
- controller .getButton (XboxButton .kB ).onTrue (Shooter . getInstance (). runKickMotor (KICK_SHOOTING_POWER )).onFalse (Shooter . getInstance () .runKickMotor (0 ));
131
+ controller .getButton (XboxButton .kA ).onTrue (shooter .runShooter (0.8 ));
132
+ controller .getButton (XboxButton .kY ).onTrue (shooter .runShooter (0 ));
133
+ controller .getButton (XboxButton .kB ).onTrue (shooter . runKickMotor (KICK_SHOOTING_POWER )).onFalse (shooter .runKickMotor (0 ));
124
134
125
135
controller .getButton (XboxButton .kY ).whileTrue (ampUp ()).onFalse (ampFinAndDown ());
126
136
127
137
128
138
// new Trigger(()->true).onTrue(queueNote());
129
139
130
- new Trigger (()-> Shooter .getInstance ().getShooting ())
140
+ //Shooting
141
+ new Trigger (()-> shooter .getShooting ())
131
142
.onTrue (sequence (
132
- Shooter . getInstance () .runKickMotor (KICK_POWER ),
133
- Hopper . getInstance () .runManipulator (.8 )
143
+ shooter .runKickMotor (KICK_POWER ),
144
+ hopper .runManipulator (.8 )
134
145
))
135
146
.onFalse (sequence (
136
- Shooter .getInstance ().runKickMotor (0 ),
137
- Hopper .getInstance ().runManipulator (0 ),
138
- Shooter .getInstance ().stopMotors ()
147
+ hopper .runManipulator (0 ),
148
+ shooter .stopMotors ()
139
149
));
140
150
141
- new Trigger (()-> Shooter .getInstance ().noteInRollers ()).negate ()
142
- .and (()->Hopper .getInstance ().hasObjectPresent ()).negate ()
143
- .onTrue (Shooter .getInstance ().setShooting (false ));
144
-
145
- new Trigger (()-> Intake .getInstance ().getMeasurement () > 90 )
146
- .and (()->!Hopper .getInstance ().hasObjectPresent ())
147
- .onTrue (Hopper .getInstance ().runManipulator (HOPPER_INTAKE_POWER ))
148
- .onFalse (Hopper .getInstance ().runManipulator (0 ));
149
-
150
- new Trigger (()-> Intake .getInstance ().getMeasurement () < 20 )
151
- .and (()->Hopper .getInstance ().hasObjectPresent ()).negate ()
152
- .onTrue (Hopper .getInstance ().runManipulator (0 ));
153
-
154
- new Trigger (()-> Shooter .getInstance ().noteInRollers ()).negate ()
155
- .and (()->Hopper .getInstance ().hasObjectPresent ())
156
- .and (() -> !Shooter .getInstance ().getShooting ())
151
+ //Stops shooting when all notes are gone
152
+ new Trigger (()-> shooter .noteInRollers ()).negate ()
153
+ .and (()->hopper .hasObjectPresent ()).negate ()
154
+ .onTrue (shooter .setShooting (false ));
155
+
156
+ //Queues note to hopper
157
+ new Trigger (()-> intake .getMeasurement () > 90 )
158
+ .and (()->!hopper .hasObjectPresent ())
159
+ .onTrue (hopper .runManipulator (HOPPER_INTAKE_POWER ))
160
+ .onFalse (hopper .runManipulator (0 ));
161
+
162
+ //Stops hopper if intake is retracted and is empty
163
+ new Trigger (()-> intake .getMeasurement () < 20 )
164
+ .and (()->hopper .hasObjectPresent ()).negate ()
165
+ .onTrue (hopper .runManipulator (0 ));
166
+
167
+ //Queues note to shooter
168
+ new Trigger (()-> shooter .noteInRollers ()).negate ()
169
+ .and (()->hopper .hasObjectPresent ())
170
+ .and (() -> !shooter .getShooting ())
157
171
.onTrue (sequence (
158
- Shooter . getInstance () .runKickMotor (KICK_POWER ),
159
- Hopper . getInstance () .runManipulator (HOPPER_INTAKE_POWER )
172
+ shooter .runKickMotor (KICK_POWER ),
173
+ hopper .runManipulator (HOPPER_INTAKE_POWER )
160
174
))
161
175
.onFalse (sequence (
162
- Shooter . getInstance () .runKickMotor (-.1 ),
176
+ shooter .runKickMotor (-.1 ),
163
177
waitSeconds (.1 ),
164
- Shooter . getInstance () .runKickMotor (0 )
178
+ shooter .runKickMotor (0 )
165
179
));
166
180
181
+ // new Trigger(() -> shouldEjectNote()).onTrue(ejectNote());
182
+
183
+ }
184
+
185
+ private Timer ejecTimer = new Timer ();
186
+ private boolean ejectTimerStarted = false ;
167
187
188
+ private boolean shouldEjectNote (){
189
+ if (shooter .noteInRollers () && hopper .hasObjectPresent () && !ejectTimerStarted ){
190
+ ejectTimerStarted = true ;
191
+ ejecTimer .start ();
192
+ }
193
+
194
+ else if (shooter .noteInRollers () && hopper .hasObjectPresent () && ejectTimerStarted ){
195
+ if (ejecTimer .hasElapsed (2 )){
196
+ ejectTimerStarted = false ;
197
+ ejecTimer .stop ();
198
+ ejecTimer .reset ();
199
+ return true ;
200
+ }
201
+ }
202
+
203
+ else {
204
+ ejectTimerStarted = false ;
205
+ ejecTimer .stop ();
206
+ ejecTimer .reset ();
207
+ }
208
+
209
+ return false ;
168
210
}
169
211
170
212
@ SuppressWarnings ("unused" )
0 commit comments