Software apps and online services
Hand tools and fabrication machines
Summary (If you prefer not to read through everything):
This prototype is about helping basketball players and athletes help achieve their goal on improving their vertical jump height so that they can improve at their game and play it better.
We use the Dunkmaster Pro Shoes to track the user’s Vertical Jump height and the force they use to jump up high and recommend them a proven training routine suggestion to improve their Jump height with real time tracking throughout their workout schedules.
Vertical Jump Height (Calculated by Using a Force sensing Resistor)
Step Count: (Calculated by using Accelerometer eg.MPU6050)
Both interfaced to ESP32 DEVELOPMENT BOARD.
Aim and Objective
The conventional shoe trackers generally track the steps count of the user. However, this shoe tracker makes use of a pressure sensor to tell us how much the vertical jump height of the user is. The aim of this shoe tracker is to send the vertical jump height and steps data to any smartphone using Bluetooth Low Energy.
Some main objectives of this project is as follows:
● Successfully establishing a Bluetooth pairing system to the phone from the ESP32 IoT board.● Making sense of the Accelerometer Raw data and converting the data into steps count by carefully researching the data and calibrating it as per the usage.● Mounting the Device on the Pull tab of the Shoe along with proper placement of the force sensor in the heel of the shoe.● Design and Implement a User Interface that is very easy to operate by the user in his/her smartphone.● Researching ESP32 ProgrammingTheory:
This Project Dunkmaster Pro shoe is an embedded application project that trackers the users Vertical jump height as well as steps taken by the user and sends this height to the Smartphone via Bluetooth. The main reasons for using this device is given below:
- Reason for developing this project for Basketball Players
Basketball is a team-based invasion sport that is characterized by distinctivemovement patterns. The ability to jump for height underpins many basketball-specific skillssuch as shooting, rebounding, dunking, lay-ups, blocking and defending shots
- Strength Training Workout Implementation
Because minimal equipment is needed, you can incorporate the vertical jump into any strength-training workout to increase your heart rate and burn calories between sets or include it in a skill-specific plyometric routine.Calculation of the Vertical Jump Height:
Problems dealing with motion are usually the first that students of physics willencounter. Concepts like time, velocity and acceleration are interrelated by formulas that students can rearrange with the help of algebra to apply to different circumstances. We can calculate the height of a jump, for instance, from more than one starting point.The height of the jump can be calculated if the acceleration and either the initial velocity or the total time in the air is known. Write an expression for time in terms of change in velocity, using the formula
where vf is final velocity, g is the acceleration due to gravity, t is time, and vi is initial velocity.
(i) Time of Flight: Solution the Equation for t:t=(vf−vi)/−gTherefore, the amount of time is equal to the change in velocity divided by the acceleration dueto gravity.
(ii) Calculation to reach highest point:Calculate the amount of time to reach the highest point of the jump:At the highest point, velocity (vf) is zero. Use 9.8 m/s² for the acceleration due to gravity.For example, if the initial velocity is 1.37 m/s, time to reach maximum height is:t=(0−1.37)/(−9.8)=0.14 s
(iii) Calculation of the Initial Velocity from Total Time of FlightThe initial velocity vi can be calculated using the time to reach the jump height:vi =gtFor example, if the total time is 0.14 seconds:vi=9.8×0.14=1.37 m/s
(iv) Vertical Jump Physics Equation:Calculate the jump height using the formula:sf = si+vit−1/2gt2where sf is the final position and si is the initial position.
Since jump height is the difference between the final and initial positionh=(sf−si)Simplify the Formula to:h = vit−1/2gt2And calculation of h:h= (1.37×0.14) −1/2(9.8×0.142) =0.19−0.10=0.09 m\
The data we get from the accelerometer is in Raw format as given in the specifications of this report in order to convert it into steps taken by the user, I researched the way people walk and this data is then calibrated with an if else statement and the step count is flagged for each time the force in Y axis increases and suddenly drops that indicates the step count.
This step count was sent to a variable count from which steps count data is obtained.E.g. gForceY > 0.5 && gForceY < 3.5.
Project Design & Circuitry
The above circuit diagram shows the circuitry details of the prototype and all of this is built into a custom-made PCB that houses an ESP32 IoT Development board along with a MPU6050- Accelerometer sensor and a Flexiforce A401 sensor which is a force sensing resistor.
This circuit is powered by a 3.7 V Lithium Polymer battery that is rechargeable and one that easily fits on to the device. The custom-made PCB was fabricated with housing any form of System on a Chip IoT boards and one that could house many IoT and Automation related sensors and relays.
Implementation and MethodologyThis shoe tracker system is not a normal shoe tracker as a force sensingresistor(Flexiforce A401 sensor) as well as an accelerometer and gyroscope(MPU6050 Sensor) is interfaced to an SoC IoT Board(ESP32).The microcontroller in this IoT board is programmed to retrieve the Force Data in Newtons as Well as the accelerometer data from the respective sensors. A circuit is built to calibrate the Force Sensing Resistor to the required specifications.
A higher driver voltage is applied to the sensor and an IC(MCP6004), an op-amp, is used to amplify the input signal to make it possible to read higher force values. The sensor used is capable of reading force values up to 31000 N.The flight time is then calculated using the data from the Force Sensing Resistor(FSR).This is done by measuring the duration the value of FSR stays zero or negligible, because while jumping there’s no Normal Reaction Force acting on the FSR.
Using Biomechanics I study this data along with the accelerometer data to provide the vertical jump height value.
The method to calculate vertical jump height involves only using the flight time byusing the equation S=0.5at2, where a is the ‘acceleration due to gravity’ and ‘t’ is 0.5x the totalflight time and S is the Displacement(Vertical Jump Height Value).The accelerometer gives thegForce for respective axis, using this value I calculate the number of steps taken by the personas well.
This is the current way I use to calculate the Vertical Jump Height Value.By checkingits efficiency I can determine whether or not to use an alternative method, that is by measuring the impulse before the jump we can also calculate the vertical jump height value. Using the Blynk platform these values are sent to the user’s smartphone where readings are shown in realtime. The data is transmitted from the microcontroller to the smartphone with the help of Bluetooth Low Energy also called as BLE.It uses lesser power and has a relatively shorter range than Bluetooth 4.0.This device is connected to a 3.7 V, 500maH Lithium-Polymer battery for power that is expected to run this device for up to four hours on a full charge.
We thus get the vertical jump height as well as steps taken from this device.Thesevalues are recorded in the smartphone for the user to check if there are any changes from their previous routines. The users are then given instructions as on how they can increase their vertical jump height and shown proven methods of training as they can track their improvements using this device.
Building the CircuitryThe device can be prototyped by interfacing an MPU6050 accelerometer directly and Interfacing a high accuracy Force Sensing Resistor through a MCP6004 Operational Amplifier Circuit to an ESP32 IoT Development Board. This is the overview of the circuit but the circuit is constructed as per the circuit diagram given. The main function of the Operational Amplifier is to Amplify the given signal correctly and provide accurate data to the ESP32 IoT Development Board.The MPU 6050 is connected to the ESP32 IoT Development Board via I2Cconnection.I2C stands for Inter-Integrated Circuit. It is a bus interface connection protocol incorporated into devices for serial communication. This involves the SDA and SCL pins on both the MPU6050 sensor module and the ESP32 module.The whole prototype is provided with power by a rechargeable 3.7 V Lithium Polymer Battery. The power is provided directly to the ESP32 board. This battery is small enough to be mounted onto the small device. The components are then soldered onto the PCB using header pins which provides for a stable electronic connection.
Above image shows the PCB circuitry of the prototype a breadboard like PCB is designed and the connections are established by soldering the components on to this PCB. All the components are placed onto female header pins that is soldered onto the PCB boardCode Overview
Using Arduino IDE as a platform I programmed the ESP32 Micro controller and made sure the code was free of bugs and issues. The Arduino platform provides a pretty straightforward USB flash connection with the ESP32 microcontroller and is a sufficient tool for troubleshooting and debugging ESP32 code. This IDE also helped me a lot in Implementing the BLYNK IoT Platform into the project.There are two parts to the main code. One part is calibration of the FSR and the second part is including the MPU6050 code and sending the data to the smartphone. The code is given in this webpage at last.
This code connects the sensors to the ESP32 IoT Development Board and the Board is connected to the Smartphone for Output via Bluetooth Low Energy. This is all done in a single program file. The device is secure as the Bluetooth has an auth token for example in this device the auth token is “sWxv_XH0jej8xskj3m85D_Ah65QagIr8”.The time is taken when the FSR reading is below 100.In the code the hardware timer interrupt of the ESP32 Module is used to start the time count when the FSR reading is below 100 and ends the timer when the reading gets above 100.This calculates the total time taken for the flight.Using the formulae mentioned in Chapter I this code computes the Vertical JumpHeight using the Time of Flight. The code accesses the individual shift registers in the MPU6050 module to get raw sensor data. This data is then calibrated with an if else statement and the step count is flagged for each time the force in Y axis increases and suddenly drops that indicates thehuman step count. Eg: gForceY > 0.5 && gForceY < 3.5
Above image Shows the device mounted onto the collar of the shoe. Since it is a prototype the device contains a full IoT development board. When taking it to the next stage of manufacture the device will become smaller by implementing only the MCU unit of ESP32.The MPU6050 sensor is placed parallel to the collar of the shoe.
The FSR is placed in the inner sole of the shoe (Fig. 20). When the user jumps the force exerted on the FSR gets less than 100 FSR reading and the device starts counting the flight time until the FSR reading gets back to greater than 100 FSR reading. This happens during landing. And using this flight time the Vertical Jump Height is determined.
This graph denotes the FSR Reading in Newtons in Y-axis and time readingsin the unit milliseconds in the X-axis. The Crest and trough formed is due to the press and release of the Force sensing resistor respectively.
The shows the dashboard which consists of data sent to the smartphone fromthe prototype. The values displayed in the figure is the result of testing the device by jumping once.The main result of the Project Dunkmaster Pro Shoes is finding out the vertical jump height. This is made possible by calculating the flight time and in turn using the acceleration due to gravity value to calculate the jump height. The device has achieved portability due to embedded technology which fulfills the primary function of this device.
Furthermore, the accuracy of the vertical jump height value varies for about 9mmduring peak function. Therefore, this project can be said that it satisfied all of its initial goals. The results as to the other function of this Shoe Tracker that is step count is calibrated and provides results that are on par with other shoe trackers and wearable in the market.
There’s plenty of improvements that can be done to the existing prototype of the DunkmasterPro Shoes.● Fabricating the device in a SMD and making it much smaller by designing a breakout board apt for the ESP32-WROOM Microcontroller chip.● Patentability of this project as no similar technology is available in the market as of now as per the extent of my knowledge.● Incorporating Fall Detection using Machine Learning in Edge Impulse to improve the features of the Tracker to a whole new level.● Data analysis on the field and practical testing among sportsmen and users alike.● Improving the current User Interface and creating a database system for long lasting storage and tracking.● Creating a whole application that makes it not dependent on current open sourced platforms.● 3D-Printing a proper enclosure for maximum protection of the device.● Incorporating sensors designed onto the shoes instead of fixing trackers in the show that might loosen up in the long term.● Beta testing the project with various levels of performance among professional players to tell the difference accurately.