Advertisement
roll11226

ff

Mar 2nd, 2017
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.03 KB | None | 0 0
  1. package org.firstinspires.ftc.teamcode.COMPATITAION;
  2.  
  3. import android.graphics.Color;
  4.  
  5. import com.qualcomm.robotcore.eventloop.opmode.Autonomous;
  6. import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode;
  7. import com.qualcomm.robotcore.hardware.DcMotor;
  8. import com.qualcomm.robotcore.util.ElapsedTime;
  9.  
  10.  
  11. @Autonomous(name = "auto beacon-shot_blue", group = "nobody likes you")
  12.  
  13. public class auto_beaconShot_blue extends LinearOpMode
  14. {
  15.  
  16. private enum beaconcolor
  17. {
  18. sRed,
  19. sBlue,
  20. sUnknown
  21. }
  22. private double red, blue;
  23. private ElapsedTime time = new ElapsedTime();
  24. private int redtimes = 0;
  25. private int bluetimes = 0;
  26. int gyro_angle;
  27. private beaconcolor m_beaconcolor;
  28. private HardWare11226 hardware = new HardWare11226();
  29. boolean runonce;
  30. final double wheel_peremeter = 12.56;
  31.  
  32. @Override
  33. public void runOpMode() throws InterruptedException {
  34.  
  35. hardware.init(hardwareMap);
  36. runonce = true;
  37.  
  38. hardware.gyro_sensor.calibrate();
  39.  
  40. while (hardware.gyro_sensor.isCalibrating())
  41. {
  42. Thread.sleep(50);
  43. telemetry.addData("status :", "calibrating");
  44. telemetry.update();
  45. idle();
  46. }
  47.  
  48. hardware.leftMotor.setDirection(DcMotor.Direction.FORWARD);
  49. hardware.rightMotor.setDirection(DcMotor.Direction.REVERSE);
  50. gyro_angle = hardware.gyro_sensor.getHeading();
  51. beginf();
  52. telemetry.addData("Status", "ready to run.");
  53. telemetry.update();
  54.  
  55. waitForStart();
  56. time.reset();
  57. time.startTime();
  58.  
  59. while (opModeIsActive())
  60. {
  61. telemetry.addData("Status: ", "while.");
  62.  
  63. if (runonce == true)
  64. {
  65.  
  66.  
  67. driving(0.2, 28);
  68. turning(90, 0.6);
  69. sleep(350);
  70. driving(24, 0.8);
  71. turning(-90, -0.6);
  72. driving(18, 0.8);
  73. gyro(0.2, 90);
  74. driving(25, 0.6);
  75. telemetry.addData("beacon detect :", "start now");
  76. beaconDetectBlue();
  77. telemetry.addData("beacon detect :", "detected");
  78. telemetry.addData("done", "1");
  79. telemetry.update();
  80. driving(-31, -1);
  81. turning(175, 0.6);
  82. Shooting();
  83. hardware.collectMotor.setPower(1);
  84. driving(20, 1);
  85. runonce = false;
  86. }
  87.  
  88. telemetry.update();
  89. idle();
  90. }
  91. Stop();
  92. }
  93.  
  94. public void turning(int angle, double power) {
  95.  
  96.  
  97. int Target = (int) (((46.4955713 / wheel_peremeter) * 3.111) * angle);
  98.  
  99. hardware.leftMotor.setTargetPosition(Target);
  100. hardware.rightMotor.setTargetPosition(-Target);
  101.  
  102. hardware.leftMotor.setMode(DcMotor.RunMode.RUN_TO_POSITION);
  103. hardware.rightMotor.setMode(DcMotor.RunMode.RUN_TO_POSITION);
  104.  
  105. hardware.leftMotor.setPower(power);
  106. hardware.rightMotor.setPower(-power);
  107.  
  108. while (hardware.leftMotor.isBusy() && hardware.rightMotor.isBusy() && opModeIsActive()) {
  109. telemetry.addData("Status: ", "isBusy.");
  110. telemetry.addData("left pos", hardware.leftMotor.getCurrentPosition());
  111. telemetry.addData("right pos", hardware.rightMotor.getCurrentPosition());
  112. telemetry.update();
  113. }
  114.  
  115. Stop();
  116. beginf();
  117. sleep(350);
  118.  
  119. telemetry.update();
  120. }
  121.  
  122. public void driving(double distance, double power) {
  123.  
  124. int Target = (int) ((distance / wheel_peremeter) * 1120);
  125. hardware.leftMotor.setTargetPosition(Target);
  126. hardware.rightMotor.setTargetPosition(Target);
  127.  
  128. hardware.leftMotor.setMode(DcMotor.RunMode.RUN_TO_POSITION);
  129. hardware.rightMotor.setMode(DcMotor.RunMode.RUN_TO_POSITION);
  130.  
  131. hardware.leftMotor.setPower(power);
  132. hardware.rightMotor.setPower(power);
  133. while (hardware.rightMotor.isBusy() && opModeIsActive()) {
  134. telemetry.addData("Status: ", "isBusy.");
  135. telemetry.addData("left pos", hardware.leftMotor.getCurrentPosition());
  136. telemetry.addData("right pos", hardware.rightMotor.getCurrentPosition());
  137.  
  138. }
  139.  
  140. Stop();
  141. beginf();
  142. sleep(350);
  143.  
  144. telemetry.update();
  145. }
  146.  
  147. public void Stop() {
  148. hardware.leftMotor.setPower(0);
  149. hardware.rightMotor.setPower(0);
  150. }
  151.  
  152. public void beaconDetectBlue() throws InterruptedException {
  153. float hsvValues[] = {0F, 0F, 0F};
  154. Color.RGBToHSV(hardware.color_sensor_red.red() * 8, hardware.color_sensor_red.green() * 8, hardware.color_sensor_red.blue() * 8, hsvValues);
  155. time.reset();
  156. while (time.milliseconds() <= 600 && opModeIsActive()) {
  157. if (hsvValues[0] <= 40 || hsvValues[0] >= 340) {
  158. redtimes++;
  159. telemetry.addData("red :", redtimes);
  160. telemetry.update();
  161. } else if (hsvValues[0] <= 240 || hsvValues[0] >= 220) {
  162. bluetimes++;
  163. telemetry.addData("blue :", bluetimes);
  164. telemetry.update();
  165. }
  166. }
  167.  
  168. if (redtimes > bluetimes) {
  169. m_beaconcolor = beaconcolor.sRed;
  170. telemetry.addData("case red :", redtimes);
  171. telemetry.update();
  172. } else if (bluetimes > redtimes) {
  173. m_beaconcolor = beaconcolor.sBlue;
  174. telemetry.addData("case blue", bluetimes);
  175. telemetry.update();
  176. } else {
  177. m_beaconcolor = beaconcolor.sUnknown;
  178. }
  179.  
  180.  
  181. telemetry.addData("hue", hsvValues[0]);
  182. telemetry.addData("redtimes", redtimes);
  183. driving(5, 0.4);
  184. driving(5, -0.4);
  185. telemetry.addData("bluetimes", bluetimes);
  186.  
  187. telemetry.update();
  188.  
  189. switch (m_beaconcolor) {
  190. case sBlue:
  191. telemetry.addData("beacon color detected!!!", " blue");
  192. telemetry.update();
  193. break;
  194.  
  195. case sRed:
  196. telemetry.addData("beacon color detected!!!", " red");
  197. telemetry.update();
  198. driving(-4, -0.8);
  199. sleep(4500);
  200. driving(5, -0.8);
  201. break;
  202.  
  203. case sUnknown:
  204. telemetry.addData("beacon color NOT detected!!!", " search again for color");
  205. telemetry.update();
  206. beaconDetectBlue();
  207. break;
  208. }
  209. }
  210.  
  211.  
  212.  
  213. public void beginf() {
  214.  
  215. hardware.leftMotor.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
  216. hardware.rightMotor.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
  217.  
  218. hardware.leftMotor.setMode(DcMotor.RunMode.RUN_USING_ENCODER);
  219. hardware.rightMotor.setMode(DcMotor.RunMode.RUN_USING_ENCODER);
  220.  
  221.  
  222. }
  223.  
  224. public void gyro(double power, int idil)
  225. {
  226.  
  227. while ((gyro_angle > idil + 2 || gyro_angle < idil - 2) && opModeIsActive())
  228. {
  229. hardware.leftMotor.setPower(power);
  230. hardware.rightMotor.setPower(-power);
  231.  
  232. gyro_angle = hardware.gyro_sensor.getHeading();
  233. telemetry.addData("angle :", gyro_angle);
  234. telemetry.update();
  235. }
  236.  
  237. telemetry.addData("angle :", gyro_angle);
  238. telemetry.update();
  239.  
  240. Stop();
  241. sleep(350);
  242. }
  243. private void Shooting() {
  244. hardware.shootingMotor.setPower(1);
  245. sleep(1000);
  246. hardware.shootingServo.setPosition(0);
  247. sleep(500);
  248. hardware.shootingServo.setPosition(1);
  249. hardware.shootingMotor.setPower(0);
  250. hardware.collectMotor.setPower(-0.8);
  251. sleep(2000);
  252. hardware.shootingMotor.setPower(1);
  253. sleep(1000);
  254. hardware.shootingServo.setPosition(0);
  255. sleep(1000);
  256. hardware.shootingMotor.setPower(0);
  257. hardware.collectMotor.setPower(0);
  258.  
  259. }
  260.  
  261. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement