//Access: https://wokwi.com/projects/360766818972243969
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
Adafruit_MPU6050 mpu;
void setup() {
Serial.begin(9600);
Wire.begin();
if (!mpu.begin()) {
Serial.println("Failed to find MPU6050 chip");
while (1) {
delay(10);
}
}
mpu.setAccelerometerRange(MPU6050_RANGE_16_G);
mpu.setGyroRange(MPU6050_RANGE_250_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
}
void loop() {
circle();
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
Serial.print(64 + (a.acceleration.x*2));
Serial.print(",");
Serial.print(32 + (a.acceleration.x/2.2));
Serial.print(",");
Serial.print(15 + a.acceleration.z);
Serial.print(", ");
Serial.print(52 +(g.gyro.x*10));
Serial.print(",");
Serial.print(20 +(g.gyro.x/0.33));
Serial.print(",");
Serial.print(25+g.gyro.z);
Serial.println("");
display.clearDisplay();
delay(100);
display.display();
display.clearDisplay();
}
void circle(){
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
display.drawCircle((64 + a.acceleration.x*2), (32 + (a.acceleration.y/2.2)), (15 + (a.acceleration.z)), WHITE);
display.drawRect((52 +(g.gyro.x*10)), (20 + (g.gyro.y/0.33)), (25+(g.gyro.z)*4), (25+(g.gyro.z)*4), WHITE);
display.display();
}