Skip to content

Instantly share code, notes, and snippets.

@bqrichards
Created January 16, 2017 20:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bqrichards/04e0d5f75ccace341246b9adf3329634 to your computer and use it in GitHub Desktop.
Save bqrichards/04e0d5f75ccace341246b9adf3329634 to your computer and use it in GitHub Desktop.
while (opModeIsActive()) {
float x1 = gamepad1.right_stick_x, y1 = -gamepad1.right_stick_y;
float x2 = gamepad1.left_stick_x;
// Reset variables
float leftFrontPower = 0;
float leftBackPower = 0;
float rightFrontPower = 0;
float rightBackPower = 0;
// Handle regular movement
leftFrontPower += y1;
leftBackPower += y1;
rightFrontPower += y1;
rightBackPower += y1;
// Handle strafing movement
leftFrontPower += x1;
leftBackPower -= x1;
rightFrontPower -= x1;
rightBackPower += x1;
// Handle turning movement
leftFrontPower += x2;
leftBackPower += x2;
rightFrontPower -= x2;
rightBackPower -= x2;
// Scale movement
double max = Math.max(Math.abs(leftFrontPower), Math.max(Math.abs(leftBackPower),
Math.max(Math.abs(rightFrontPower), Math.abs(rightBackPower))));
if (max > 1) {
leftFrontPower = (float)Range.scale(leftFrontPower, -max, max, -1, 1);
leftBackPower = (float)Range.scale(leftBackPower, -max, max, -1, 1);
rightFrontPower = (float)Range.scale(rightFrontPower, -max, max, -1, 1);
rightBackPower = (float)Range.scale(rightBackPower, -max, max, -1, 1);
}
// Here you set the motors' power to their respected power double.
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment