PageRenderTime 50ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/scorer/scorer-3.0/OFFENSIVE MAIN CODE 3.c

https://github.com/NHHSRoboticsClub/Botball2011
C | 249 lines | 150 code | 19 blank | 80 comment | 16 complexity | 78b766bfeeb9c4aee01c8e5a00b943bb MD5 | raw file
  1. /***************************************************************************
  2. ********* This comment area should be filled with a description
  3. ********* of your program and what it does.
  4. ***************************************************************************/
  5. /* Libraries used in Botball are automatically included, but list any additional includes below */
  6. /* #defines and constants go below.*/
  7. /* Global variables go below (if you absolutely need them).*/
  8. /*Function prototypes below*/
  9. void left(int tspeed);
  10. void right(int tspeed);
  11. void LuggageTrack();
  12. void movebackward();
  13. void turnCW();
  14. void turnCCW();
  15. void clawlift();
  16. void clawdrop();
  17. void cameratrack();
  18. void detectlinestop();
  19. void movecenterslow();
  20. void movecenterfast();
  21. void turnCCWtenth();
  22. int main()
  23. {
  24. // wait_for_light(7);
  25. enable_servos();
  26. set_servo_position(1,2000);
  27. float threshold=190; // set threshold for light conditions
  28. while(analog(4) <= 190 && analog(6) <= 190) {
  29. movecenterslow(500);
  30. }
  31. if(analog(4) >= threshold ||analog(6) >= threshold) {
  32. ao();
  33. sleep(.5);
  34. movecenterslow(400);
  35. sleep(.2);
  36. }
  37. while(analog(4) <= 190 && analog(6) <= 190) {
  38. movecenterslow(500);
  39. }
  40. ao();
  41. turnCCW();
  42. sleep(1);
  43. movecenterfast(900);
  44. sleep(3.2124512516);
  45. turnCW();
  46. while(analog(4) <= 190 && analog(6) <= 190) {
  47. movecenterfast(500);
  48. }
  49. ao();
  50. sleep(8);
  51. movecenterfast(800);
  52. sleep(1);
  53. while(analog(4) <= 190) {
  54. movecenterslow(500);
  55. }
  56. ao();
  57. }
  58. void turnCW(){
  59. mav(0,-700); mav(1,700);
  60. sleep(0.479999);
  61. ao();
  62. }
  63. void turnCCW(){
  64. mav(0,700); mav(1,-700);
  65. sleep(0.46);
  66. ao();
  67. }
  68. void clawlift() {
  69. enable_servos();
  70. set_servo_position(1,400);
  71. }
  72. void clawdrop() {
  73. enable_servos();
  74. set_servo_position(1,1400);
  75. }
  76. void cameratrack()
  77. {
  78. //enable_servos();
  79. //set_servo_position(1,0);
  80. track_update();
  81. if (track_x(0,0) < track_x(2,0)) //Pink on left
  82. {
  83. track_update();
  84. while (track_x (0,0) > 82 || track_x (0,0) <77)
  85. {
  86. if (track_x(0, 0) > 82)
  87. {
  88. while(track_x(0,0) > 82)
  89. {
  90. track_update();
  91. left(700);
  92. }
  93. ao();
  94. }
  95. else // (track_x(0,0) < X)
  96. {
  97. while (track_x(0, 0) < 77)
  98. {
  99. track_update();
  100. right(700);
  101. }
  102. }
  103. }
  104. ao();
  105. movecenterfast(800);
  106. }
  107. else
  108. {
  109. track_update();
  110. while (track_x (2,0) > 82 || track_x (2,0) < 77)
  111. {
  112. if (track_x(2, 0) > 82)
  113. {
  114. while(track_x(2,0) > 82)
  115. {
  116. track_update();
  117. left(100);
  118. }
  119. ao();
  120. }
  121. else // (track_x(0,0) < X)
  122. {
  123. while (track_x(2, 0) < 77)
  124. {
  125. track_update();
  126. right(100);
  127. }
  128. }
  129. }
  130. ao();
  131. movecenterfast(800);
  132. // set_servo_position(1,800);
  133. }
  134. }
  135. void movecenterfast(int tspeed)
  136. {
  137. mav(1, tspeed);
  138. mav(0, tspeed - 40); // AACCOUNTS FOR SHITTY MECHANICS WHEELS MAKES LEFT WHEEL FASTER!
  139. }
  140. void movecenterslow(int tspeed)
  141. {
  142. mav(1, tspeed);
  143. mav(0, tspeed - 10); // AACCOUNTS FOR SHITTY MECHANICS WHEELS MAKES LEFT WHEEL FASTER!
  144. }
  145. void leftRed(int tspeed) {
  146. mav(1, -tspeed);
  147. mav(0, tspeed);
  148. }
  149. void rightRed(int tspeed) {
  150. mav(1, tspeed);
  151. mav(0, -tspeed);
  152. }
  153. void right(int tspeed)
  154. {
  155. mav(1, tspeed);
  156. mav(0, tspeed -200);
  157. }
  158. void left(int tspeed)
  159. {
  160. mav(1, tspeed-200);
  161. mav(0, tspeed);
  162. }
  163. // this entire shit fest requires changing all the "forwards" and stuff to movecenterfast and etc. Servo Position is wrong. etc fuck this shit
  164. /*void LuggageTrack()
  165. {
  166. enable_servos();
  167. set_servo_position(1,0);
  168. track_update();
  169. if (track_x(0,0) < track_x(2,0)) //Pink on left
  170. {
  171. track_update();
  172. while (track_x (0,0) > X+5 || track_x (0,0) < X-5)
  173. {
  174. if (track_x(0, 0) > X+5)
  175. {
  176. while(track_x(0,0) > X+5)
  177. {
  178. track_update();
  179. left(100);
  180. }
  181. ao();
  182. }
  183. else // (track_x(0,0) < X)
  184. {
  185. while (track_x(0, 0) < X-5)
  186. {
  187. track_update();
  188. right(100);
  189. }
  190. }
  191. }
  192. ao();
  193. forward(500);
  194. while (a_button() == 0)
  195. {}
  196. ao();
  197. set_servo_position(1,800);
  198. }
  199. else
  200. {
  201. track_update();
  202. while (track_x (2,0) > X+5 || track_x (2,0) < X-5)
  203. {
  204. if (track_x(2, 0) > X+5)
  205. {
  206. while(track_x(2,0) > X+5)
  207. {
  208. track_update();
  209. left(100);
  210. }
  211. ao();
  212. }
  213. else // (track_x(0,0) < X)
  214. {
  215. while (track_x(2, 0) < X-5)
  216. {
  217. track_update();
  218. right(100);
  219. }
  220. }
  221. }
  222. ao();
  223. forward(500);
  224. while (a_button() == 0)
  225. {}
  226. ao();
  227. set_servo_position(1,800);
  228. }
  229. }