{"id":11957,"date":"2025-02-24T09:58:58","date_gmt":"2025-02-24T14:58:58","guid":{"rendered":"https:\/\/blogs.mathworks.com\/student-lounge\/?p=11957"},"modified":"2026-03-09T08:10:58","modified_gmt":"2026-03-09T12:10:58","slug":"ping-pong-shot-recognition-a-stem-project-for-lower-secondary-school","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/student-lounge\/2025\/02\/24\/ping-pong-shot-recognition-a-stem-project-for-lower-secondary-school\/","title":{"rendered":"Ping Pong Shot Recognition \u2013 A STEM Project for Lower Secondary School"},"content":{"rendered":"<div class=\"rtcContent\">\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><em>Today&#8217;s guest blogger is Francesco Bellucci, a PhD student in Mechanical Engineering at Department of Industrial Engineering of the University of Bologna. Francesco has a passion for helping young minds and has been actively involved in mentoring a team of young students, aged 13-14, from a secondary school. He assisted them in developing the &#8220;Ping-Pong Shot Recognition&#8221; project using Arduino and Deep Learning. Over to you, Francesco<\/em><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">High school students participating in the Problem Solving Olympiad had the opportunity to work on a unique and innovative project: building a system to recognize ping pong shots using technology. This initiative was part of the Makers section of the Olympiad, where students were challenged to apply their creativity and technical skills to solve real-world problems. The outcome was a project that combined engineering, coding, and artificial intelligence \u2013 all using MATLAB and Arduino.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode aligncenter\" style=\"vertical-align: baseline; width: 626px; height: 350px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2025\/02\/25feb24_1.png\" alt=\"\" width=\"626\" height=\"350\" \/><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Every year the &#8220;<a href=\"https:\/\/icvoluseno.edu.it\/\" target=\"_blank\" rel=\"noopener\">L. Voluseno<\/a>&#8221; comprehensive school participates in the <a href=\"https:\/\/www.olimpiadiproblemsolving.com\/web\/index.php\" target=\"_blank\" rel=\"noopener\">problem solving Olympics<\/a>. It&#8217;s a small mountain school where the Montessori method is applied. The class that participated in the Olympics is the eight grade, made up of six students. For the years 2023-2024 the participation in the makers competition required the creation of a project based on Arduino or compatible board concerning one or both of the following themes: <span style=\"font-weight: bold;\">IOT with Arduino, AI with Arduino. <\/span>Thanks to the originality of the idea and the implementation of the solution, the team qualified for the national finals which were held in Cesena.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">STEM (Science, Technology, Engineering, and Mathematics) education plays a crucial role in preparing students for the technological demands of the future. This blog showcases a STEM project where high school students used engineering and programming skills to develop a smart ping pong paddle. The project aimed to recognize technical gestures during a game using sensors and artificial intelligence, fostering the spirit of innovation and problem-solving among young minds.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode aligncenter\" style=\"vertical-align: baseline; width: 609px; height: 262px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2025\/02\/25feb24_2.png\" alt=\"Workflow Activity.png\" width=\"609\" height=\"262\" \/><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The challenge was to design a system that could classify different shots in ping pong, such as forehand, backhand, topspin, and chop. Traditional methods of tracking these movements often rely on complex video analysis and manual tagging. This project sought to simplify the process using an Arduino platform and an accelerometer.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The students began by designing and 3D printing a custom ping pong paddle that could house an accelerometer. After assembling and wiring the components, they programmed the Arduino to collect data on the paddle\u2019s motion. The collected data was then processed and analyzed in MATLAB, leveraging its libraries and tools to classify different types of shots based on acceleration data.<\/div>\n<h4 style=\"margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: bold; text-align: left;\">1. <span style=\"font-weight: bold;\">Design and 3D Printing<\/span><\/h4>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The students designed a paddle with a custom handle that could hold the accelerometer securely. Using the school\u2019s 3D printer, they fabricated the paddle using biodegradable yellow PLA filament, emphasizing both functionality and sustainability.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">We started by drawing the profile of the paddle, which was then extruded to make the model three-dimensional.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode aligncenter\" style=\"vertical-align: baseline; width: 467px; height: 259px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2025\/02\/25feb24_3.png\" alt=\"\" width=\"467\" height=\"259\" \/><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Subsequently, a hole was made in the handle for the cables to pass through and a pocket to house the accelerometer. To avoid leaving the accelerometer exposed, a cover was designed, which will also serve as a grip for the paddle.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode aligncenter\" style=\"vertical-align: baseline; width: 465px; height: 227px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2025\/02\/25feb24_4.png\" alt=\"\" width=\"465\" height=\"227\" \/><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The components were manufactured using the school&#8217;s 3D printer, utilizing a yellow PLA filament, a polymer derived from corn and biodegradable.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode aligncenter\" style=\"vertical-align: baseline; width: 316px; height: 252px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2025\/02\/25feb24_5.png\" alt=\"\" width=\"316\" height=\"252\" \/><\/div>\n<h4 style=\"margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: bold; text-align: left;\">2. <span style=\"font-weight: bold;\">Data Acquisition and Processing<\/span><\/h4>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The paddle\u2019s accelerometer measured accelerations along three axes (x, y, z) as the player moved the paddle.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode aligncenter\" style=\"vertical-align: middle; width: 159px; height: 159px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2025\/02\/25feb24_6.png\" alt=\"\" width=\"159\" height=\"159\" \/><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">By connecting the Arduino to MATLAB, the students could read acceleration values in real-time and visualize the data using simple commands such as:<\/div>\n<div style=\"background-color: #f5f5f5; margin: 10px 15px 10px 0; display: inline-block;\">\n<div class=\"inlineWrapper\">\n<div style=\"border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0.666667px solid #d9d9d9; border-bottom: 0px none #212121; border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">a = arduino(<span style=\"color: #a709f5;\">&#8216;\/dev\/ttyACM0&#8217;<\/span>, <span style=\"color: #a709f5;\">&#8216;Mega2560&#8217;<\/span>, <span style=\"color: #a709f5;\">&#8216;Libraries&#8217;<\/span>, <span style=\"color: #a709f5;\">&#8216;I2C&#8217;<\/span>);<\/span><\/div>\n<\/div>\n<div class=\"inlineWrapper\">\n<div style=\"border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0px none #212121; border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">imu = mpu6050(a);<\/span><\/div>\n<\/div>\n<div class=\"inlineWrapper\">\n<div style=\"border-left: 0.666667px solid #d9d9d9; border-right: 0.666667px solid #d9d9d9; border-top: 0px none #212121; border-bottom: 0.666667px solid #d9d9d9; border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: #212121; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px;\"><span style=\"white-space: pre;\">accelData = readAcceleration(imu);<\/span><\/div>\n<\/div>\n<\/div>\n<h4 style=\"margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: bold; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 204px; height: 112px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2025\/02\/25feb24_7.png\" alt=\"\" width=\"204\" height=\"112\" \/><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 205px; height: 112px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2025\/02\/25feb24_8.png\" alt=\"\" width=\"205\" height=\"112\" \/><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 205px; height: 112px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2025\/02\/25feb24_9.png\" alt=\"\" width=\"205\" height=\"112\" \/><\/h4>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">In these 3 images, we can both see the accelerometer signal trend for the 3 Cartesian axes (x, y, z) and next to it the corresponding transformation performed by the <a href=\"https:\/\/it.mathworks.com\/help\/wavelet\/gs\/continuous-wavelet-transform-and-scale-based-analysis.html\">continous wavelet transform<\/a> to create the <a href=\"https:\/\/it.mathworks.com\/help\/signal\/ug\/scalogram-computation-in-signal-analyzer.html\">scalogram<\/a>.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">For the part of Data Preprocessing and the Scalogram the code was taken from this blog: <a href=\"https:\/\/blogs.mathworks.com\/deep-learning\/2021\/06\/03\/building-a-high-five-counter-using-deep-learning\/\">Building a High Five Counter Using Deep Learning<\/a><\/div>\n<h4 style=\"margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: bold; text-align: left;\">3. <span style=\"font-weight: bold;\">Training the Neural Network<\/span><\/h4>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The data collected from different shots was used to train a neural network model in MATLAB. A pre-trained neural network, GoogLeNet, was adapted to classify the frequency graphs generated for each ping pong shot. The model was fine-tuned to differentiate between service, forehand, backhand, topspin, and chop strokes.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Starting from the pre-trained network, we replaced the third-to-last layer of the 144-layer network, requesting an output size of 4 to classify 4 categories of images. We also increased the learning rate for both weights and biases so that they could update more significantly a teach cycle, given that this layer needs to be trained from scratch.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode aligncenter\" style=\"vertical-align: baseline; width: 623px; height: 414px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2025\/02\/25feb24_10.png\" alt=\"\" width=\"623\" height=\"414\" \/><\/div>\n<h4 style=\"margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: bold; text-align: left;\">4. <span style=\"font-weight: bold;\">Performance Evaluation<\/span><\/h4>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Using metrics such as accuracy, precision, and recall, the students evaluated the model\u2019s ability to classify shots. Although the initial results were promising, the team realized that more data was needed for better generalization.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Since we have 400 observations available, we set the mini-batch size to 25 and the validation frequency to 16, ensuring even data distribution in training so that the entire dataset is used each epoch. Specifically, repeating the process 16 times with batches of 25 data points each covers all 400 samples.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode aligncenter\" style=\"vertical-align: baseline; width: 398px; height: 109px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2025\/02\/25feb24_11.png\" alt=\"\" width=\"398\" height=\"109\" \/><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">It would also be possible to use the validation data, as mentioned earlier, to automatically stop training when the loss stops decreasing on that dataset. However, it was decided to let the algorithm run for all 20 epochs, setting ValidationPatience to Inf. The neural network provided as output, to prevent overfitting, is not necessarily from the final iteration but rather the one with the lowest loss on the validation set, setting the OutputNetwork parameter as shown below.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode aligncenter\" style=\"vertical-align: baseline; width: 347px; height: 87px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2025\/02\/25feb24_12.png\" alt=\"\" width=\"347\" height=\"87\" \/><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The graph below shows the trends of accuracy and loss during the training process of the neural network.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode aligncenter\" style=\"vertical-align: baseline; width: 626px; height: 382px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2025\/02\/25feb24_13.png\" alt=\"\" width=\"626\" height=\"382\" \/><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The project provided students with hands-on experience in multiple disciplines, from mechanical design to software programming and machine learning. One challenge they faced was <a href=\"https:\/\/it.mathworks.com\/discovery\/overfitting.html\">overfitting<\/a>, where the model performed well on training data but struggled with unseen test data. To overcome this, they experimented with reducing the number of categories and retrained the model to improve accuracy.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">High school students demonstrated enthusiasm and skill in tackling a complex problem, such as pattern recognition, using advanced tools (Pre-Processing + GoogleNet). This was made possible by MATLAB&#8217;s intuitive interface, which simplified the approach to sophisticated technologies. My sincere thanks go to the Headmaster, teachers and students for their commitment and cooperation.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The project remains a work-in-progress. The students plan to collect more data to improve the model&#8217;s robustness. They are also considering integrating other sensors, such as gyroscopes, to further enhance shot recognition. The ultimate goal is to create a comprehensive system that can be used in real-time during games to provide insights on a player\u2019s performance.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><span style=\"font-style: italic;\">When bright minds collaborate on bold ideas with the best tools, they don\u2019t just learn\u2014they innovate, solve, and inspire others to follow in their footsteps.<\/span><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The Ping Pong Shot Recognition project is a testament to the potential of combining STEM education with practical problem-solving activities. By leveraging MATLAB and Arduino, high school students were able to explore the fascinating world of <a href=\"https:\/\/it.mathworks.com\/discovery\/artificial-intelligence.html\">artificial intelligence<\/a> and <a href=\"https:\/\/it.mathworks.com\/learn\/training\/machine-learning-with-matlab.html\">machine learning<\/a>. Projects like these not only enhance technical skills but also inspire students to pursue careers in STEM fields.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">This project enabled students to approach <a href=\"https:\/\/it.mathworks.com\/discovery\/computational-thinking.html\">computational thinking<\/a> using MATLAB and Simulink, tools that foster the development of critical skills to analyse complex problems, design effective solutions and apply advanced artificial intelligence and machine learning techniques in real-world contexts. Therefore I recommend as an additional resource <a href=\"https:\/\/learntocode.mathworks.com\/\">Learn to Code with MATLAB<\/a>.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Finally, I would like to remind you that since the beginning of the project I have been supporting students as MATLAB Student Ambassadors. I sincerely hope that our experience can be a model for future projects and an example for other schools.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Therefore, the project remains open to gather more examples to further train the neural network and for subsequent fine-tuning of various parameters.<\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The link to the video illustrating the various phases described in this paper: <a href=\"https:\/\/youtu.be\/DZHvqlDUWFg?si=oIjJC_DEuM6WxeP_\" target=\"_blank\" rel=\"noopener\">Table Tennis Shot Recognition &#8211; 3B IC L. Voluseno<\/a><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode aligncenter\" style=\"vertical-align: baseline; width: 665px; height: 888px;\" src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2025\/02\/25feb24_14.png\" alt=\"IMG-20240413-WA0030.jpg\" width=\"665\" height=\"888\" \/><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><\/div>\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><\/div>\n<\/div>\n<p><script type=\"text\/javascript\">var css = ''; var head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); head.appendChild(style); style.type = 'text\/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); }<\/script><a href=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2025\/02\/25feb24.mlx\"><button class=\"btn btn-sm btn_color_blue pull-right add_margin_10\">Download Live Script<\/button><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img src=\"https:\/\/blogs.mathworks.com\/student-lounge\/files\/2025\/02\/25feb24_1.png\" class=\"img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/div>\n<p>Today&#8217;s guest blogger is Francesco Bellucci, a PhD student in Mechanical Engineering at Department of Industrial Engineering of the University of Bologna. Francesco has a passion for helping&#8230; <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/student-lounge\/2025\/02\/24\/ping-pong-shot-recognition-a-stem-project-for-lower-secondary-school\/\">read more >><\/a><\/p>\n","protected":false},"author":183,"featured_media":11912,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[630,6],"tags":[348,104],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/posts\/11957"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/users\/183"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/comments?post=11957"}],"version-history":[{"count":6,"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/posts\/11957\/revisions"}],"predecessor-version":[{"id":12609,"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/posts\/11957\/revisions\/12609"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/media\/11912"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/media?parent=11957"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/categories?post=11957"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/student-lounge\/wp-json\/wp\/v2\/tags?post=11957"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}