// Libraries

#include <ESP32Servo.h>

#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>

// Sensors

Servo s1;
Servo s2;
Servo s3;
Servo s4;

Adafruit_MPU6050 mpu;

// Pre defined

int p=0;

// Startup

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  Serial.println("Hello, ESP32!");

  // Pin attached

  s1.attach(18);
  s2.attach(5);
  s3.attach(17);
  s4.attach(16);

  if (!mpu.begin()){
    while(1);
    delay(20);
  }
}

// Main code

void loop() {
  // put your main code here, to run repeatedly:

  sensors_event_t acc,gcc,temp;
  mpu.getEvent(&acc,&gcc,&temp);

  Serial.print("Accelaration x :-");
  Serial.print(acc.acceleration.x);
  Serial.print(",y :-");
  Serial.print(acc.acceleration.y);
  Serial.print(",z :-");
  Serial.println(acc.acceleration.z);
  
  Serial.print("Gyro x :-");
  Serial.print((gcc.gyro.x)*180/3.14);
  s1.write((gcc.gyro.x)*180/3.14);
  Serial.print("y :-");
  Serial.print((gcc.gyro.y)*180/3.14);
  s2.write((gcc.gyro.y)*180/3.14);
  Serial.print("z :-");
  Serial.println((gcc.gyro.z)*180/3.14);
  s3.write((gcc.gyro.z)*180/3.14);

  Serial.println();
  delay(10);
}