- Final Project
- Acquiring proper form:
- Improving rhythm and timing:
- Building strength and flexibility:
- Mental training:
- The device I want to make for my final project:
- Tasks to be completed:
- Development schedule for SmartSuburi
- Introduction
- Background
- Project Objective
- Development History
- Challenge 1: Selecting Sensor Devices and Data Acquisition Methods
- Challenge 2: Stabilizing Data Acquisition and Modeling
- Challenge 3: Improving Swing Type Detection Accuracy
- Challenge 4: Stabilizing Speed Calculation
- Challenge 5: Implementing BLE Communication
- Challenge 6: Developing the PC Application
- Enclosure Creation
- BOM(Bill of Materials)
- Download Project Files
- Future Prospects
- Conclusion
Final
Final Project
Shadow swings or dry swings are considered an essential training method for sports that use equipment like rackets, bats, or clubs such as baseball, golf, and tennis. It is valued in the sports world globally for several reasons.
Acquiring proper form:
Repeated shadow swings help ingrain the correct swing or stroke mechanics into muscle memory, enabling accurate movements during actual play.
Improving rhythm and timing:
Focusing on the tempo during shadow swings helps develop a smooth, rhythmic motion.
Building strength and flexibility:
Slow motion dry swings or using weighted implements can increase the necessary strength and flexibility.
Mental training:
It enhances concentration and can be utilized for visualization drills.
The device I want to make for my final project:
I am considering developing a device to further enhance the effectiveness of shadow practice training. This device will involve attaching a sensor connected to a smartphone to the end of the equipment used in various sports. The sensor will measure swing speed and swing count during shadow swings.
Tasks to be completed:
- Learning how to use Tensorflow Lite for my project
- Determining how to collect training data
- Find the optimal threshold and sampling rate - Selection of battery
- Selection of Bluetooth components
- Determining the App features(Swing speed, number of shadow swings, Reps)
- Determining what functions PCB board will be added.
- Determining the installation location of the device. And how it will be attached.
By aligning the content of each weekly assignment with the Final Project, I can ensure continuous progress on the project.
Development schedule for SmartSuburi
Week | Tasks | Comments | Progress |
---|---|---|---|
Apr 17: Project Planning and Design | Define project goals and requirements. Research existing solutions and technologies. Design initial schematics and system architecture. | Completed | |
Apr 24: Component Selection and Procurement | Select sensors, microcontroller, battery, and other components. Order components and plan for their delivery. Design PCB layout. | May 2: For Assignment 13, I was originally planning to work on the Final Project using the combination of ESC32C3 and MPU-6050. However, since the nRF52840 Sense has an integrated accelerometer, I have decided to use it for development instead. | Completed |
May 1: Hardware Assembly and Prototype Development | Assemble prototype hardware. Solder components onto the PCB. Test basic functionality of the hardware. | May 18: By purchasing a personal 3D printer, the efficiency of developing the enclosure has significantly improved. May 31: Making PCB board | Completed |
May 8: Aruduino code development | Develop Aruduino code for sensor data collection. Implement Bluetooth communication. Test code with prototype hardware. | Completed | |
May 15: Machine Learning Model Development | Collect data for training the machine learning model. Train and validate the TensorFlow Lite model. Integrate the model with the firmware. | May 11: Start investigating whether it is possible to use ML for development in order to accurately identify different types of badminton swings. May 28: Collecting swing data to make Tensorflow Lite model file. | Completed |
May 22: PC App Development | Develop a PC app to display swing data. Implement Bluetooth connectivity in the app. Test app with the hardware device. | Completed | |
May 29: Testing and Final Adjustments | Conduct comprehensive testing of the device and app. Identify and fix bugs or issues. Finalize documentation and prepare the final presentation. | Jun 3: The name of the final project has been decided as Smart Suburi. June 6: Final presentation files uploaded. | Completed |
Introduction
This document provides a detailed explanation of the development history of Smart Suburi, outlining the challenges faced and the solutions implemented in chronological order.
Background
In sports, shadow swinging and similar exercises are crucial for form correction and strength training. However, traditional methods make it difficult to objectively track movements, hindering effective training. To address this, I developed a device that uses sensor technology to measure and analyze swing types and speeds in real-time, helping athletes objectively monitor their movements for more effective training.
Project Objective
This project aims to improve the efficiency of shadow swing practice in badminton by developing a device called Smart Suburi. Smart Suburi attaches a sensor device to a badminton racket, measuring swing types, speeds, and counts, and sends this data via BLE to a PC or smartphone for real-time monitoring.
Development History
Challenge 1: Selecting Sensor Devices and Data Acquisition Methods
Initially, I planned to use a combination of ESP32C3 and MPU-6050 but switched to nRF52840 Sense due to its built-in accelerometer for easier development. I considered both BLE and USB for data acquisition but opted for USB due to the longer data reception time of over 40 seconds per swing via BLE.
Challenge 2: Stabilizing Data Acquisition and Modeling
Using a 5m USB cable to connect the sensor to a PC failed due to cable length. Switching to a 1.5m USB cable resolved the issue. For modeling acquired data, I modified the code from "Getting Started with TensorFlow Lite on Seeed Studio XIAO nRF52840 Sense" to allow selection of any CSV file.
Assignment16
Challenge 3: Improving Swing Type Detection Accuracy
Initial detection results using the created header file were inaccurate. Investigation revealed that the threshold settings in IMU_Capture.ino were too sensitive, causing multiple detections per swing. Gradual adjustment found 5.5 to be the optimal threshold. By focusing on the start and end of each swing, I recreated the header file, significantly improving detection accuracy.
Challenge 4: Stabilizing Speed Calculation
I added a function to calculate the speed of each swing, but initial results were inconsistent. Noise reduction and sensor calibration were identified as solutions. Using ChatGPT, I added static sensor calibration and moving average filtering to the Modified IMU_Classifier code, achieving more stable speed calculation results.
Challenge 5: Implementing BLE Communication
I combined the BLE communication code from Assignment 14 with the Modified IMU_Classifier code, resulting in a functional BLE-enabled classifier. Additionally, I incorporated sleep functionality and a charge status LED.
Challenge 6: Developing the PC Application
A PC application was created to receive and display data sent via BLE. Using Python, Kivy, and Bleak, I based the application on Python code from Assignment 11, adding features such as control of the charge LED, sleep/wake buttons, swing type-specific images, and swing count display. Each swing's type, speed, and count are displayed in real-time.
Enclosure Creation
I designed and created an enclosure for the nRF52840 Sense, battery, additional LED, and buttons using Fusion 360 and 3D printing. The enclosure is essential for device protection and user handling.
BOM(Bill of Materials)
Parts | Qty | Unit price | Cost(Yen) | Source |
---|---|---|---|---|
XIAO nFR52840 Sense | 1 | 2,499 | 2,499 | marutsu |
Red LED 3216 | 1 | 33 | 33 | satodenki |
Resister 2.0x1.25 220OHM | 1 | 15 | 15 | satodenki |
TACT Switch SKHCBEA010 | 1 | 33 | 33 | satodenki |
Button TOP(Green) | 1 | 22 | 22 | satodenki |
LiPo Battery 3.7V 75mAh GEB501419 | 1 | 1,140 | 1,140 | satodenki |
PCB board | 1/8 | 319 | 40 | yodobashi |
Flat-head screw 2.1x10, matte white | 4 | 19 | 76 | Monotaro |
PLA Plus 3D filament 1.75mm | 8 | 2.6 | 20.8 | Amazon |
Acrylic Sheet 7.9 x 11.8 x 2.0 inches (200 x 300 x 5 mm) | 1/20 | 1,100 | 55 | Amazon |
Total Cost: 3,934Yen
Download Project Files
- Enclosure Fusion 360(.f3d)
-
PCB layout PCB data(.f3z)
-
Tensorflow Lite
Capture swing data(Aruduino)
Model file generator(Python) model.h
Swing Detection(Aruduino) -
PC app(Python) Display swing Type, Speed, Reps
Pics of badminton swings(Zip)
Future Prospects
Challenges and Improvements
Current challenges include:
- Unstable BLE data reception.
- Need for speed calculation adjustments.
- Incomplete swing detection accuracy, requiring improvements in the Tensorflow TRAIN DATA section.
Evaluation Methods
To assess the effectiveness of Smart Suburi, I will measure:
- Swing detection accuracy: Monitoring the precision, recall, and error rates of the TensorFlow model.
- BLE communication stability: Testing the reliability of BLE connections between the sensor device and PC or smartphone.
- Speed calculation accuracy: Comparing calculated swing speeds with known standards for consistency.
By adhering to these evaluation criteria, Smart Suburi will ensure accuracy, reliability, and user satisfaction, enhancing badminton training as an effective tool.
Future Development
- Resolving the mentioned challenges.
- Adding application features (battery level display, etc.).
- Adapt Smart Suburi technology for use in other sports such as tennis, golf, or baseball.
Dissemination Plan
The initial step is to produce several sets of Smart Suburi and conduct beta testing with members of my badminton team. Based on the feedback and reactions obtained from this testing, I will move on to the next phase of the plan.
License
Smart Suburi by Hajime Ito is licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International
The Creative Commons license CC BY-NC-ND 4.0 is the license I have chosen for my final project.
Here are the reasons why using this license during the development phase is particularly beneficial:
- Protected Usage:
The ND (No Derivatives) clause prevents others from modifying and distributing altered versions of SmartSuburi. This helps avoid the spread of incomplete or inappropriate modifications by others.
- Consistency Maintenance:
Inappropriate modifications during the development phase can compromise the original vision and objectives of the project. The ND clause ensures that the project progresses in the intended direction, maintaining consistency.
- Reliability Assurance:
Unauthorized modifications can confuse users about which version is official, leading to potential misunderstandings. The NC (Non-Commercial) clause helps prevent commercial use, maintaining the reliability of the official source.
- Flexibility for Future Changes:
As development progresses, you can change the license conditions. Once the project is completed, you may consider switching to a more permissive license, but during development, it is wise to enhance protection with the current license. By doing this, you ensure that the development of SmartSuburi proceeds smoothly and that the project maintains its integrity and reliability until it reaches completion.
Conclusion
Throughout Smart Suburi's development, I faced numerous challenges in both hardware and software, finding solutions and advancing the project. I aim to further improve accuracy and add features, creating a device that effectively supports badminton players' training.