The era of physical distancing has changed the dynamics of everyday activities and interactions, including sports. An example of this is tennis - a sport that's much more fun with a partner, or at least an opponent to compete against. When playing with others isn't an option though, what can you do? Well, that's where Single Player Tennis comes in. With enough space in your backyard and a hard wall to hit against (or at least materials to make one), you'll be well on your way to simulating a game of tennis on your own. You'll essentially be playing singles tennis, online!

What it does

Tennis backboards are common practice tools to help players improve their strokes, but it can get monotonous after a while. Single Player Tennis gamifies the backboard experience by simulating a virtual opponent.

According to a study, the average collegiate tennis rally lasts approximately 6 seconds. A randomized timer (between 2-15 seconds) will be initialized at the start of each point and a red light will signal the end of the point. At this point, the Player can push a button to signal that they "won" the point by successfully returning the ball with proper form; otherwise, the Computer "wins" the point, and the next cycle starts. This continues until either the Player or the Computer wins the game.

How I built it

Part 1 I started out playing tennis against the wall of our house in our backyard, but it was causing too much noise (and sometimes made the walls shake), so my family decided to put some time into a weekend project and build a tennis backboard for our backyard.

Part 2 Since I don't have an Arduino at home, I used TinkerCad to simulate and code the program. The program comes with a library of basic components, including an LCD screen and a push button. The library also includes a WiFi module that I wanted to use, but the simulation software limited its functionality.

Challenges I ran into

I was lucky that my family was willing to support me in this project and help build the tennis backboard. My dad had some extra pieces of wood from a previous project and was extremely helpful in building and placing the backboard.

Additionally, simulation is new to me. It took me a while to find a free Arduino simulation software, and with time running out, it seemed like TinkerCad had almost everything I wanted. Of course, the functionality was limited in that you can't import your own libraries or components, but I was able to adapt the project to what they had available. I really wanted to make use of the WiFi module and somehow connect it to a GUI on my phone, but the limitations of the simulation software wouldn't allow me to test it. Hopefully, this is something I can implement in the future!

Lastly, I tried to use a service called Netlify to host the domain from, but for some reason I kept getting a message to configure the DNS. For now the domain gives a 404 error until the DNS updates, but in the meantime the full site can be found on Netlify through the temporary link found at the bottom.

Accomplishments that I'm proud of

  • Encouraging my family to take part in a weekend activity
  • Learning/experimenting with Arduino without the physical hardware
  • Building something that I know I will actually use throughout the summer

What I learned

  • As someone who is more comfortable with MATLAB syntax, I learned how to use programming foundations and apply it to Arduino syntax
  • Learned the power of simulations and its use for fast/cheap prototyping
  • Learn how to use OBS Studio and Adobe Rush to do picture-in-picture video editing!

What's next for Single Player Tennis

My main goal for this hackathon was to create an Arduino-based project in order to better understand how to use it and to get comfortable with its syntax. I like the idea of having a physical push button to signal whether I "won" the point or not, but it may be more feasible to turn the entire idea into an app for a phone/smartwatch. Otherwise, if more features/components are added to the TinkerCad simulation library, I may integrate the WiFi/Bluetooth module to communicate with my phone.

I'd also add features to increase the game count to at least 6 games so that the Player and the Computer can play at least 1 set if they wished.

Cover Image Credits

Photo by Mohammad Saemian on Unsplash

Built With

Share this project: