Skip to content

Commit

Permalink
Added tank drive and remade the drive mode switching. Also got lazy a…
Browse files Browse the repository at this point in the history
…nd combined most of the screen prints for teleop into one method, only a tiny bit less efficient, it really doesn't matter.
  • Loading branch information
floogulinc committed Feb 10, 2014
1 parent c0c3444 commit d0d9d2e
Showing 1 changed file with 106 additions and 61 deletions.
167 changes: 106 additions & 61 deletions src/com/frc2879/bender/Robot.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
import edu.wpi.first.wpilibj.SimpleRobot;
import edu.wpi.first.wpilibj.Timer;
import edu.wpi.first.wpilibj.camera.AxisCamera;
import edu.wpi.first.wpilibj.camera.AxisCameraException;

/**
*
Expand All @@ -29,16 +28,17 @@ public class Robot extends SimpleRobot {
//Gamepad gp = new Gamepad(1);
GamepadXbox gp = new GamepadXbox(1);

public final String name = "Bender Bot";
public final String version = "v1.09";
public final String fullname = name + " " + version;
public static final String name = "Bender Bot";
public static final String version = "v1.10";
public static final String fullname = name + " " + version;

// CONFIG VALUES
int DriveSensitivity = 100;
int TurnSensitivity = 100;
boolean SquaredInputs = true;

boolean sawyerdrive = false;
//boolean sawyerdrive = false;
int DriveMode = 0; // 0 is arcade, 1 is tank, 2 is sawyer

DSOutput dsout;

Expand Down Expand Up @@ -67,30 +67,63 @@ protected void robotInit() {

boolean bumpertoggle = false; //true is turn sensitivity, false for drive

public void saydrivesensitivity() {
public void saydrivesensitivity(int line) {
if (bumpertoggle) {
dsout.say(2, "DSensitivity: " + Integer.toString(DriveSensitivity));
dsout.say(line, "DSensitivity: " + Integer.toString(DriveSensitivity));
} else {
dsout.say(2, "*DSensitivity: " + Integer.toString(DriveSensitivity));
dsout.say(line, "*DSensitivity: " + Integer.toString(DriveSensitivity));
}

}

public void sayturnsensitivity() {
public void sayturnsensitivity(int line) {
if (bumpertoggle) {
dsout.say(3, "*TSensitivity: " + Integer.toString(TurnSensitivity));
dsout.say(line, "*TSensitivity: " + Integer.toString(TurnSensitivity));
} else {
dsout.say(3, "TSensitivity: " + Integer.toString(TurnSensitivity));
dsout.say(line, "TSensitivity: " + Integer.toString(TurnSensitivity));
}

}

public void saysquaredinputs() {
dsout.say(4, "Squared Inputs: " + SquaredInputs);
public void saysquaredinputs(int line) {
dsout.say(line, "Squared Inputs: " + SquaredInputs);
}


String[] drivemodename = {
"Arcade",
"Tank",
"Sawyer" };

public void saysawyerdrive() {
dsout.say(5, "Sawyer Drive: " + sawyerdrive);
public void saydrivemode(int line) {
dsout.say(line, "Mode: " + drivemodename[DriveMode]);
}

public void sayscreentele() {

dsout.say(1, fullname);
saydrivemode(2);
saysquaredinputs(3);
if(DriveMode == 1){
dsout.clearLine(4);
dsout.clearLine(5);
}else {
saydrivesensitivity(4);
sayturnsensitivity(5);
}
}

public void switchdrivemode(){
switch(DriveMode){
case 0: DriveMode = 1;
break;
case 1: DriveMode = 2;
break;
case 2: DriveMode = 0;
break;
default: DriveMode = 0;
break;
}
}

/**
Expand Down Expand Up @@ -120,80 +153,92 @@ public void autonomous() {
public void operatorControl() {
drivetrain.setSafetyEnabled(true);
dsout.clearOutput();
dsout.say(1, fullname);
saydrivesensitivity();
sayturnsensitivity();
saysquaredinputs();
saysawyerdrive();
sayscreentele();
while (isOperatorControl() && isEnabled()) {

// Update joystick values:
double move;
double spin;
move = (gp.getLeftY() * ((double) (DriveSensitivity) / 100));
if(sawyerdrive) {
spin = (gp.getRightX() * ((double) (TurnSensitivity) / 100));
} else {
double move = 0;
double spin = 0;

double tankleft = 0;
double tankright = 0;

if (DriveMode == 0) {
move = (gp.getLeftY() * ((double) (DriveSensitivity) / 100));
spin = (gp.getLeftX() * ((double) (TurnSensitivity) / 100));
} else if (DriveMode == 2) {
move = (gp.getLeftY() * ((double) (DriveSensitivity) / 100));
spin = (gp.getRightX() * ((double) (TurnSensitivity) / 100));
} else if (DriveMode == 1) {
tankleft = gp.getLeftY();
tankright = gp.getRightY();
}


if (gp.getButtonStateRightBumper()) {
pbuttonRB = true;
} else if (pbuttonRB && !gp.getButtonStateRightBumper()) {
if (bumpertoggle) {
TurnSensitivity = (TurnSensitivity) + (10);
sayturnsensitivity();
} else {
DriveSensitivity = (DriveSensitivity) + (10);
saydrivesensitivity();
if (DriveMode != 1) {

if (gp.getButtonStateRightBumper()) {
pbuttonRB = true;
} else if (pbuttonRB && !gp.getButtonStateRightBumper()) {
if (bumpertoggle) {
TurnSensitivity = (TurnSensitivity) + (10);
sayscreentele();
} else {
DriveSensitivity = (DriveSensitivity) + (10);
sayscreentele();
}
pbuttonRB = false;
}
pbuttonRB = false;
}

if (gp.getButtonStateLeftBumper()) {
pbuttonLB = true;
} else if (pbuttonLB && !gp.getButtonStateLeftBumper()) {
if (bumpertoggle) {
TurnSensitivity = (TurnSensitivity) - (10);
sayturnsensitivity();
} else {
DriveSensitivity = (DriveSensitivity) - (10);
saydrivesensitivity();
if (gp.getButtonStateLeftBumper()) {
pbuttonLB = true;
} else if (pbuttonLB && !gp.getButtonStateLeftBumper()) {
if (bumpertoggle) {
TurnSensitivity = (TurnSensitivity) - (10);
sayscreentele();
} else {
DriveSensitivity = (DriveSensitivity) - (10);
sayscreentele();
}
pbuttonLB = false;
}

if (gp.getButtonStateY()) {
pbuttonY = true;
} else if (pbuttonY && !gp.getButtonStateY()) {
bumpertoggle = !bumpertoggle;
sayscreentele();
pbuttonY = false;
}
pbuttonLB = false;
}

if (gp.getButtonStateY()) {
pbuttonY = true;
} else if (pbuttonY && !gp.getButtonStateY()) {
bumpertoggle = !bumpertoggle;
saydrivesensitivity();
sayturnsensitivity();
pbuttonY = false;
}


if (gp.getButtonStateX()) {
pbuttonX = true;
} else if (pbuttonX && !gp.getButtonStateX()) {
SquaredInputs = !SquaredInputs;
saysquaredinputs();
sayscreentele();
pbuttonX = false;
}
if (gp.getButtonStateBACK()) {
pbuttonBACK = true;
} else if (pbuttonBACK && !gp.getButtonStateBACK()) {
sawyerdrive = !sawyerdrive;
saysawyerdrive();
switchdrivemode();
sayscreentele();
pbuttonBACK = false;
}

// Drive da robot:
drivetrain.arcadeDrive(move, spin, SquaredInputs);
if(DriveMode == 1){
drivetrain.tankDrive(tankleft, tankright, SquaredInputs);
} else {
drivetrain.arcadeDrive(move, spin, SquaredInputs);
}


Timer.delay(0.005);
}

dsout.clearOutput();
}

protected void disabled(){
Expand Down

0 comments on commit d0d9d2e

Please sign in to comment.