TEAM MEMBERS
SHIRSH HARISHANKAR BHAKTA – 22BCE3527
DIVYANSH MATHUR – 22BCE3480
SWAYAM SINGH – 22BCE0014
Posture Corrector Device – Final Project
Report
Abstract
Poor posture is a growing health issue, especially among individuals who spend long
hours sitting or working on computers. This project presents a Posture Corrector
Device designed using an MPU6050 accelerometer and gyroscope sensor, along with
an Arduino UNO, a buzzer, and a vibration motor. The device monitors body tilt
angles in real time and provides alerts (buzzer feedback) when the user exhibits
incorrect posture. The project aims to promote better spinal alignment and prevent
long-term posture-related health issues.
Introduction
Posture-related health problems, such as back pain, neck stiffness, and spinal
misalignment, are common due to prolonged sitting or improper posture. This
Posture Corrector Device uses an MPU6050 sensor to measure the tilt angles of the
upper body and detect incorrect posture. When the posture deviates beyond a
predefined threshold, the system activates an alert mechanism using a buzzer and a
vibration motor, reminding the user to adjust their position.
Objective
The objective of this project is to:
- Monitor body posture in real-time using an accelerometer and gyroscope sensor.
- Trigger an alert (buzzer) when the body exceeds the predefined posture threshold.
- Encourage users to maintain a correct and healthy posture by providing timely
alerts.
- Design a portable, low-cost, and easy-to-use device.
Components and Tools Used
Hardware Components:
- Arduino UNO: Microcontroller board
- MPU6050 Sensor: Accelerometer and gyroscope
- Buzzer: Generates alert sounds
- Jumper Wires: For circuit connections
- Breadboard: For testing (optional)
- USB Cable: To connect Arduino to PC
Software & IDE:
- Arduino IDE: For writing and uploading the code.
- Serial Monitor: For viewing real-time posture data.
Circuit Design and Connections
Circuit connections include:
- MPU6050 VCC → Arduino 3.3V
- MPU6050 GND → Arduino GND
- MPU6050 SDA → Arduino A4
- MPU6050 SCL → Arduino A5
- Buzzer Positive → Arduino Pin 9
- Buzzer Negative → GND
Code Design and Explanation
The following code runs the Posture Corrector Device using the MPU6050 sensor
and Arduino UNO:
#include <Wire.h>
#include <MPU6050_tockn.h>
MPU6050 mpu6050(Wire);
// Posture thresholds (adjust these based on your needs)
#define PITCH_THRESHOLD 150 // Degrees from initial pitch
#define ROLL_THRESHOLD 25 // Degrees from initial roll
const int buzzerPin = 13;
const int ledPin = 8;
float pitchini = 0, rollini = 0;
void setup() {
Serial.begin(9600);
Wire.begin();
mpu6050.begin();
// Calibration - keep sensor flat and still!
Serial.println("Calibrating MPU6050...");
mpu6050.calcGyroOffsets(true);
Serial.println("Calibration complete!");
// Get initial orientation
delay(100); // Small delay for stable reading
mpu6050.update();
pitchini = mpu6050.getAngleX();
rollini = mpu6050.getAngleY();
Serial.print("Initial Pitch: "); Serial.println(pitchini);
Serial.print("Initial Roll: "); Serial.println(rollini);
pinMode(buzzerPin, OUTPUT);
pinMode(ledPin, OUTPUT);
// Test feedback devices
digitalWrite(ledPin, HIGH);
tone(buzzerPin, 1000, 200);
delay(300);
digitalWrite(ledPin, LOW);
}
void loop() {
mpu6050.update();
float pitch = mpu6050.getAngleX();
float roll = mpu6050.getAngleY();
// Check posture relative to initial position
if( abs(roll - rollini) > ROLL_THRESHOLD) {
// Bad posture detected
digitalWrite(ledPin, HIGH);
tone(buzzerPin, 1000); // 1kHz tone
Serial.println("BAD POSTURE!");
delay(200);
noTone(buzzerPin);
digitalWrite(ledPin, LOW);
else {
// Good posture
digitalWrite(ledPin, LOW);
noTone(buzzerPin);
// Display angles
Serial.print("Pitch: "); Serial.print(pitch);
Serial.print("°\tRoll: "); Serial.print(roll);
Serial.print("°\tDiff: ");
Serial.print("P:"); Serial.print(abs(pitch - pitchini));
Serial.print("° R:"); Serial.print(abs(roll - rollini));
Serial.println("°");
delay(1000); // Update rate
Working Principle
The MPU6050 sensor measures angular motion using its gyroscope and
accelerometer. When the device detects incorrect posture (e.g tilt angle > 25°), it
triggers alerts. The buzzer emits a sound, and the LED glows, reminding the user to
correct their posture.
Results and Observations
The device accurately detects posture deviations and alerts the user in real time. The
alert mechanism (buzzer) is effective in prompting posture correction. The system
works efficiently and provides consistent readings.
Conclusion
The Posture Corrector Device efficiently detects and alerts users of incorrect posture
using MPU6050 and Arduino UNO. This project promotes better spinal health and
can be further enhanced with additional features.
References
- Arduino IDE Documentation
- MPU6050 Sensor Datasheet
- MPU 6050 sensor interface Library Documentation