sokac

is-lv5

May 12th, 2014
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.55 KB | None | 0 0
  1. /* 1. zadatak
  2. */
  3.  
  4. void naprijed(int x)
  5. {
  6. OnFwd(OUT_A + OUT_C);
  7. Wait(x);
  8. //Off(OUT_A + OUT_C);
  9. }
  10.  
  11. /* 2. zadatak
  12. */
  13. void pomak_lijevo(int x)
  14. {
  15. OnFwd(OUT_C);
  16. Wait(x);
  17. //Off(OUT_C);
  18. }
  19.  
  20. /* 3. zadatak
  21. */
  22. void pomak_desno(int x)
  23. {
  24. OnFwd(OUT_A);
  25. Off(OUT_C);
  26. Wait(x);
  27. }
  28.  
  29. void pomak_desno_rev(int x)
  30. {
  31. Off(OUT_C);
  32. OnRev(OUT_A);
  33. Wait(x);
  34. }
  35.  
  36. /* 4. zadatak
  37. */
  38. void okret_lijevo(int x)
  39. {
  40. OnFwd(OUT_C);
  41. OnRev(OUT_A);
  42. Wait(x);
  43. //Off(OUT_A + OUT_C);
  44. }
  45. /* 5. zadatak
  46. */
  47. void okret_desno(int x)
  48. {
  49. OnFwd(OUT_A);
  50. OnRev(OUT_C);
  51. Wait(x);
  52. //Off(OUT_A + OUT_C);
  53. }
  54.  
  55.  
  56. /*6.
  57. Napisati kod za oèitavanje optièkog senzora u tzv. Row obliku i funkciju koja oèitava
  58. vrijednost optièkog senzora
  59. */
  60. void opticki_senzor()
  61. {
  62. SetSensorType(SENSOR_1, SENSOR_TYPE_LIGHT);
  63. SetSensorMode(SENSOR_1, SENSOR_MODE_RAW);
  64. int x = SENSOR_1; //vrijednost optickog senzora spremljena u varijablu x
  65. }
  66.  
  67. /* Napisati kod za oèitavanje senzora dodira u tzv. Bool obliku i funkciju koja oèitava
  68. vrijednost senzora dodira.
  69. */
  70. void touch_senzor(){
  71. SetSensorType(SENSOR_1,SENSOR_TYPE_TOUCH);
  72. SetSensorMode(SENSOR_1, SENSOR_MODE_BOOL);
  73. int x = SENSOR_1; //vrijednost touch senzora spremljena u varijablu x
  74. }
  75.  
  76. void nazad(int x)
  77. {
  78. OnRev(OUT_A + OUT_C);
  79. Wait(x);
  80. //Off(OUT_A + OUT_C);
  81. }
  82.  
  83. task main()
  84. {
  85. /*
  86. Naprijed(100); //100 sekundi
  87. Pomak_lijevo(85);
  88. Pomak_desno(85);
  89. Okret_lijevo(85); //85 sekundi - 90 stupenjva
  90. Okret_desno(85);
  91.  
  92. Opticki_senzor();
  93. Touch_senzor();
  94.  
  95. // 8. zadatak
  96. Naprijed(500); //kretanje naprijed 5s
  97. Pomak_lijevo(300); //kretanje uljievo 3s
  98. Pomak_desno(300); //kretanje udesno 3s
  99. Okret_lijevo(200); //okret ulijevo 2s
  100. Okret_desno(200); //okret udesno 2s
  101. Nazad(300); //kretanje unazad 3s
  102. */
  103. //Naprijed(215);
  104.  
  105. /*
  106. SetSensor(SENSOR_2,SENSOR_LIGHT);
  107. SetSensorMode(SENSOR_2,SENSOR_MODE_RAW);
  108. int x = 0;
  109. int d = 0;
  110. while(1)
  111. {
  112. if(SENSOR_2>790){
  113. if (x == 0 && ++d >= 5) {
  114. okret_lijevo(3);
  115. } else {
  116. if(x == 1) {
  117. x = 0;
  118. d = 0;
  119. }
  120. pomak_lijevo(3);
  121. }
  122. } else{
  123. if (x == 1 && ++d >= 5) {
  124. okret_desno(3);
  125. } else {
  126. if(x == 0) {
  127. x = 1;
  128. d = 0;
  129. }
  130. pomak_desno(3);
  131. }
  132. }
  133. }
  134. */
  135. SetSensorType(SENSOR_3,SENSOR_TYPE_TOUCH);
  136. SetSensorMode(SENSOR_3, SENSOR_MODE_BOOL);
  137. SetSensorType(SENSOR_1,SENSOR_TYPE_TOUCH);
  138. SetSensorMode(SENSOR_1, SENSOR_MODE_BOOL);
  139.  
  140. int i = 0;
  141. int mode = 0;
  142. int j = 0;
  143. // mode 0 - naprijed
  144. // mode 1 - pomak desno
  145. while(1) {
  146. if (SENSOR_1 == 1) {
  147. nazad(20);
  148. okret_lijevo(10);
  149. j = 0;
  150. } else if (SENSOR_3 == 1) {
  151. if (mode == 1 && SENSOR_1 == 0) {
  152. while (i-- > 0) {
  153. pomak_desno_rev(3);
  154. }
  155. mode = 0;
  156. } else {
  157. nazad(20);
  158. okret_lijevo(10);
  159. i = 0;
  160. }
  161. j = 0;
  162. } else if (mode == 0 && ++i < 8) {
  163. if (j >= 3) {
  164. okret_desno(3);
  165. } else {
  166. naprijed(3);
  167. }
  168. } else {
  169. if (mode == 0) {
  170. mode = 1;
  171. i = 0;
  172. if (j >=3) {
  173. j = 0;
  174. }
  175. }
  176. pomak_desno(6);
  177. if (++i >= 4) {
  178. mode = 0;
  179. i = 0;
  180. ++j;
  181. }
  182. }
  183. }
  184. }
Advertisement
Add Comment
Please, Sign In to add comment