|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools |
Rating:
|
Display Modes |
|
|
|
#1
|
|||
|
|||
|
I run the code and the Driver station accepts it and allows it to run but when I press the buttons nothing happens? Pleas help ASAP
If I try to separate the Initializing of buttons from the button commands it fails to recolonize that they go together and created a whole mess of syntax errors package org.usfirst.frc.team4284.robot; import edu.wpi.first.wpilibj.IterativeRobot; import edu.wpi.first.wpilibj.Jaguar; import edu.wpi.first.wpilibj.buttons.JoystickButton; import edu.wpi.first.wpilibj.buttons.Button; import edu.wpi.first.wpilibj.Joystick; import edu.wpi.first.wpilibj.RobotDrive; import edu.wpi.first.wpilibj.livewindow.LiveWindow; /** * The VM is configured to automatically run this class, and to call the * functions corresponding to each mode, as described in the IterativeRobot * documentation. If you change the name of this class or the package after * creating this project, you must also update the manifest file in the resource * directory. */ public class Robot extends IterativeRobot { RobotDrive Drive; Joystick drivestick; Joystick joystick; int autoLoopCounter; /** * This function is run when the robot is first started up and should be * used for any initialization code. */ public void robotInit() { Jaguar FL = new Jaguar (5); Jaguar BL = new Jaguar (2); Jaguar FR = new Jaguar (3); Jaguar BR = new Jaguar (4); Drive = new RobotDrive(FL,BL,FR,BR); drivestick = new Joystick(0); joystick = new Joystick(1); } /** * This function is run once each time the robot enters autonomous mode */ public void autonomousInit() { autoLoopCounter = 0; } /** * This function is called periodically during autonomous */ public void autonomousPeriodic() { /*if(autoLoopCounter < 100) //Check if we've completed 100 loops (approximately 2 seconds) { Drive.drive(-0.5, 0.0); // drive forwards half speed autoLoopCounter++; } else { Drive.drive(0.0, 0.0); // stop robot } */ } /** * This function is called once each time the robot enters tele-operated mode */ public void teleopInit(){ } /** * This function is called periodically during operator control */ public void teleopPeriodic() { Drive.arcadeDrive(drivestick); Button button1 = new JoystickButton(joystick, 1), button2 = new JoystickButton(joystick, 2), button3 = new JoystickButton(joystick, 3), button4 = new JoystickButton(joystick, 4), button5 = new JoystickButton(joystick, 5), button6 = new JoystickButton(joystick, 6), button7 = new JoystickButton(joystick, 7), button8 = new JoystickButton(joystick, 8), button9 = new JoystickButton(joystick, 9), button10 = new JoystickButton(joystick, 10), button11 = new JoystickButton(joystick , 11); button1.whenPressed(new ElevatorOff()); button2.whenPressed(new ElevatorOn()); button3.whenPressed(new ElevatorReverse()); button4.whenPressed(new ArmsOut()); button5.whenPressed(new ArmsIn()); button6.whenPressed(new ArmsVerticalIn()); button7.whenPressed(new ArmsVarticalOut()); button8.whenPressed(new BlueLightShow()); button9.whenPressed(new LigthShowOn()); button10.whenPressed(new RedLightShow()); button11.whenPressed(new LightShowEnd()); } /** * This function is called periodically during test mode */ public void testPeriodic() { LiveWindow.run(); } } package org.usfirst.frc.team4284.robot; import edu.wpi.first.wpilibj.Talon; import edu.wpi.first.wpilibj.command.Command; public class ArmsIn extends Command { @Override protected void initialize() { // TODO Auto-generated method stub } @Override protected void execute() { Talon LeftArm = new Talon(9); Talon RightArm = new Talon(8); LeftArm.set(1); RightArm.set(-1); try { Thread.sleep(500); //stop for 1/2 second } catch(InterruptedException ex) { // allows for interruption of the sleep period Thread.currentThread().interrupt(); } LeftArm.set(0); RightArm.set(0); } @Override protected boolean isFinished() { // TODO Auto-generated method stub return false; } @Override protected void end() { // TODO Auto-generated method stub } @Override protected void interrupted() { // TODO Auto-generated method stub } } package org.usfirst.frc.team4284.robot; import edu.wpi.first.wpilibj.Talon; import edu.wpi.first.wpilibj.command.Command; public class ArmsOut extends Command { @Override protected void initialize() { // TODO Auto-generated method stub } @Override protected void execute() { Talon RightArm = new Talon(9); Talon LeftArm = new Talon(8); LeftArm.set(-1); RightArm.set(1); try { Thread.sleep(500); //stop for 1/2 second } catch(InterruptedException ex) { // allows for interruption of the sleep period Thread.currentThread().interrupt(); } LeftArm.set(0); RightArm.set(0); // TODO Auto-generated method stub } @Override protected boolean isFinished() { // TODO Auto-generated method stub return false; } @Override protected void end() { // TODO Auto-generated method stub } @Override protected void interrupted() { // TODO Auto-generated method stub } } package org.usfirst.frc.team4284.robot; import edu.wpi.first.wpilibj.Talon; import edu.wpi.first.wpilibj.command.Command; public class ArmsVarticalOut extends Command { @Override protected void initialize() { // TODO Auto-generated method stub } @Override protected void execute() { Talon In_Out = new Talon(7); Talon In__Out = new Talon(0); In_Out.set(-1); In__Out.set(-1); try { Thread.sleep(500); //stop for 1/2 second } catch(InterruptedException ex) { // allows for interruption of the sleep period Thread.currentThread().interrupt(); } In_Out.set(0); In__Out.set(0); // TODO Auto-generated method stub } @Override protected boolean isFinished() { // TODO Auto-generated method stub return false; } @Override protected void end() { // TODO Auto-generated method stub } @Override protected void interrupted() { // TODO Auto-generated method stub } } package org.usfirst.frc.team4284.robot; import edu.wpi.first.wpilibj.Talon; import edu.wpi.first.wpilibj.command.Command; public class ArmsVerticalIn extends Command { @Override protected void initialize() { // TODO Auto-generated method stub } @Override protected void execute() { Talon In_Out = new Talon (7); Talon In__Out = new Talon(0); In_Out.set(1); In__Out.set(1); try { Thread.sleep(500); //stop for 1/2 second } catch(InterruptedException ex) { // allows for interruption of the sleep period Thread.currentThread().interrupt(); } In_Out.set(0); In__Out.set(0); } @Override protected boolean isFinished() { // TODO Auto-generated method stub return false; } @Override protected void end() { // TODO Auto-generated method stub } @Override protected void interrupted() { // TODO Auto-generated method stub } } package org.usfirst.frc.team4284.robot; import edu.wpi.first.wpilibj.Relay; import edu.wpi.first.wpilibj.command.Command; public class BlueLightShow extends Command { @Override protected void initialize() { // TODO Auto-generated method stub } @Override protected void execute() { // TODO Auto-generated method stub Relay relay1 = new Relay(0); Relay relay2 = new Relay(1); relay1.set(Relay.Value.kOn); relay2.set(Relay.Value.kOff); } @Override protected boolean isFinished() { // TODO Auto-generated method stub return false; } @Override protected void end() { // TODO Auto-generated method stub } @Override protected void interrupted() { // TODO Auto-generated method stub } } package org.usfirst.frc.team4284.robot; import edu.wpi.first.wpilibj.Jaguar; import edu.wpi.first.wpilibj.command.Command; public class ElevatorOff extends Command { @Override protected void initialize() { // TODO Auto-generated method stub } @Override protected void execute() { // TODO Auto-generated method stub Jaguar Elevator1 = new Jaguar(5); Jaguar Elevator2 = new Jaguar(0); Elevator1.set(0); Elevator2.set(0); } @Override protected boolean isFinished() { // TODO Auto-generated method stub return false; } @Override protected void end() { // TODO Auto-generated method stub } @Override protected void interrupted() { // TODO Auto-generated method stub } } package org.usfirst.frc.team4284.robot; import edu.wpi.first.wpilibj.Jaguar; import edu.wpi.first.wpilibj.command.Command; public class ElevatorOn extends Command { @Override protected void initialize() { // TODO Auto-generated method stub } @Override protected void execute() { // TODO Auto-generated method stub Jaguar Elevator1 = new Jaguar(5); Jaguar Elevator2 = new Jaguar(0); Elevator1.set(.25); Elevator2.set(.25); } @Override protected boolean isFinished() { return false; } @Override protected void end() { } @Override protected void interrupted() { } } package org.usfirst.frc.team4284.robot; import edu.wpi.first.wpilibj.Jaguar; import edu.wpi.first.wpilibj.command.Command; public class ElevatorReverse extends Command { @Override protected void initialize() { // TODO Auto-generated method stub } @Override protected void execute() { // TODO Auto-generated method stub Jaguar Elevator1 = new Jaguar(5); Jaguar Elevator2 = new Jaguar(0); Elevator1.set(-.25); Elevator2.set(-.25); } @Override protected boolean isFinished() { // TODO Auto-generated method stub return false; } @Override protected void end() { // TODO Auto-generated method stub } @Override protected void interrupted() { // TODO Auto-generated method stub } } package org.usfirst.frc.team4284.robot; import edu.wpi.first.wpilibj.Relay; import edu.wpi.first.wpilibj.command.Command; public class LightShowEnd extends Command { @Override protected void initialize() { // TODO Auto-generated method stub } @Override protected void execute() { // TODO Auto-generated method stub Relay relay1 = new Relay(0); Relay relay2 = new Relay(1); relay1.set(Relay.Value.kOff); relay2.set(Relay.Value.kOff); } @Override protected boolean isFinished() { // TODO Auto-generated method stub return false; } @Override protected void end() { // TODO Auto-generated method stub } @Override protected void interrupted() { // TODO Auto-generated method stub } } package org.usfirst.frc.team4284.robot; import edu.wpi.first.wpilibj.Relay; import edu.wpi.first.wpilibj.command.Command; public class LigthShowOn extends Command { @Override protected void initialize() { // TODO Auto-generated method stub } @Override protected void execute() { // TODO Auto-generated method stub Relay relay1 = new Relay(0); Relay relay2 = new Relay(1); relay1.set(Relay.Value.kReverse); relay2.set(Relay.Value.kOn); try { Thread.sleep(5000); //stop for 1/2 second } catch(InterruptedException ex) { // allows for interruption of the sleep period Thread.currentThread().interrupt(); } //Turn on lights Blue and Green) relay1.set(Relay.Value.kOn); relay2.set(Relay.Value.kReverse); try { Thread.sleep(5000); //stop for 1/2 second } catch(InterruptedException ex) { // allows for interruption of the sleep period Thread.currentThread().interrupt(); } // Turns on blue and red lights relay1.set(Relay.Value.kOn); relay2.set(Relay.Value.kForward); try { Thread.sleep(5000); //stop for 1/2 second } catch(InterruptedException ex) { // allows for interruption of the sleep period Thread.currentThread().interrupt(); } relay1.set(Relay.Value.kReverse); relay2.set(Relay.Value.kOn); } @Override protected boolean isFinished() { // TODO Auto-generated method stub return false; } @Override protected void end() { // TODO Auto-generated method stub } @Override protected void interrupted() { // TODO Auto-generated method stub } } package org.usfirst.frc.team4284.robot; import edu.wpi.first.wpilibj.Relay; import edu.wpi.first.wpilibj.command.Command; public class RedLightShow extends Command { @Override protected void initialize() { // TODO Auto-generated method stub } @Override protected void execute() { // TODO Auto-generated method stub Relay relay1 = new Relay(0); Relay relay2 = new Relay(1); relay2.set(Relay.Value.kForward); relay1.set(Relay.Value.kReverse); } @Override protected boolean isFinished() { // TODO Auto-generated method stub return false; } @Override protected void end() { // TODO Auto-generated method stub } @Override protected void interrupted() { // TODO Auto-generated method stub } } Please and thank you |
|
#2
|
|||||
|
|||||
|
Re: Robot Code Problem ** Again**
Quote:
Code:
public class Robot extends IterativeRobot {
RobotDrive Drive;
Joystick drivestick;
Joystick joystick;
Jaguar FL, BL, FR, BR;
int autoLoopCounter;
/**
* This function is run when the robot is first started up and should be
* used for any initialization code.
*/
public void robotInit() {
FL = new Jaguar (5);
BL = new Jaguar (2);
FR = new Jaguar (3);
BR = new Jaguar (4);
Drive = new RobotDrive(FL,BL,FR,BR);
drivestick = new Joystick(0);
joystick = new Joystick(1);
}
P.P.S.: After seeing this, I did not review the rest of the code. |
|
#3
|
|||
|
|||
|
Re: Robot Code Problem ** Again**
Quote:
|
|
#4
|
|||
|
|||
|
Re: Robot Code Problem ** Again**
Are you sure your joysticks are setup correctly in the driverstation?
Can you drive the robot with what you expect to be the "drivestick"? Put a breakpoint in the execute() function of one of your commands. Make sure you do a Debug As to deploy your project. Press the button of the command you have the breakpoint in. Does your breakpoint get hit? As for your other question about declaring the buttons on separate lines, I saw in another thread that you were not giving a type to each declaration. So you need something like: Button button1 = new JoystickButton(joystick, 1); Button button2 = new JoystickButton(joystick, 2); Button button3 = new JoystickButton(joystick, 3); And so on. You have a lot of local variables declared in each function. What happens when a Talon (for example) goes out of scope and is garbage collected? |
|
#5
|
||||
|
||||
|
Re: Robot Code Problem ** Again**
I noticed in your LightShowOn class you have thread.sleep(5000). You say in the comment that you are sleeping for half a second. Since it is measured in milliseconds shouldn't it be thread.sleep(500)?
|
|
#6
|
|||
|
|||
|
Re: Robot Code Problem ** Again**
That accidentally got left on from the previous use of Thread.sleep
|
|
#7
|
|||
|
|||
|
Re: Robot Code Problem ** Again**
When The ArmsVertical Talon is activated the Arms extend, Our robot has the option to extend and recall the arms.
as for the Arms in and out it goes inward in both directions to pick up/ let go of the bins/ garbage cans |
|
#8
|
|||||
|
|||||
|
Re: Robot Code Problem ** Again**
Quote:
Code:
new JoystickButton(joystick, 0).whenPressed(new Command()); As for anything beyond that, I'm sorry, but I didn't read it all. When posting code on chief, or anywhere else on the internet for that matter, always remember to format your code with code tags, which on chief look like this: [*CODE][*/CODE], except without the star. Another good rule of thumb is that people won't help you if you post more than 200 lines of code. So try and meet that, even if it takes some abstraction on your part. |
|
#9
|
|||
|
|||
|
Re: Robot Code Problem ** Again**
Quote:
The command you specified will be automatically triggered as long as you are running the Scheduler every teleop loop |
|
#10
|
|||
|
|||
|
Re: Robot Code Problem ** Again**
Would this be a better way to set it up ? The template that I am using dose not have a OI
public void teleopPeriodic() { Drive.arcadeDrive(drivestick); new JoystickButton(joystick, 1).whenPressed(new ElevatorOff()); new JoystickButton(joystick, 2).whenPressed(new ElevatorOn()); new JoystickButton(joystick, 3).whenPressed(new ElevatorReverse()); new JoystickButton(joystick, 4).whenPressed(new ArmsOut()); new JoystickButton(joystick, 5).whenPressed(new ArmsIn()); new JoystickButton(joystick, 6).whenPressed(new ArmsVerticalIn()); new JoystickButton(joystick, 7).whenPressed(new ArmsVarticalOut()); new JoystickButton(joystick, 8).whenPressed(new BlueLightShow()); new JoystickButton(joystick, 9).whenPressed(new LigthShowOn()); new JoystickButton(joystick, 10).whenPressed(new RedLightShow()); new JoystickButton(joystick, 11).whenPressed(new LightShowEnd()); } |
|
#11
|
|||
|
|||
|
Re: Robot Code Problem ** Again**
Would this be a better way to set it up ? The template that I am using dose not have a OI
public void teleopPeriodic() { Drive.arcadeDrive(drivestick); new JoystickButton(joystick, 1).whenPressed(new ElevatorOff()); new JoystickButton(joystick, 2).whenPressed(new ElevatorOn()); new JoystickButton(joystick, 3).whenPressed(new ElevatorReverse()); new JoystickButton(joystick, 4).whenPressed(new ArmsOut()); new JoystickButton(joystick, 5).whenPressed(new ArmsIn()); new JoystickButton(joystick, 6).whenPressed(new ArmsVerticalIn()); new JoystickButton(joystick, 7).whenPressed(new ArmsVarticalOut()); new JoystickButton(joystick, 8).whenPressed(new BlueLightShow()); new JoystickButton(joystick, 9).whenPressed(new LigthShowOn()); new JoystickButton(joystick, 10).whenPressed(new RedLightShow()); new JoystickButton(joystick, 11).whenPressed(new LightShowEnd()); } |
|
#12
|
||||
|
||||
|
Re: Robot Code Problem ** Again**
Another issue may be that you are declaring your buttons in teleopPeriodic. That will create these commands every 20ms. Instead declare them in your constructor or in teleopInit.
|
|
#13
|
|||
|
|||
|
Re: Robot Code Problem ** Again**
When I remove them from that section it dose not put the two sets as connected and pulls up tons of syntax errors
|
|
#14
|
|||||
|
|||||
|
Re: Robot Code Problem ** Again**
When you remove them where do you put them?
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|