@Override
  public void runOpMode() throws InterruptedException {

    leftMotor = hardwareMap.dcMotor.get("left_drive");
    rightMotor = hardwareMap.dcMotor.get("right_drive");

    arm = hardwareMap.dcMotor.get("arm");

    sensorGyro = (ModernRoboticsI2cGyro) hardwareMap.gyroSensor.get("gyro");

    leftMotor.setDirection(DcMotor.Direction.REVERSE);
    arm.setDirection(DcMotor.Direction.REVERSE);

    // autonomous(Red, NoSleep);

    sensorGyro.calibrate();

    waitForStart();

    while (sensorGyro.isCalibrating()) {
      Thread.sleep(50);
    }

    telemetry.addData("Heading ", sensorGyro.getHeading());
    telemetry.addData("Integrated ", sensorGyro.getIntegratedZValue());

    setDriveMotors(1);
    sleep(250);
    setDriveMotors(0);

    telemetry.addData("Heading ", sensorGyro.getHeading());
    telemetry.addData("Integrated ", sensorGyro.getIntegratedZValue());

    turn(90);

    telemetry.addData("Heading ", sensorGyro.getHeading());
    telemetry.addData("Integrated ", sensorGyro.getIntegratedZValue());

    sleep(10000);

    turn(287);

    telemetry.addData("Heading ", sensorGyro.getHeading());
    telemetry.addData("Integrated ", sensorGyro.getIntegratedZValue());

    sleep(10000);

    turn(0);

    telemetry.addData("Heading ", sensorGyro.getHeading());
    telemetry.addData("Integrated ", sensorGyro.getIntegratedZValue());

    sleep(10000);
  }