Advertisement
Guest User

Untitled

a guest
Feb 28th, 2020
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.08 KB | None | 0 0
  1. #include<Wire.h>
  2. #include <Adafruit_GFX.h>
  3. #include <Adafruit_SSD1306.h>
  4.  
  5. #define SCREEN_WIDTH 128 // OLED display width, in pixels
  6. #define SCREEN_HEIGHT 64 // OLED display height, in pixels
  7. #define OLED_RESET -1 // Reset pin # (or -1 if sharing reset pin)
  8. Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
  9.  
  10. const int MPU_addr=0x68;
  11. int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ;
  12.  
  13. int minVal=265;
  14. int maxVal=402;
  15. unsigned long aktualnyCzas,Czas;
  16. double xx,xp,xl;
  17. double y;
  18. double z;
  19. int xd,xpz, xlz,x;
  20.  
  21. #define RST_PIN 12
  22.  
  23. void setup(){
  24.  
  25.  
  26.  
  27. pinMode(RST_PIN, INPUT_PULLUP);
  28.  
  29.  
  30. Wire.begin();
  31. Wire.beginTransmission(MPU_addr);
  32. Wire.write(0x6B);
  33. Wire.write(0);
  34. Wire.endTransmission(true);
  35. display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  36.  
  37. display.clearDisplay();
  38.  
  39. display.setTextSize(2);
  40. display.setCursor(4,16);
  41. display.print(".:Witaj:.");
  42. display.display();*/
  43. delay(3000);
  44.  
  45. }
  46. void loop()
  47. {
  48.  
  49. if (digitalRead(RST_PIN)==0){
  50. xpz=0;
  51. xlz=0;
  52. }
  53.  
  54.  
  55.  
  56. Wire.beginTransmission(MPU_addr);
  57. Wire.write(0x3B);
  58. Wire.endTransmission(false);
  59. Wire.requestFrom(MPU_addr,14,true);
  60. AcX=Wire.read()<<8|Wire.read();
  61. AcY=Wire.read()<<8|Wire.read();
  62. AcZ=Wire.read()<<8|Wire.read();
  63. int xAng = map(AcX,minVal,maxVal,-90,90);
  64. int yAng = map(AcY,minVal,maxVal,-90,90);
  65. int zAng = map(AcZ,minVal,maxVal,-90,90);
  66.  
  67. x= RAD_TO_DEG * (atan2(-yAng, -zAng)+PI);
  68.  
  69. y= RAD_TO_DEG * (atan2(-xAng, -zAng)+PI);
  70. z= RAD_TO_DEG * (atan2(-yAng, -xAng)+PI);
  71.  
  72. aktualnyCzas = millis();
  73. if (aktualnyCzas - Czas >= 50UL){
  74. Czas=aktualnyCzas;
  75. display.clearDisplay();
  76.  
  77.  
  78.  
  79.  
  80. if ((x>=0)&&(x<99)){
  81. xp=x;
  82. display.drawLine(64, 13, xp+64, 7, WHITE);
  83. display.drawLine(64, 13, xp+64, 8, WHITE);
  84. display.drawLine(64, 13, xp+64, 9, WHITE);
  85. display.drawLine(64, 13, xp+64, 10, WHITE);
  86. display.drawLine(64, 13, xp+64, 11, WHITE);
  87. display.drawLine(64, 13, xp+64, 12, WHITE);
  88. display.drawLine(64, 13, xp+64, 13, WHITE);
  89. display.setTextSize(1);
  90.  
  91.  
  92.  
  93. display.setCursor(0,24);
  94. display.print("Lewo:");
  95. display.setTextSize(2);
  96. display.setCursor(30,24);
  97. display.println("0");
  98.  
  99. display.setTextSize(1);
  100. display.setCursor(64,24);
  101. display.print("Prawo:");
  102. display.setTextSize(2);
  103. display.setCursor(100,24);
  104. display.println(xp,0);
  105.  
  106.  
  107. if (xp>=xpz){
  108. xpz=xp;
  109.  
  110. }
  111. }
  112.  
  113. if ((x>261)&&(x<=360)){
  114. xd=x-360+64;
  115. xl=360-x;
  116. display.drawLine(64, 13, xd, 7, WHITE);
  117. display.drawLine(64, 13, xd, 8, WHITE);
  118. display.drawLine(64, 13, xd, 9, WHITE);
  119. display.drawLine(64, 13, xd, 10, WHITE);
  120. display.drawLine(64, 13, xd, 11, WHITE);
  121. display.drawLine(64, 13, xd, 12, WHITE);
  122. display.drawLine(64, 13, xd, 13, WHITE);
  123.  
  124.  
  125.  
  126. display.setTextSize(1);
  127. display.setCursor(0,24);
  128. display.print("Lewo:");
  129. display.setTextSize(2);
  130. display.setCursor(30,24);
  131. display.println(xl,0);
  132.  
  133. display.setTextSize(1);
  134. display.setCursor(64,24);
  135. display.print("Prawo:");
  136. display.setTextSize(2);
  137. display.setCursor(100,24);
  138. display.println("0");
  139.  
  140. if (xl>=xlz){
  141. xlz=xl;
  142.  
  143. }
  144. }
  145.  
  146.  
  147. display.drawLine(4,0,4,15, WHITE);
  148. display.drawLine(14,2,14,13, WHITE);
  149. display.drawLine(24,0,24,15, WHITE);
  150. display.drawLine(34,2,34,13, WHITE);
  151. display.drawLine(45,0,45,15, WHITE);
  152. display.drawLine(54,2,54,13, WHITE);
  153.  
  154. display.drawLine(63,0,63,15, WHITE);
  155. display.drawLine(65,0,65,15, WHITE);
  156.  
  157. display.drawLine(74,2,74,13, WHITE);
  158. display.drawLine(84,0,84,15, WHITE);
  159. display.drawLine(94,2,94,13, WHITE);
  160. display.drawLine(104,0,104,15, WHITE);
  161. display.drawLine(114,2,114,13, WHITE);
  162. display.drawLine(124,0,124,15, WHITE);
  163.  
  164. display.setTextSize(1);
  165. display.setCursor(15,16);
  166. display.print(40);
  167. display.setCursor(42,16);
  168. display.print(20);
  169. display.setCursor(60,16);
  170. display.print(0);
  171. display.setCursor(80,16);
  172. display.print(20);
  173. display.setCursor(100,16);
  174. display.print(40);
  175. display.setCursor(0,42);
  176. display.print(".::Najlepszy wynik::.");
  177. display.setCursor(0,50);
  178. display.print("Lewo:");
  179. display.setCursor(64,50);
  180. display.print("Prawo:");
  181.  
  182.  
  183.  
  184. display.setTextSize(2);
  185. display.setCursor(30,50);
  186. display.print(xlz);
  187. display.setCursor(100,50);
  188. display.print(xpz);
  189. display.display();
  190.  
  191. }
  192. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement