I used a Inertial Measurement Unit (IMU) to capture the movement of the device. The IMU has 9 signal outputs: gyroscope (3 axis), accelerometer (3 axis), and magnetometer (3 axis). Teensy is used to read the signal output from IMU (MPU-9250).
without filter.mov
Data Filtering
Right window size and low-passed filter are chosen to process the 9 outputs data from IMU, so that the data can be further processed in the real time.
with filter.mov
ML Model Training
Generated training dataset for ML model in Weka (a machine learning library based on Java). Tried different ML algorithms and optimized the parameters to achieve higher accuracy. I found out that KNN (K=1) can achieve the highest accuracy.
Zheng_ML.MOV
ML Model Application
Apply the model to achieve the real time movement detection.
6.mp4
Zheng_MPU.MOV
Smart WatchDetection
Repeated the processes and achieved the movements (forward-backward, up-down, left-right, watch click, arm tap, rotate) detection of a smart watch.