Tremor Detection with FFT is an embedded system project that leverages the Adafruit Circuit Playground's accelerometer and onboard peripherals to detect potential tremors using Fast Fourier Transform (FFT). This project demonstrates signal processing on a microcontroller and integrates real-time sensor analysis, user interaction, and output feedback through LEDs and sound.
Demonstration Video: https://youtu.be/MQ_tqzXgpcg
- Clone the repository.
- Import the project into PlatformIO on VSCode
- Select the correct board and port, then upload to the Circuit Playground board.
- Real-Time Accelerometer Sampling: Captures 3-axis motion data at 40Hz.
- FFT-Based Analysis: Applies a Fourier Transform to determine signal frequency components.
- Tremor Frequency Detection: Identifies tremors in the 3–6 Hz band, typical of hand tremors.
- Visual & Audio Feedback:
- Neopixels light up in color patterns based on detection strength.
- Speaker tones (optional) can indicate detection events.
- User Controls:
- Right button starts monitoring.
- Left button stops and resets analysis.
- Serial Debugging: Frequency data is streamed via Serial Monitor and is compatible with Teleplot for visualization.
-
Board: Adafruit Circuit Playground Classic
-
Language: C++
-
Libraries:
-
Tools:
- PlatformIO on VSCode
- Teleplot VSCode Integration (for live graphing via serial)
- Sampling: Accelerometer data is continuously collected and stored.
- Windowing: A Hamming window is applied to smooth data before FFT.
- FFT: Converts time-domain data into frequency-domain to detect signal peaks.
- Peak Analysis: If a dominant frequency within the tremor band (3–6 Hz) exceeds a threshold, the system triggers feedback.
- Feedback: Visual indicators and optional speaker tones respond to detection.
This project is licensed under the MIT License — see the LICENSE file for details.