Squat-O-Meter

A Real-Time Squat Tracker GUI App

Overview

Squat-O-Meter is a Python GUI application designed to help users track their squat exercises in real time using their mobile phone’s accelerometer data. Developed using Tkinter and ttkbootstrap for the graphical user interface, this application provides a comprehensive solution for fitness enthusiasts to monitor their workout progress, set goals, and analyze their performance over time.

Working video

Squat-O-Meter Screenshot

Key Features

  1. Real-Time Squat Detection:
    • The user holds their mobile phone in their hands, extended in front, and the app uses accelerometer data to detect squats.
    • Data is transmitted over a local network using the Phyphox app.
    • Real-time squat count updates are displayed in the GUI.
  2. Feedback Mechanisms:
    • Visual feedback is provided through the GUI, showing the updated squat count.
    • Voice feedback is available, with options to select different voices using the pyttsx3 library.
  3. Customizable Settings:
    • Users can set a target number of squats before starting their workout.
    • Adjustable parameters include acceleration threshold and minimum time interval between squats to prevent false detections.
    • Users can choose to detect squats using either the z-direction acceleration or absolute acceleration, allowing flexibility in phone placement.
  4. Data Analysis and Progress Tracking:
    • After completing a workout, users can save their squat count to a local database implemented using the pandas library.
    • The app includes a data analysis feature where users can view their progress over months, generate plots using matplotlib, and obtain various statistics such as total squats done, longest streak, and number of workout days.

    Analyze Data tab Screenshot

Technical Details

Challenges and Solutions

Future Improvements

Github repository for this project can be found here.