Advertisement
Guest User

Untitled

a guest
Feb 16th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. var __interpretation_started_timestamp__;
  2. var pi = 3.141592653589793;
  3. var d = 5.6
  4. var l = 17.5
  5. var x = 0 // Начальные координаты робота
  6. var y = 0
  7. var kp = 3
  8.  
  9. // Моторы
  10. var mLeft = brick.motor(M4).setPower;
  11. var mRight = brick.motor(M3).setPower;
  12. var cpr = 360 // Показания энкодера за оборот
  13. var v = 90
  14.  
  15. // Энкодеры
  16. var eLeft = brick.encoder(E4);
  17. var eRight = brick.encoder(E3);
  18. eLeft.reset();
  19. eRight.reset();
  20.  
  21. var cellLength = 69;
  22.  
  23. // Датчики расстояния
  24. var svFront = brick.sensor(A1);
  25. var svLeft = brick.sensor(A2);
  26. var svLight = brick.sensor(A5);
  27. var dist_threshold = 30;
  28.  
  29.  
  30. function forward_enc(length)
  31. {
  32. eLeft.reset();
  33. eRight.reset();
  34. left = eLeft.readRawData();
  35. right = eRight.readRawData();
  36.  
  37. while ((left+right)/2 < (length * cpr) / (pi * d))
  38. {
  39. mLeft(100);
  40. mRight(100);
  41. left = eLeft.readRawData();
  42. right = eRight.readRawData();
  43. script.wait(1);
  44. }
  45.  
  46. mLeft(0);
  47. mRight(0);
  48. }
  49.  
  50. function forward_kp()
  51. {
  52. sFront = svFront.read();
  53.  
  54. while (sFront > dist_threshold)
  55. {
  56. sLeft = svLeft.read();
  57. err = sLeft - dist_threshold;
  58. u = err * kp;
  59.  
  60. mLeft(v - u);
  61. mRight(v + u);
  62.  
  63. sFront = svFront.read();
  64. script.wait(10);
  65.  
  66. }
  67.  
  68. mLeft(0);
  69. mRight(0);
  70.  
  71. }
  72.  
  73.  
  74. function rotate(angle)
  75. {
  76. eLeft.reset();
  77. eRight.reset();
  78. left = eLeft.readRawData();
  79. right = eRight.readRawData();
  80.  
  81. if (angle == 90) // turn right
  82. {
  83. while ((left + Math.abs(right))/2 < (pi * l / 4) / (pi * d) * cpr)
  84. {
  85. mLeft(100);
  86. mRight(-100);
  87. left = eLeft.readRawData();
  88. right = eRight.readRawData();
  89. script.wait(10);
  90. }
  91. }
  92. else
  93. {
  94. while ((Math.abs(left) + right)/2 < (pi * l / 4) / (pi * d) * cpr)
  95. {
  96. mLeft(-100);
  97. mRight(100);
  98. left = eLeft.readRawData();
  99. right = eRight.readRawData();
  100. script.wait(10);
  101. }
  102. }
  103.  
  104. mLeft(0);
  105. mRight(0);
  106.  
  107. }
  108.  
  109. var main = function()
  110. {
  111. __interpretation_started_timestamp__ = Date.now();
  112.  
  113. rotate(-90);
  114. forward_kp();
  115. rotate(90);
  116. forward_kp();
  117.  
  118. return;
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement