Advertisement
Guest User

Untitled

a guest
Nov 19th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.03 KB | None | 0 0
  1. #define BLYNK_PRINT Serial
  2. #include <BlynkSimpleEsp8266.h>
  3. #include <cmath>
  4.  
  5. char auth[] = "auth";
  6. char ssid[] = "ssid";
  7. char pass[] = "path";
  8.  
  9. int PWMA = D5;
  10. int AIN2 = D7;
  11. int AIN1 = D6;
  12. int STBY = D8;
  13. int PWMB = D0;
  14. int BIN1 = D2;
  15. int BIN2 = D1;
  16. int ISON = D4;
  17. int CONN = D3;
  18.  
  19. int speedMA = 0;
  20. int directionMA = 0;
  21. int speedMB = 0;
  22. int directionMB = 0;
  23.  
  24. int radius = 0;
  25. int angle = 0;
  26.  
  27. BLYNK_WRITE(V1)
  28. {
  29. radius = Radius(param[0].asInt(), param[1].asInt());
  30. angle = Angle(param[0].asInt(), param[1].asInt());
  31. }
  32.  
  33. void setup()
  34. {
  35. pinMode(D0, OUTPUT);
  36. pinMode(D1, OUTPUT);
  37. pinMode(D2, OUTPUT);
  38. pinMode(D3, OUTPUT);
  39. pinMode(D4, OUTPUT);
  40. pinMode(D5, OUTPUT);
  41. pinMode(D6, OUTPUT);
  42. pinMode(D7, OUTPUT);
  43. pinMode(D8, OUTPUT);
  44. digitalWrite(ISON, HIGH);
  45. Serial.begin(9600);
  46. Blynk.begin(auth, ssid, pass, IPAddress(192, 168, 1, 8));
  47. }
  48.  
  49. void loop()
  50. {
  51. Blynk.run();
  52.  
  53. if (Blynk.connected()) {
  54. digitalWrite(CONN, HIGH);
  55. } else {
  56. digitalWrite(CONN, LOW);
  57. }
  58.  
  59. Serial.println(analogRead(A0));
  60.  
  61. return;
  62.  
  63. if (radius > 200) {
  64.  
  65. if (angle >= 45 && angle < 135 ) {
  66.  
  67. forwardMA(radius);
  68. forwardMB(radius);
  69.  
  70. } else if (angle >= 135 && angle < 225 ) {
  71.  
  72. forwardMA(radius);
  73. reverseMB(radius);
  74.  
  75. } else if (angle >= 225 && angle < 315 ) {
  76.  
  77. reverseMA(radius);
  78. reverseMB(radius);
  79.  
  80. } else if (angle >= 315 || angle > 45 ) {
  81.  
  82. reverseMA(radius);
  83. forwardMB(radius);
  84.  
  85. }
  86.  
  87. } else {
  88.  
  89. stopMAB();
  90. }
  91.  
  92. Serial.println();
  93.  
  94. }
  95.  
  96. void forwardMA(int speed) {
  97.  
  98. digitalWrite(STBY, HIGH);
  99. digitalWrite(AIN1, LOW);
  100. digitalWrite(AIN2, HIGH);
  101. analogWrite(PWMA, speed);
  102. Serial.print("MA Forward Speed: ");
  103. Serial.print(speed);
  104. }
  105.  
  106. void reverseMA(int speed) {
  107.  
  108. digitalWrite(STBY, HIGH);
  109. digitalWrite(AIN1, HIGH);
  110. digitalWrite(AIN2, LOW);
  111. analogWrite(PWMA, speed);
  112. Serial.print("MA Reverse Speed: ");
  113. Serial.print(speed);
  114. }
  115.  
  116. void forwardMB(int speed) {
  117.  
  118. digitalWrite(STBY, HIGH);
  119. digitalWrite(BIN1, LOW);
  120. digitalWrite(BIN2, HIGH);
  121. analogWrite(PWMB, speed);
  122. Serial.print(" MB Forward Speed: ");
  123. Serial.print(speed);
  124. }
  125.  
  126. void reverseMB(int speed) {
  127.  
  128. digitalWrite(STBY, HIGH);
  129. digitalWrite(BIN1, HIGH);
  130. digitalWrite(BIN2, LOW);
  131. analogWrite(PWMB, speed);
  132. Serial.print(" MB Reverse Speed: ");
  133. Serial.print(speed);
  134. }
  135.  
  136. void stopMAB() {
  137.  
  138. digitalWrite(STBY, HIGH);
  139. digitalWrite(AIN1, LOW);
  140. digitalWrite(AIN2, LOW);
  141. digitalWrite(BIN1, LOW);
  142. digitalWrite(BIN2, LOW);
  143. analogWrite(PWMA, 0);
  144. analogWrite(PWMB, 0);
  145. Serial.print("MAB Stop");
  146.  
  147. }
  148.  
  149. int Radius(int x, int y)
  150. {
  151. int rad;
  152.  
  153. rad = sqrt((pow(x, 2)) + (pow(y, 2)));
  154.  
  155. if (rad < 1023) {
  156. return rad;
  157. } else {
  158. return 1023;
  159. }
  160. }
  161. int Angle(int x, int y)
  162. {
  163. float Thta;
  164.  
  165. if (y >= 0) {
  166.  
  167. Thta = PI / 2 - atan(x / (y + 0.000001));
  168.  
  169. } else {
  170.  
  171. Thta = 3 * PI / 2 - atan(x / (y + 0.000001));
  172.  
  173. }
  174.  
  175. int deg = Thta * 57.2957795;
  176.  
  177. return deg;
  178. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement