Advertisement
Bosssu

Project 8

Sep 16th, 2014
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. #include <atx.h>
  2. #define BLACK 200
  3. #define LEFT_SENSOR 5
  4. #define RIGHT_SENSOR 4
  5. int state = 1 ;
  6. void setup()
  7. {
  8. lcd("pressSW1");
  9. sw1_press();
  10. beep();
  11. }
  12. void loop()
  13. {
  14.  
  15. int left = analogRead(LEFT_SENSOR);
  16. int right = analogRead(RIGHT_SENSOR);
  17. if(left < 200 && right < 200)
  18. {
  19. switch(state)
  20. {
  21. case 1:
  22. {
  23. spin_right(100);
  24. delay(200);
  25. break;
  26. }
  27. case 2:
  28. {
  29. spin_right(100);
  30. delay(200);
  31. break;
  32. }
  33. case 3:
  34. {
  35.  
  36. spin_right(100);
  37. delay(350);
  38. go_forward(100);
  39. delay(90);
  40. break;
  41. }
  42. case 4:
  43. {
  44. spin_right(100);
  45. delay(250);
  46. break;
  47. }
  48. case 5:
  49. {
  50. spin_right(100);
  51. delay(250);
  52. break;
  53. }
  54. case 6:
  55. {
  56. spin_right(100);
  57. delay(200);
  58. break;
  59. }
  60. case 7 :
  61. {
  62. spin_right(100);
  63. delay(200);
  64. break;
  65. }
  66. case 8 :
  67. {
  68. spin_left(100);
  69. delay(200);
  70. break;
  71. }
  72. case 9 :
  73. {
  74. spin_right(100);
  75. delay(200);
  76.  
  77. break;
  78. }
  79. case 10 :
  80. {
  81. timed_follow(3000 );
  82. break;
  83. }
  84.  
  85. case 11 :
  86. {
  87. spin_right(100);
  88. delay(200);
  89. break;
  90. }
  91. default:
  92. {
  93. motor_stop(ALL);
  94. sw1_press();
  95. }
  96. }
  97. state = state + 1;
  98. }
  99. else if( left < 200 )
  100. {
  101. spin_left(100);
  102. }
  103. else if( right < 200 )
  104. {
  105. spin_right(100);
  106. }
  107. else
  108. {
  109. go_forward(20);
  110. }
  111. }
  112. void spin_left(int t_power)
  113. {
  114. motor(0,t_power);
  115. motor(1,t_power);
  116. motor(2,-t_power);
  117. motor(3,-t_power);
  118. }
  119. void turn_left(int t_power)
  120. {
  121. motor(0,t_power);
  122. motor(1,t_power);
  123. motor(2,0);
  124. motor(3,0);
  125. }
  126. void spin_right(int t_power)
  127. {
  128. motor(0,-t_power);
  129. motor(1,-t_power);
  130. motor(2,t_power);
  131. motor(3,t_power);
  132. }
  133. void go_forward(int f_power)
  134. {
  135. motor(0,f_power);
  136. motor(1,f_power);
  137. motor(2,f_power);
  138. motor(3,f_power);
  139. }
  140.  
  141. void timed_follow( long ms )
  142. {
  143. long start = millis();
  144. while( millis() - start < ms )
  145. {
  146. int left = analogRead(LEFT_SENSOR);
  147. if( left < 200 )
  148. {
  149. spin_left(100);
  150. }
  151. else
  152. {
  153. go_forward(20);
  154. }
  155. }
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement