Run Machine learning on a micro controller with an accelerometer sensor to classify different moves with the racket - Forehand, Backhand, Serve and Idle.
Data is collected using the tinyml-tennis-collector
firmware, that sends data over BLE and there is a Web UI on web-bluetooth-bridge-ui
folder that relays the data to Edge Impulse.
Demo video of the collecting data:
The model was trained on Edge Impulse and exported to be used on the tinyml-tennis-classifier
firmware, that them shows a different LED color depending on the class - idle (red), forehand(green), backhand(blue)
Demo video of the classification:
️
- Collect more data and with different people
- Collect
Serve
data - Make data available for others to use
- Particle Xenon and/or nRF52840 Dongle
- I installed the Adafruit nRF52 Bootloader
- I used the Particle Debugger and openocd to flash the bootloader.
- MPU 6500 Accelerometer Module
I recommend installing the Visual Studio Code (VSCode) IDE and the PlatformIO plugin to get started using it. Just follow the step on the link below:
https://platformio.org/platformio-ide
To deploy to the board, just open the tinyml-tennis-classifer
or tinyml-tennis-collector
folder and you can use the “Build” and “Upload” buttons on PlatformIO Toolbar. All libraries and dependencies will be downloaded.
You need to generate an API Key/Secret pair to send data to Edge Impulse.
- Run on the command line:
cd web-bluetooth-bridge-ui
npm install
npm start