The Build2Gether competition really inspired me to try and build something which could assist someone who has a disability which prevents them from doing something they love.
The ProblemAfter reading the discussions from the contestant masters and their struggles, I decided to tackle the swimming challenge. There was a great discussion about how finding the end of the pool was a challenge. People with poor eyesight struggle with knowing when they will reach the end.
This challenge inspired me to use bluetooth beacons, to alert the swimmer they were approaching the end of the pool.
Bluetooth beacons broadcast their a signal, which can be picked up by a received and the signal strength can be used to approximate the distance to the beacon.
My thought was to add a beacon at the end of the pool and warn the swimmer when they approached.
ExperimentationUnfortunately in my experimentation I found that Bluetooth beacons are not reliable and the signal strength fluxtuates wildly. This was a bit of a set back.
I had a rethink and a discussion on the -BUILD2GETHER- discord channel about how accurate it would need to be. I found that the closer you were, the more accurate it was, so only reliable when close to the beacon.
SolutionAfter more discussions and a rethink, I had the idea to take samples, over an interval and average the result. This gave more accurate results
I also had the thought to place the beacon where the warning would be needed, instead of at the end of the pool. This gave the user a warning as they past the sensor.
The initial haptic sensor I had was just a motor, which didn't start all the time and had a large current draw. I remembered I had a dead Wii Remote, so I removed the vibration motor from that and it works like a charm!
I now have a working device! I used a unique Manufacturer ID on the beacon and device, so it will not pick up any other devices by mistake.
I also programmed it, so you can press the button to change the threshold at which the device will trigger.
My thought is that this device can be put inside a waterproof bag and worn under a skull cap. This main issue being, the radio signal will not pentrate the water well, so the readings will only work when the device is out of the water.
It may also work if it is worn on the wrist and will buzz when the swimmers hand comes close to the beacon.
Beacon EnclosureI could not just have bare electronics on the side of the pool. It is a wet area and the bluetooth beacon electronics are not waterproof. That is when I decided to design and print a purpose build case. My thoughts were:
- With a solid top, the water cannot get to the electronics if splashed.
- 18650 batteries are easy to get, rechargable and will last a long time.
- The LED should be able to shine through the case, to know it is on.
So I built my first prototype:
It needed a few updates because there was no way to hold the batteries, the atom was too hard to get out and the usb port was not accessible.
I made V2 was made with battery holder and a bottom cover, with a gasket to help keep the water out.
The 'puck' looked a bit big, so I also made a smaller version, running off a CR123A battery. And I also reprogrammed the beacon to flash blue every 10 seconds, to know it is on.
This project was a lot of fun to make and test. I would like to extend it futher in the future.
The accuracy of the RSSI from the ESP32 Bluetooth is not the best. I think with an alternative chip and antenna may make the results more accurate and potentially do what I set out to do.
I believe LoRa may be a better solution and allow for more accurate distance measurement, without having to attach a large device to your head.
If I can get a good solution to work, it would unlock more options. You could datalog the information and get lap times, speed, direction guidance and even AI could be used to eliminate the false readings, to make the measurements even more accurate.
Thanks to Hackster.io and all involved in the BUILD2GETHER Challenge! It is a great cause and I hope to get involved in more!
Comments