Inspiration

We were inspired by a classmate who told us their father has low vision, not full blindness, and does not like the stigma of using a cane. Combining that with our desire to use technology to “level the playing field” and provide those with physical disabilities with options for independent living, came the idea for WAVI.

What it does

WAVI (Walking Assistant for the Visually Impaired) is a device that integrates both software and hardware to provide a “smart” assistant for the visually impaired when navigating their environments. On the hardware side, a Raspberry Pi processes sensory information from an ultrasonic sensor to detect nearby objects. Depending on the proximity of the object, different beeps will be produced - the closer the user is to an object, the higher the frequency. On the software, a Flask web page displays the distance data (updating every four seconds), with options for human voice feedback or the beeping noise.

How we built it

The Raspberry Pi controls the ultrasonic sensor using its general purpose pinout. Ultrasonic sensors work by sending an ultrasound signal and measuring the time it takes for the signal to echo back. This then sends data to the Raspberry Pi, which can then send the data to a remote web page. The web page is automatically updated every few seconds.

The Raspberry Pi creates a local server using Flask, which is the link between the data received by the Raspberry Pi and the HTML file accessed on another computer or phone device. The web app uses the HTML5 framework, CSS for styling, and Javascript to control logical branching. The Flask web page can toggle between text-to-voice speech and beeping sounds, based only on an event response to a single tap.

Challenges we ran into

One of our first challenges for this project was figuring out that Arduino Uno was not capable of hardware threading, so we ended up using a Raspberry Pi 3, which we had no experience with. We also attempted to develop an Android application, but because Bluetooth communication was not running smoothly and none of the members had experience, we had to switch to a Flask web application instead, utilizing Javascript and HTML to update the data as necessary.

Accomplishments that we're proud of

Since our original idea was using an Arduino Uno, our team did not have any previous experience with Raspberry Pi development, let alone server hosting, we are proud that we were able to host a working web app. We also changed our project ideas to use a combination of a Raspberry Pi and web app using Wi-fi, instead of an Arduino and a mobile app using Bluetooth, on Saturday evening, so the ability to work effectively under pressure in a short period of time was improved. Only one of our team members had web application development experience, so learning Flask, Javascript, and HTML quickly was a good learning experience.

What we learned

This project was a major lesson in debugging. First, all of us came in with no experience using the Raspberry Pi, so learning the hardware connection pins and ports, and pairing that with correct coding on Flask taught us effective methods for debugging and testing. Mainly, we isolated sections of code with commenting and alerts, checked accuracy of sensor readings with a physical yardstick, and checked the reliability of the web app by loading onto multiple laptops as well as smart phones. This project was also a lesson in defining hardware and software requirements before starting. One of our largest delays was starting programming with the Arduino UNO, and then switching to the Raspberry Pi after we realized the processing limitations of the Arduino. This made us realize we need to know the processing power and data stream requirements of our program before picking hardware, rather than picking the hardware that is easiest to access or most familiar.

What's next for WAVI: A Walking Assistant for the Visually Impaired

The future for WAVI includes introducing several new software features, including Google Maps and GPS integration and voice-activated commands through a mobile application.

We also want to streamline the hardware production and functionality, replacing the Raspberry Pi with a custom printed circuit board, and adding multiple sensors for better object detection.

We also want to obtain feedback from visually impaired users to better enhance their experience.

Share this project:

Updates