Kotlin & C - Martial Arts Training Application and Body Armour

Martial Arts Training Application and Body Armour - Kotlin & C


Demonstration   •   Images

This is a smart phone application and martial arts body armour equipment which were designed, programmed, assembled, and tested with a group of my peers based on cost, sustainability, durability, and manufacturability for the purpose of enhancing martial artist’s training routines within the boundaries of the Android platform, closed source software, and client requirements.

The project was directed by the client, a Karate instructor, looking for better training solutions. The objective of the project was to deliver a working prototype of a mobile application that can communicate with a body armour to record strike data. The mobile application would aggregate strike power, location, and timing data gathered from each sensor and display it to the end user to provide a visual representation of progress and areas requiring improvement. The mobile application, in conjunction with the body armour, would enable martial artists to assign concrete data to their striking, both the power of the strikes and the locations of the strikes, allowing more informed and precise training. The visualisation of the data and gamifying certain elements would provide incentive to continuously train and hone their skills.

To achieve this goal, our team disassembled and embedded sensors connected to a microcontroller within the body armour provided by the client, this involved various electrical engineering work. The electrical circuits for the sensors went through different variations and required extensive testing to achieve the desired accuracy, granularity, and range for the sensor readings. The hardware was connected to an ESP32 microcontroller which read and transmitted data through code written in C.

The mobile application was built for Android using Kotlin, the official language for Android development. Communication was done through Bluetooth; the functionality was built from the microcontrollers side and the applications side. When entering one of the modes, the application read the transmitted data from the armour and display the appropriate data depending on the mode. Three modes were built, training mode with a configurable time that displayed strike strength, location, and averages to the user. The second mode was a speed game mode, giving the user one minute to strike the armour as much as possible, with their total strikes displayed and being their final score. The last mode was a strength game mode, giving the user ten seconds to strike the armour as hard as they could, displaying their greatest strike. Strike data was saved and persisted using SQLite to allow the user to review their progress. The application allowed for multiple users, with the strike data tied to the appropriate user.

Algonquin College Project Page

A video demonstrating the application and body armour is shown below:


Alternate Link

View the Body Armour and Mobile Application Screenshots below, or view them on GitHub

Armour
Dashboard
Modes Selection
Training
Speed
Strength
Settings
Users
Bluetooth