Sound Ball Tennis for the Visualy Impaired
- Chris Wong
- Jan 28, 2023
- 5 min read
Updated: Mar 2, 2023
last updated: 2/3/2023
This sound ball project developed by Silas is believed to make the tennis sport possible for the visually-impaired. With his aim to serve the needy, this tennis racket encourages the blind to make use of their other senses and not to give up on sports.
The four infrared (IR) sensors that spread on the edge of the racket detects the tennis and transmits signals to the Arduino Nano, the small but omnipotent microcontroller. The controller then activates the motor and the racket vibrates before the tennis lands on it. Apart from the tactile stimulation, the shaking beads inside the tennis also give auditory signals to the player.

Prototype 1

Prototype 2
Features:
Responsive and accurate light switches
Notification by viration or sound
Light, compact and energy efficient
Durable 3D enclousure deisgn
Convenient recharging by the power bank attached
Made with the visualy impaired in mind
What you will learn:
Wire an Arduino Nano with a buzzer, vibration motor and infrared sensor
Physics behind the electronics
How to use and recharge a lithium battery
How control each of the electroincs
3D deisgn the enclousure of the device
Gallery:
Parts:
Arduino Nano
Infrared Light Switch
Mini vibration motor
Buzzer
Challenges during Development
The project might look intuitive but there are many obstacles behind the scene. For example, we tried multiple ways to detect the tennis ball, including magnetor sensor, infrared sensor, and even computer vision. And to remind the player of the incoming tennis ball, we have tried Bluetooth, Wifi, etc. Each method has it pros and cons. Some are overly-complicated and downright inefficient.
Mangetometer
This is the very first approach that came to our mind. We figured that if we put a strong magnet inside the tennis, we might be able to detect it using a magnetomer (a sensor that measures magnetic strength) installed on our racket. So we hooked up a magnetometer with an Arduino for a test.


However, the experiment result was not promising. To begin with, it cannot measure a magnet beyond 3cm. Secondly, the data was too confusing and volatile to figure out what was really happening.
The only advantage was that it had different feedback when the magnet (tennis ball) was approaching from different directions. But this was not helpful due to its short range of detection. Therefore, we had to move on next.
Proximity Sensor
We chose a proximity sensor over an ultrasonic one for its fast response time. Admittedly, ultrasonic sensor can detect object within 2 meters, and even more for those with better quality. The downside was its long delay, which is the last thing we want for our tennis racket. With that in mind, we hook up a proximity sensor with a buzzer and LED for a test.
In the test, our device can detect a ball from 25cm away even when the ball is fastly approaching from the front. But it's not all roses. With 2 AA batteries providing 3V of power, the proximity sensor can barely function well, let alone sharing the power with a buzzer. In fact, a proximity sensor needs at least 5V to operate, which is impossible when using battery power.
In the next test, Silas then opted a small power bank to charge up the device but still to no avail. Even with 5V logic, the proximity sensor itself can't output enough current to make the buzzer buzz, meaning that it can't notify the player.
Furthermore, 25cm detection range isn't ideal for our project either. To make things worse, the sensor is extremely unstable when working in a bright environment under sunlight. As a result, we can't but find another way.
Light Switch
Enter the infrared light switch. The switch can be adjusted to detect objects from up to 60cm! It is enclosed inside a black box so as to avoid sunlight interference.
Afer some programming and wiring, we quickly took it to a test. The result was successful. The device has better performance than expected in detecting fast moving object from a distance. To further increase accuracy, Silas installed three more light switches on the racket, giving it enough coverage. And just like that, Silas' project is born.
Issues about power
Our project is experiencing unstable performance after rounds of testing. First, the small vibration motor would simply stop working without any warning. Then there are false triggers with light switches.
To deal with the first problem, we singled out the vibration motor and wrote a simple code for a test. It turned out that the motor would work more steadily when there are no other loads in the circuit. (the motor was not guaranteed to work 100% even under this situation) Once more sensors were added, the higher the chance for it to fail to vibrate.
To overcome the second problem, we tried to use external power supply for both motor and light switches instead of drawing power from the Nano board itself. Unfortunately, we didn't realize the power issue until after racking our brains on the codes.
When using an external power, all the problems mentioned earlier vanished immediately. Subsequently, we replaced the portable power bank by wiring two 3.7V lithium battery in series. We also added a push switch to easily turn on the device. As a result, we further lessen the weight of the racket.
The video below shows our light switches stability test with a buzzer:
The video below shows our light switches stability test with a vibration motor after using external power supply:
The video below shows the new look of the racket after removing the power bank:
Issues about recharging
When using lithium batteries in a project, we have to find a sustainable way to recharge. To achieve that, we need to include a tiny USB LiPo charger like the image below.

Bringing Sound to the tennis ball
So far our racket is sensitive enough to detect incoming tennis ball within 30cm. However, it was brought to our attention that tennis players with vision impairment usually struggle to locate the ball before it lands on the court. (ps. The sound ball doesn't make any sound in the air) . For this reason, Silas decided to modify the sound ball to allow it to ring at all times. Theoretically, it should help our players to locate the ball.
To do this, we cut open a normal tennis ball, which is relatively small comparing to the real sound ball. Then, we soldered another Arduino Nano board with a passive buzzer and uploaded the code to make it buzz forever. Simlilar to the racket, we used a Lithium battery for power supply. Lastly, we put the device inside the sound ball.
But we faced more than one issues with this approach, "how are you supposed to turn it on or off"? and "how do you recharge?".
To overcome to first problem, we are considering a reed switch, which is triggered when there is a magnet nearby. Simply put, you put a strong magnet next to it to turn on the buzzer inside.
For the second problem, we might need to make it easy to remove the device from the ball or to drill an opening to expose the charging port. This will be our next mission.













































Comments