Advertisement
Guest User

Untitled

a guest
Apr 25th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. #include <Wire.h>
  2. #include <math.h>
  3. const int MPU=0x68;
  4. int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ,vx,vy,vz,v,vt;
  5.  
  6. static double prev = 0;
  7.  
  8. void setup(){
  9. Wire.begin();
  10. Wire.beginTransmission(MPU);
  11. Wire.write(0x6B);
  12. Wire.write(0);
  13. Wire.endTransmission(true);
  14. Serial.begin(9600);
  15. }
  16. void loop(){
  17. Wire.beginTransmission(MPU);
  18. Wire.write(0x3B);
  19. Wire.endTransmission(false);
  20. Wire.requestFrom(MPU,12,true);
  21. AcX=Wire.read()<<8|Wire.read();
  22. AcY=Wire.read()<<8|Wire.read();
  23. AcZ=Wire.read()<<8|Wire.read();
  24. GyX=Wire.read()<<8|Wire.read();
  25. GyY=Wire.read()<<8|Wire.read();
  26. GyZ=Wire.read()<<8|Wire.read();
  27. /*
  28. Serial.print("Accelerometer: ");
  29. Serial.print("X = "); Serial.print(AcX);
  30. Serial.print(" | Y = "); Serial.print(AcY);
  31. Serial.print(" | Z = "); Serial.println(AcZ); */
  32. vx += AcX/9.81;
  33. vy += AcY/9.81;
  34. vz += AcZ/9.81;
  35. v = sqrt(pow(vx, 2)+pow(vy, 2)+pow(vz, 2));
  36. vt = v + (0.9*(vt-v));
  37. Serial.print("\nVelocity: ");
  38. Serial.print(AcX);
  39. /*
  40. Serial.print("\nGyroscope: ");
  41. Serial.print("X = "); Serial.print(GyX);
  42. Serial.print(" | Y = "); Serial.print(GyY);
  43. Serial.print(" | Z = "); Serial.println(GyZ);*/
  44.  
  45. //Serial.print("X Normalize: "); Serial.println(normalize(AcX));
  46. //Serial.print("Velocity: "); Serial.println(speed(AcX, AcY, AcZ));
  47. delay(10);
  48. }
  49.  
  50. double speed(size_t AcX, size_t AcY, size_t AcZ){
  51. double speed;
  52. speed = sqrt(pow(AcX, 2)+pow(AcY, 2)+pow(AcZ, 2));
  53. if(prev!=speed){
  54. prev = speed - prev;
  55. return prev;
  56. prev = speed;
  57. }else return speed;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement