Anand Vaidyanathan
Published © GPL3+

My Smart Racket Recommender

This project recommends a suitable racket to budding tennis players based on their playing style, physique and fitness levels.

IntermediateWork in progressOver 1 day1,292
My Smart Racket Recommender

Things used in this project

Hardware components

Hexiwear
NXP Hexiwear
×1

Software apps and online services

Evothings Studio
Evothings Studio
ARM mbed OS 5

Hand tools and fabrication machines

mbed
Arm mbed

Story

Read more

Schematics

Vibration Analyzer Evothings App

The Evothings App helps with the decision-making process after the Racket Vibration data has been acquired.

Code

Racket Decision Making App

HTML
Evothings App used in conjunction with the Vibration Analyzer to select a racket.
<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <meta name="viewport" content="width=device-width, user-scalable=no,
    shrink-to-fit=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0">
 <title>VibrAnalyzer</title>
 <style>@import 'ui/css/evothings-app.css';</style>
 <script>
 // Redirect console.log to Evothings Workbench.
 if (window.hyper && window.hyper.log) { console.log = hyper.log }
 function displayResults() {
   var vibs = document.getElementById("Vibrations");
   var heal = document.getElementById("Health");
   var rack = document.getElementById("Racket");
   var reco = document.getElementById("Recommendation");
   var recoTxt = '<p>';
   if ('LT10' === vibs.value) {
     recoTxt += '<br/>Very few vibrations were detected!';
     if ('Poor' === heal.value || 'Fair' === heal.value) {
         recoTxt += '<br/>Try dampeners to reduce vibrations even more';
     }
     if ('Heavy' === rack.value) {
         recoTxt += '<br/>Try a lighter racket with similar attributes for comparison';
     } else if ('Light' === rack.value) {
         recoTxt += '<br/>Try a heavier racket with similar attributes for comparison';
     } else {
         recoTxt += '<br/>You might have found your ideal racket!';
     }
   } else if ('LT60' === vibs.value) {
     recoTxt += '<br/>Significant vibrations were detected. Try others before making a decision.';
     if ('Poor' === heal.value || 'Fair' === heal.value) {
         recoTxt += '<br/>This may not be the one for you.';
     }
     if ('Right' === rack.value) {
         recoTxt += '<br/>Try a different brand with similar attributes.';
     }
   } else {
     recoTxt += '<br/>The vibrations are too much to be healthy. Try others.';
   }
   recoTxt += '</p>';

   reco.innerHTML = recoTxt;
 }
 </script>
 <script src="cordova.js"></script>
 <script src="libs/evothings/evothings.js"></script>
 <script src="libs/evothings/ui/ui.js"></script>
 <!-- TODO: Add libraries that you need -->
 <script src="libs/smoothie/smoothie.js"></script>
 <script src="libs/mqttws/mqttws.js"></script>
</head>
<body ontouchstart=""><!-- ontouchstart="" enables low-delay CSS transitions. -->
<header>
<button class="back" onclick="history.back()">
<img src="ui/images/arrow-left.svg">
</button>
</header>
<h1 class="green">Vibration Analyzer</h1>
 <div class="AppBox">
 Vibrations/min:
 <select id="Vibrations">
 <option value="LT10">&lt; 10</option>
 <option value="LT60">&lt; 60</option>
 <option value="GT60">&gt; 60</option>
 </select>
 <br/>
 Playing arm health: 
 <select id="Health">
 <option value="Good">Good</option>
 <option value="Fair">Fair</option>
 <option value="Poor">Poor</option>
 </select>
 <br/>
 Racket Feels: 
 <select id="Racket">
 <option value="Heavy">Heavy</option>
 <option value="Light">Light</option>
 <option value="Right">Just Right</option>
 </select>
 <br/>
 <button class="green" onclick="displayResults();">Recommendations</button>
 <br/>
 <p>Status: <span id="Recommendation"> </span></p>
 </div>
</body>
</html>

Racket_VibrAnalyzer

This is an ARM mbed project that analyzes the vibrations traveling from the racket into the arm of the player and gives its verdict on suitability.

Credits

Anand Vaidyanathan

Anand Vaidyanathan

5 projects • 4 followers
Developer interested in IoT, Streaming Data, Automotive technology

Comments