Guest User

EcoGolfer Code

a guest
May 14th, 2023
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.26 KB | Source Code | 0 0
  1. Robot Autonomous Code Generator (python)
  2. -----
  3. # request dimensions from user
  4. try:
  5. length = float(input("Please enter length of patrol zone in feet: "))
  6. # return error if not give a number
  7. except ValueError:
  8. print("Invalid input, please enter a number.")
  9. if length != 0:
  10. width = float(input("Please enter width of patrol zone in feet: "))
  11. # multiply length in feet by 400 to give us motor steps needed to go that distance
  12. length_steps = length * 400
  13. # convert that float to a string
  14. length_steps_string = str(length_steps)
  15. # multiply width by 400 then divide by 467 to give us the number of cycles needed to cover the entire area
  16. width_steps = width * 400 / 467
  17. # round this number to the closest one to ensure we can use it for our loop
  18. round_width_steps = round(width_steps)
  19. # convert this number to a string
  20. width_steps_string = str(round_width_steps)
  21. # template robot code to use parameters, works for all rectrangular areas
  22. template_code = ' \n \n Here is your generated code: \n \n package org.firstinspires.ftc.teamcode; \n \n import com.qualcomm.hardware.rev.RevHubOrientationOnRobot; \n import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; \n import com.qualcomm.robotcore.eventloop.opmode.TeleOp;\n import com.qualcomm.robotcore.hardware.DcMotor; \n import com.qualcomm.robotcore.hardware.IMU; \n import org.firstinspires.ftc.robotcore.external.navigation.AngleUnit; \n import org.firstinspires.ftc.robotcore.external.navigation.AxesOrder; \n import org.firstinspires.ftc.robotcore.external.navigation.AxesReference; \n import org.firstinspires.ftc.robotcore.external.navigation.Orientation; \n @TeleOp(name = "RealPatrolAutoEx (Blocks to Java)") \n public class RealPatrolAutoEx extends LinearOpMode { \n private IMU imu_IMU; \n private DcMotor frontRight; \n private DcMotor backRight; \n private DcMotor leftRear; \n private DcMotor leftFront; \n \n @Override \n public void runOpMode() { \n imu_IMU = hardwareMap.get(IMU.class, "imu"); \n frontRight = hardwareMap.get(DcMotor.class, "frontRight"); \n Intake = hardwareMap.get(DcMotor.class. "Intake"); \n backRight = hardwareMap.get(DcMotor.class, "backRight"); \n leftRear = hardwareMap.get(DcMotor.class, "leftRear"); \n leftFront = hardwareMap.get(DcMotor.class, "leftFront"); \n \n waitForStart(); \n \n if (opModeIsActive()) { \n for (int count = 0; count < times; count++) { \n telemetry.update(); \n for(;;) { \n Intake.setPower(0.4) \n } \n frontRight.setMode(DcMotor.RunMode.RUN_USING_ENCODER); \n frontRight.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER); \n frontRight.setTargetPosition(length); \n while (!(frontRight.getCurrentPosition() >= frontRight.getTargetPosition())) { \n backRight.setPower(0.5); \n frontRight.setPower(0.5); \n leftRear.setPower(-0.5); \n leftFront.setPower(-0.5); \n } \n leftRear.setPower(0); \n leftFront.setPower(0); \n backRight.setPower(0); \n frontRight.setPower(0); \n frontRight.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER); \n while (!(IMU.getAxisX == 90)) { \n leftFront.setPower(1); \n frontRight.setPower(-1); \n leftRear.setPower(1); \n backRight.setPower(-1); \n sleep(1000); \n leftFront.setPower(1); \n frontRight.setPower(1); \n leftRear.setPower(1); \n backRight.setPower(1); \n sleep(1000); \n leftFront.setPower(-1); \n frontRight.setPower(-1); \n leftRear.setPower(-1); \n backRight.setPower(-1); \n sleep(1000); \n } \n leftRear.setPower(0); \n leftFront.setPower(0); \n backRight.setPower(0); \n frontRight.setPower(0); \n frontRight.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER); \n frontRight.setTargetPosition(467); \n while (!(frontRight.getCurrentPosition() >= frontRight.getTargetPosition())) { \n backRight.setPower(0.5); \n frontRight.setPower(0.5); \n leftRear.setPower(-0.5); \n leftFront.setPower(-0.5); \n } \n IMU.GetAxisX = 0; \n while (!(IMU.GetAxisX == 90)) { \n leftFront.setPower(1); \n frontRight.setPower(-1); \n leftRear.setPower(1); \n backRight.setPower(-1); \n sleep(1000); \n leftFront.setPower(1); \n frontRight.setPower(1); \n leftRear.setPower(1); \n backRight.setPower(1); \n sleep(1000); \n leftFront.setPower(-1); \n frontRight.setPower(-1); \n leftRear.setPower(-1); \n backRight.setPower(-1); \n sleep(1000); \n } \n backRight.setPower(0); \n frontRight.setPower(0); \n leftRear.setPower(0); \n leftFront.setPower(0); \n } \n } \n } \n } \n '
  23. # add our parameters to the code
  24. length_code = template_code.replace("length", length_steps_string)
  25. final_code = length_code.replace("times", width_steps_string)
  26. # print the final product
  27. print(final_code)
  28. -----
  29. Robot Tele-Op Mode (java)
  30. -----
  31. //import packages and modules
  32. package org.firstinspires.ftc.teamcode;
  33.  
  34. import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode;
  35. import com.qualcomm.robotcore.eventloop.opmode.TeleOp;
  36. import com.qualcomm.robotcore.hardware.DcMotor;
  37. import com.qualcomm.robotcore.hardware.DcMotorSimple;
  38.  
  39. @TeleOp(name = "TH EcoGolfer Tele-Op")
  40. public class noomnitank extends LinearOpMode {
  41. //configure motors
  42. private DcMotor leftRear;
  43. private DcMotor leftFront;
  44. private DcMotor LeftIntake;
  45. private DcMotor RightIntake;
  46. private DcMotor frontRight;
  47. private DcMotor backRight;
  48.  
  49.  
  50. @Override
  51. public void runOpMode() {
  52. leftRear = hardwareMap.get(DcMotor.class, "leftRear");
  53. leftFront = hardwareMap.get(DcMotor.class, "leftFront");
  54. LeftIntake = hardwareMap.get(DcMotor.class, "LeftIntake");
  55. RightIntake = hardwareMap.get(DcMotor.class, "RightIntake");
  56. frontRight = hardwareMap.get(DcMotor.class, "frontRight");
  57. backRight = hardwareMap.get(DcMotor.class, "backRight");
  58.  
  59. // reverse left motors
  60. leftRear.setDirection(DcMotorSimple.Direction.REVERSE);
  61. leftFront.setDirection(DcMotorSimple.Direction.REVERSE);
  62. waitForStart();
  63. if (opModeIsActive())
  64. while (opModeIsActive()) {
  65. //turn on intake motors
  66. if (opModeIsActive()) {
  67. LeftIntake.setPower(0.4);
  68. RightIntake.setPower(-0.4);
  69. }
  70. //if stick up, go forward
  71. if (gamepad2.left_stick_y > 0.1) {
  72. leftFront.setPower(-1);
  73. frontRight.setPower(-1);
  74. leftRear.setPower(-1);
  75. backRight.setPower(-1);
  76. } else {
  77. //if stick down, go backward
  78. if (gamepad2.left_stick_y < -0.1) {
  79. leftFront.setPower(1);
  80. frontRight.setPower(1);
  81. leftRear.setPower(1);
  82. backRight.setPower(1);
  83. } else {
  84. //if stick right, turn right
  85. if (gamepad2.left_stick_x > 0.1) {
  86. for (int count = 0; count < 1; count++) {
  87. leftFront.setPower(1);
  88. frontRight.setPower(-1);
  89. leftRear.setPower(1);
  90. backRight.setPower(-1);
  91. }
  92. } else {
  93. //if stick left, turn left
  94. } else {
  95. if (gamepad2.left_stick_x < -0.1) {
  96. leftFront.setPower(-1);
  97. frontRight.setPower(1);
  98. leftRear.setPower(-1);
  99. backRight.setPower(1);
  100. //if no direction is being held, stop the drive mototrs
  101. } else {
  102. leftFront.setPower(0);
  103. frontRight.setPower(0);
  104. leftRear.setPower(0);
  105. backRight.setPower(0);
  106. }
  107. }
  108. }
  109. }
  110. }
  111. }
  112. }
  113. }
  114. }
Advertisement
Add Comment
Please, Sign In to add comment