Group assignment
Individual assignment
Musaed AlKout is the one who had the full process documneted in details, I will cover some highlights in my page.
01 | I used MPU 6050 GY-512 which is also part of my final project. I leaned all the information I needed from from Wokwi and strated virtual simulation as I was a way from the lab and wanted to utilise my time to strat this assignemnet.
05| and I included
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>
Adafruit_MPU6050 mpu;
void setup(void) {
Serial.begin(115200);
// Define I2C pins for ESP32-C3 (SDA=8, SCL=9)
Wire.setPins(8, 9);
if (!mpu.begin()) {
Serial.println("Failed to find MPU6050 chip");
while (1) { delay(10); }
}
Serial.println("MPU6050 Found!");
// Set sensor ranges (optional)
mpu.setAccelerometerRange(MPU6050_RANGE_8_G);
mpu.setGyroRange(MPU6050_RANGE_500_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
delay(100);
}
void loop() {
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
/* Print out the values */
Serial.print("Accel X: "); Serial.print(a.acceleration.x);
Serial.print(", Y: "); Serial.print(a.acceleration.y);
Serial.print(", Z: "); Serial.print(a.acceleration.z);
Serial.println(" m/s^2");
delay(500);
}
07| Then I opened my Kicad file on Schematics Editor and to added the GY-512 as a sinsor and made the connection folowing theis workflow: Look for part → not available → search on SnaPeda → download Symbole&footprint → opne Kicad → Import the library → add the new part → connected pins → mark other pins as "no connect" → run ERC
09| I tried to place it next to the microcontroller so that my full design fits on a 30mm copper tap which I have access to cut for the curcit.
10| for a better cutting results, I made the routs 2mm wide and made sure their is enough space between them to avoid short curcits
11| From Kicad, I ploted the PCD as SVG → imported it to Adobe Illustrator → trasformed it to shape → select all shapes → create a union → export as SVG → imported to Cutting Studio → cut the curcit on copper tap.
13| I added wchih was used in the. simulation in step 5
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>
Adafruit_MPU6050 mpu;
void setup(void) {
Serial.begin(115200);
// Define I2C pins for ESP32-C3 (SDA=8, SCL=9)
Wire.setPins(8, 9);
if (!mpu.begin()) {
Serial.println("Failed to find MPU6050 chip");
while (1) { delay(10); }
}
Serial.println("MPU6050 Found!");
// Set sensor ranges (optional)
mpu.setAccelerometerRange(MPU6050_RANGE_8_G);
mpu.setGyroRange(MPU6050_RANGE_500_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
delay(100);
}
void loop() {
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
/* Print out the values */
Serial.print("Accel X: "); Serial.print(a.acceleration.x);
Serial.print(", Y: "); Serial.print(a.acceleration.y);
Serial.print(", Z: "); Serial.print(a.acceleration.z);
Serial.println(" m/s^2");
delay(500);
}
17| the readings of x,y, z axies as well as the acceleration of change, to make a better visual, I needed to plot these values to a chart
18| For that , I had to add plotting command to my code and I used Gemeni to redefine the code to
// --- SERIAL PLOTTER FORMAT ---
// Format: "Label:Value,Label:Value,Label:Value"
Serial.print("AccelX:"); Serial.print(a.acceleration.x);
Serial.print(",");
Serial.print("AccelY:"); Serial.print(a.acceleration.y);
Serial.print(",");
Serial.print("AccelZ:"); Serial.print(a.acceleration.z);