|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
||||
|
||||
|
Programming Pneumatics
I have to program 2 pistons and i'm having a hard time understanding how to do that.
![]() |
|
#2
|
||||
|
||||
|
Re: Programming Pneumatics
First you need to learn how to program four solenoids. One for extending and one for retracting each.
|
|
#3
|
||||
|
||||
|
Re: Programming Pneumatics
Would this be correct? (Please don't steal)
/*----------------------------------------------------------------------------*/ /* Copyright (c) FIRST 2008. All Rights Reserved. */ /* Open Source Software - may be modified and shared by FRC teams. The code */ /* must be accompanied by the FIRST BSD license file in the root directory of */ /* the project. */ /*----------------------------------------------------------------------------*/ package edu.wpi.first.wpilibj.templates; import edu.wpi.first.wpilibj.Compressor; import edu.wpi.first.wpilibj.Joystick; import edu.wpi.first.wpilibj.RobotDrive; import edu.wpi.first.wpilibj.SimpleRobot; import edu.wpi.first.wpilibj.Solenoid; import edu.wpi.first.wpilibj.Timer; /** * The VM is configured to automatically run this class, and to call the * functions corresponding to each mode, as described in the SimpleRobot * 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 TheReaper extends SimpleRobot { RobotDrive drive = new RobotDrive(1, 2); Joystick leftStick = new Joystick(1); Joystick rightStick = new Joystick(2); Joystick miscStick = new Joystick(3); Compressor mainCompressor = new Compressor(1,2); Solenoid piston1extract = new Solenoid(1); Solenoid piston1retract = new Solenoid(2); Solenoid piston2extract = new Solenoid(3); Solenoid piston2retract = new Solenoid(4); public void robotinit() { mainCompressor.start(); } /** * This function is called once each time the robot enters autonomous mode. */ public void autonomous() { } /** * This function is called once each time the robot enters operator control. */ public void operatorControl() { while (isOperatorControl() && isEnabled()){ drive.tankDrive(-leftStick.getY(), -rightStick.getY()); Timer.delay(0.01); if(miscStick.getRawButton(3)){ piston1extract.set(true); piston1retract.set(false); }else if(miscStick.getRawButton(4)){ piston1extract.set(false); piston1retract.set(true); }if(miscStick.getRawButton(7)){ piston2extract.set(true); piston2retract.set(false); }else if(miscStick.getRawButton(8)){ piston2extract.set(false); piston2retract.set(true); }else{ piston1extract.set(false); piston1retract.set(false); piston2extract.set(false); piston2retract.set(false); } } } /** * This function is called once each time the robot enters test mode. */ public void test() { } } |
|
#4
|
||||
|
||||
|
Re: Programming Pneumatics
Quote:
so its } if(){ } you have it set up }if(){ } which gives the false illusion of an else statement. anyway, that wont work for piston 1 because it imminently gets de-fired if piston 2 isnt being fired / retracted. also, you have no compressor regulator |
|
#5
|
||||
|
||||
|
Re: Programming Pneumatics
Logically, sort of. First, try to put your code into code blocks. It makes your code look nice :P They look like [code ] put your code here [/code ] without the spaces after them. Follow the above suggestions as well.
Code:
else
{
piston1extract.set (false);
piston1retract.set (false);
piston2extract.set (false);
piston2retract.set (false);
}
Code:
else
{
Reverse2->Set(1);
Reverse->Set(1);
Forward2->Set(0);
Forward->Set(0);
}
Code:
if (Button1)
{
Forward->Set(1);
Reverse->Set(0);
Wait(0.1);
}
else if (!Button1)
{
Forward->Set(0);
Reverse->Set(1);
Wait(0.1);
}
Last edited by ekapalka : 07-02-2013 at 21:16. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|