Tuesday, December 27, 2022

Arm control - game pad

 https://docs.revrobotics.com/duo-control/programming/hello-robot-autonomous-robot/arm-control-onbot-java


package org.firstinspires.ftc.robotcontroller.external.samples;

import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode;
import com.qualcomm.robotcore.eventloop.opmode.TeleOp;
import com.qualcomm.robotcore.hardware.CRServo;
import com.qualcomm.robotcore.hardware.DcMotor;
import com.qualcomm.robotcore.hardware.Servo;
import com.qualcomm.robotcore.util.ElapsedTime;
u/TeleOp(name="Basic: MyFirstLinear OpMode", group="Linear Opmode")
//@Disabled
public class BasicOmniOpMode_Linear extends LinearOpMode { 

// Declare OpMode members.
static DcMotor leftTank;
static DcMotor rightTank;
static DcMotor elbow;
static DcMotor arm;
static CRServo clawr;
static CRServo clawl;
static Servo pivotClaw;
ElapsedTime ET = new ElapsedTime();
boolean button_bumper_right_already_pressed2 = false;
boolean button_bumper_left_already_pressed2 = false;
boolean button_a_already_pressed1 = false;
boolean button_b_already_pressed1 = false;
boolean button_y_already_pressed1 = false;
public void runOpMode() {
telemetry.addData("Status", "Initialized");
telemetry.update();
// Initialize the hardware variables. Note that the strings used here as parameters
// to 'get' must correspond to the names assigned during the robot configuration
// step (using the FTC Robot Controller app on the phone).
leftTank = hardwareMap.get(DcMotor.class, "leftTank");
rightTank = hardwareMap.get(DcMotor.class, "rightTank");
elbow = hardwareMap.get(DcMotor.class, "elbow");
arm = hardwareMap.get(DcMotor.class, "arm");
clawr = hardwareMap.get(CRServo.class, "clawr");
clawl = hardwareMap.get(CRServo.class, "clawl");
pivotClaw = hardwareMap.get(Servo.class, "pivotClaw");
leftTank.setDirection(DcMotor.Direction.REVERSE);
rightTank.setDirection(DcMotor.Direction.FORWARD);
arm.setDirection(DcMotor.Direction.FORWARD);
elbow.setDirection(DcMotor.Direction.FORWARD);
clawr.setDirection(CRServo.Direction.FORWARD);
clawl.setDirection(CRServo.Direction.REVERSE);
pivotClaw.setDirection(Servo.Direction.FORWARD);
//clawr.scaleRange(0, 0.35);
//clawl.scaleRange(0, 0.35);
clawl.setPower(-1);
clawr.setPower(-1);
sleep(1000);
clawr.setPower(0);
clawl.setPower(0);
leftTank.setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER);
rightTank.setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER);
arm.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
arm.setTargetPosition(0);
arm.setMode(DcMotor.RunMode.RUN_TO_POSITION);
elbow.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
arm.setTargetPosition(0);
arm.setMode(DcMotor.RunMode.RUN_TO_POSITION);
leftTank.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE);
rightTank.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE);
// Wait for the game to start (driver presses PLAY)
waitForStart();
ET.reset();
while (opModeIsActive()) { 

double lTPower = gamepad1.left_stick_y;
double rTPower = gamepad1.right_stick_y;
//double armPower = -gamepad2.left_stick_y;
//double elbowPower = -gamepad2.right_stick_y;
leftTank.setPower(lTPower);
rightTank.setPower(rTPower);
arm.setPower(0.5);
elbow.setPower(0.5);
if (gamepad2.right_bumper) {
clawr.setPower(1);
clawl.setPower(1);

if (gamepad2.left_bumper) {
clawr.setPower(1);
clawl.setPower(-1);

//set elbow
if (!button_bumper_left_already_pressed2) {
if (gamepad2.dpad_down) {
elbow.setTargetPosition(100000);
elbow.setMode(DcMotor.RunMode.RUN_TO_POSITION);
elbow.setPower(0.8);
arm.setTargetPosition(1000);
arm.setMode(DcMotor.RunMode.RUN_TO_POSITION);
arm.setPower(0.5);
button_bumper_left_already_pressed2 = true;
}
} else {
button_bumper_left_already_pressed2 = false;

if (!button_bumper_right_already_pressed2) {
if (gamepad2.y) {
elbow.setTargetPosition(0);
elbow.setMode(DcMotor.RunMode.RUN_TO_POSITION);
elbow.setPower(1);
arm.setTargetPosition(0);
arm.setMode(DcMotor.RunMode.RUN_TO_POSITION);
arm.setPower(1);
button_bumper_right_already_pressed2 = true;
}
} else {
button_bumper_right_already_pressed2 = false;

if (!button_a_already_pressed1) {
if (gamepad1.a) {
pivotClaw.setPosition(0);
button_a_already_pressed1 = true;
}
} else {
(button_a_already_pressed1) = false;

if (!button_b_already_pressed1) {
if (gamepad1.b) {
pivotClaw.setPosition(.25);
button_b_already_pressed1 = true;
}
} else {
button_b_already_pressed1 = false;

if (!button_y_already_pressed1) {
if (gamepad1.y) {
pivotClaw.setPosition(.5);
button_y_already_pressed1 = true;
}
} else {
button_y_already_pressed1 = false;
}
}
}
}

No comments:

Post a Comment

We are the Winner at the regional tournament !

  https://youtu.be/mseGfEwSrX4