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

Adafruit_MPU6050 mpu;
float t;
float delta_time;
void setup() {
  pinMode(3, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(9, OUTPUT);
  Serial.begin(9600);
  delay(100);
  mpu.begin();
  mpu.setGyroRange(MPU6050_RANGE_500_DEG);
  delta_time = 0;
  t = (millis() / 1000.f);
}

float rot_x = 0; // radians
void loop() {
  sensors_event_t a, g, temp;
  mpu.getEvent(&a, &g, &temp);
  delta_time = (millis() / 1000.f) - t;
  t = (millis() / 1000.f);
  rot_x += g.gyro.x * delta_time;
  Serial.println(rot_x / PI * 180);

  float val0 = max(cos(rot_x), 0);
  float val1 = max(sin(rot_x), 0);
  float val2 = max(-cos(rot_x), 0);
  float val3 = max(-sin(rot_x), 0);

  analogWrite(3, (int)(val0 * val0 * 255));
  analogWrite(5, (int)(val1 * val1 * 255));
  analogWrite(6, (int)(val2 * val2 * 255));
  analogWrite(9, (int)(val3 * val3 * 255));
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
imu1:INT
imu1:AD0
imu1:XCL
imu1:XDA
imu1:SDA
imu1:SCL
imu1:GND
imu1:VCC
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
led4:A
led4:C