Swimming is an enjoyable and refreshing activity, but for visually impaired individuals, it can pose significant challenges.
Navigating through a pool or open water without the ability to see obstacles can be difficult and potentially dangerous, to address this issue and improve the swimming experience for visually impaired swimmers, I have developed an affordable and accessible solution: SwimSight.
In this project, my primary goal was to create a navigational aid that is not only effective but also low cost, focusing on utilizing cost-effective and commercial components to provide real-time navigational assistance to visually impaired swimmers.
To address the challenges faced by visually impaired swimmers and provide an affordable and effective navigational aid, I have developed a solution centered around two ultrasonic sensors integrated into the sides of the swimmer's goggles.
As the swimmer moves through the water, the ultrasonic sensors continuously send out ultrasonic waves, which bounce off objects in the swimmer's surroundings, the sensors then calculate the time it takes for these waves to return, measuring the distance to the detected obstacles in real time.
Once distance measurements from the ultrasonic sensors have been made; integrated vibrating motors placed within the swimmer's goggles provide haptic feedback that corresponds to the distance between the swimmer and any detected obstacles (increasing their vibration frequency as the swimmer approaches obstacles), allowing the swimmer to intuitively sense obstacles and make real-time adjustments.
One of the key advantages of this solution is its simplicity and versatility. The ultrasonic sensors and vibrating motors are easy to mount on any type of swimmer's goggles. This versatility means that swimmers can use their preferred goggles, and the navigational aid can be adapted to various styles.
By employing off-the-shelf ultrasonic sensors and common vibrating motors, this solution remains cost-effective and easily accessible to a wide range of users. making swimming a more inclusive and safer activity.
Hardware Components:Ultrasonic Sensors: x2 Ultrasonic waterproof sensors are strategically positioned on the sides of the swimmer's goggles. These sensors emit ultrasonic waves to measure distances to nearby obstacles.
Vibrating Motors: x2 Motors integrated within the swimmer's goggles, provide haptic feedback to the user. These motors vary their vibration frequency based on obstacle proximity.
Arduino Nano: An Arduino Nano microcontroller serves as the brain of the navigational aid system. It processes data from the ultrasonic sensors and controls the vibrating motors to provide haptic feedback.
Custom PCB: The system incorporates a custom-designed PCB that serves as a central hub for connecting and organizing all the electronic components. This PCB provides a compact and efficient platform for the components like the ultrasonic sensors, Arduino Nano, and vibrating motors.
Step 1: Assemble the PCB: Solder the components into the PCB, including the Arduino Nano, ultrasonic sensors, and vibrating motors and ensure secure and accurate connections; use spacers and M2.5 screws to secure the JSN-SR04T in the PCB before soldering
*Note the ultrasonic sensor have to been modified to fit the PCB, substitute the right angle pin header for an straight one and flip the JST connector as seen in the following photo:
Step 2: Solder the vibrating motors:
- Cut two lengths of wire for each motor, ensuring they are long to cover at least half of the perimeter of your head
- Strip a small section of insulation from the ends of each wire.
- Solder one wire to each lead of the vibrating motor, making a secure and reliable connection. Ensure that there is good electrical contact and that the wires are firmly attached.
- Use heat shrink tubing or electrical tape to insulate and protect the soldered connections from water.
Step 3: Mount Ultrasonic Sensors and Vibrating Motors: Attach the ultrasonic sensors to the sides of the swim goggles and the vibrating motors using the 3D printed parts, position them to face forward, ensuring an unobstructed field of view.
Step 4: Attach the Ultrasonic sensor + vibrating motor to the googles: Secure the 3D piece into the google, if it's loose modify the 3D parts to fit your googles
Step 5: Attach the battery and test the system: Attach the battery as indicated by the silkscreen and test the module
*Note: I recommend using LEDs instead of the vibrating motors during the initial testing phase. LEDs are a convenient way to visually confirm the circuit's correct operation. Once you've verified that the system is functioning as expected with LEDs, you can then proceed to integrate the vibrating motors
Step 6: Mount the PCB into the 3D printed enclosure: Carefully place the custom PCB inside the 3D printed enclosure, aligning it with the designated mounting points.
Step 7: Connect the Ultrasonic Sensor and the Vibrating Motors to the PCB: Pass the wires through the cover of the 3D printed enclosure before connecting them to the PCB
Step 8: Close the Enclosure: Make sure to secure the casing with screws to keep it tightly closed and *waterproof.
Step 9: Secure the PCB case to the Googles: To ensure a stable attachment of the system to the goggles, you can use zip ties passed through the attachment holes on the casing, securing them around the goggles' straps. Alternatively, you can use cables to secure them allowing for easy detachment when adjustments or maintenance are required.
Waterproofing plays a crucial role in the success of this project; by ensuring the waterproof integrity of the system, we safeguard the functionality of electronic components against water exposure. This is vital for maintaining the system's reliability and, most importantly, the safety of swimmers during aquatic activities. In the following sections, we will delve into the specific waterproofing measures incorporated into the design to ensure the project's effectiveness and the well-being of its users.
- Waterproofing the vibrating motors: Use heat shrink tubing to avoid water entering the solder connections, if needed you can use extra protection by using silicone or epoxy
- Waterproofing the 3D printed enclosure: Test before putting the electronics the 3D printed enclosure, I used 100% infill to avoid water entering through the 3D printed walls, if needed you can use silicone rod between the lid and the case, more information in: https://help.prusa3d.com/article/watertight-prints_112324
- Waterproof for the entrance for the cables: Once the ultrasonic/vibrating motors cables are attach to the PCB use a hot glue gun to waterproof the holes in the lid for the connectors
During the construction of this project I have notice some recommendations and upgrades that would improve the building experience of this module and the correct some errors
Recommendations:
- Socket Arduino Nano: Using a socket for the Arduino Nano board facilitates the process of board replacement; in case that the Arduino Nano becomes damaged, having it in a socket allows for easy removal and replacement without the need for complex desoldering procedures
- Socket Boost Converter: Like the Arduino Nano using a socket for the boost converter facilitates its replacement, I recommend using smaller sockets like ones in the following photo for maintaining a low height.
- Secure the components before soldering: Use a hot glue gun or thermal tape to secure the components such as switches, headers..etc, to prevent them falling during soldering.
- Don't cut the JSN-SR04T Probe!: Despite the probe being very long (1 meter) for this application, the probe shouldn't be cut as resoldering back together would be very complicated, try to gather the cable.
Upgrades: There are some upgrades to be made, I have update the PCB files to make these changes.
3V3 Enough Current: The Arduino Nano integrated boost converter couldn't supply enough current for the vibrating motors to work, I soldered two 1N4148 to power 3.3V, the updated PCB has them as footprint to easy solder.
- 3V3 Enough Current: The Arduino Nano integrated boost converter couldn't supply enough current for the vibrating motors to work, I soldered two 1N4148 to power 3.3V, the updated PCB has them as footprint to easy solder.
External Switch: The original plan was to add an external switch to power up/down the circuits externally, however a fault in the footprint prevented from doing it, the newer version of the PCB enables a waterproof switch to activate the PCB externally
- External Switch: The original plan was to add an external switch to power up/down the circuits externally, however a fault in the footprint prevented from doing it, the newer version of the PCB enables a waterproof switch to activate the PCB externally
Comments