Advertisement
roll11226

auto_2

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