Project in progress

Magoo © BSD-3-Clause

An obstacle-detection and GPS-enabled navigation wearable for the visually impaired.

  • 5,335 views
  • 12 comments
  • 27 respects

Components and supplies

Core
Particle Spark Core
×1
Arduino Mini
×2
746 06
Adafruit Ultimate GPS Breakout
×1
Triple-axis Accelerometer+Magnetometer (Compass) Board - LSM303
×1
Coin Vibration Motor
×2
Ultrasonic Sensor
×1
.75 ft Black Rayon Fabric
×1
1 ft velcro
×1

About this project

About Magoo:

Magoo is a wearable device specifically designed for the visually impaired that is accessible, easy-to-use and fashionable in a way that it doesn't make the blind feel like they stand out negatively. This device provides two basic functions: obstacle detection and navigation assistance, both via haptic feedback. 

In obstacle detection, the user wears a necklace that contains an ultrasonic sensor, which provides vibration (haptic feedback) on the neck if the user is within 2 meters range of a barrier in front of them.

The second piece is an arm-length glove which houses the actuators and wifi component and features a beautiful, tactile design on the top. The user inputs his/her destination using a voice command and the integrated circuit on the glove commutes with the GPS to find the optimal route to this destination piece wise (every 0.1 miles) by finding a direction vector. The user can swing his/her arm to track the right direction. As the user's arm falls in the region of 'correct direction vector' (as indicated by GPS), the user gets a haptic feedback which points them in the right direction. This not only helps the blind in convenient navigation, but also prevents them from getting lost. 

We created this design after collecting feedback from visually impaired people in the DSP program on campus, who highlighted that 'reduction in chances of head injuries' and 'non-obtrusive way of navigation' are the key features they feel this device should have.


User Research:

On campus, all the visually impaired people we encountered either had a white cane or a guide dog.


As part of our user research, we did two main things: user interviews and first-hand experimentation. Fortunately, we were able to connect with the Disabled Students Program at UC Berkeley and were able to meet with a woman named Lucy Greco, who works as a web accessibility evangelist. She is visually impaired herself, but also works a lot with other visually impaired students and employees on campus. She critiqued our original ideas and provided valuable insight to our final form factor. Second, we performed an experiment on ourselves and tried to navigate through a building via haptic feedback (our phone). We found that it was incredibly difficult to discern whether there would be an obstacle to our left when our scanning sensor was at our right, and vice versa. We were also unsure of the location of the obstacle when there was a vibration. These insights helped us determine certain characteristics of the haptic feedback in the software.



Form Factor:

For the physical wearable, we went to a local fabric store and purchased fabric that was stretchy and durable under a laser cutter. We created the designs of both components on Illustrator. 

For the glove, we laser cut the overall shape and abstract cutout designs. We used a sewing machine to sew the ends together and then hand-sewed the thumb section together. The flap with the abstract cutouts would cover the electrical components, so we also purchased velcro and hand-sewed little velcro strips to the ends of the flap. This way, we can easily access the components while maintaining the aesthetics of the glove. 

The purpose of the necklace is to contain the sensor at the chest, a central location of the body, and another vibration module at the nape of the neck, which is another part of the body with high sensitivity, according to our user research. The necklace strap itself is stretchy so the user does not have to deal with connecting two ends of a necklace together. The U-shaped necklace piece fits the ultrasonic sensor well and is a “chunky-necklace” style that is visually appealing. We cut the fabric cutout on the laser cutter and glued it to a piece of paper, so that the shape stays. Then, we sewed the ends of the U-shape to the elastic band and super glued the wires of the ultrasonic sensor to the band. Lastly, we sewed on the vibration module at the back of the necklace by hand. 


Technology Used:

Obstacle Avoidance:

For obstacle avoidance, we used HC-SR04 ultrasonic sensor in the necklace which measures the distance of the pole/obstacle/protruding branch of a tree  (which can cause a potential head injury for blind people) in 2 meters range and gives a haptic feedback on the back of necklace using a vibration motor. This ensures that the blind person changes in path to avoid that obstacle.

Obstacle Avoidance Circuit Schematic
Obstacle Avoidance PCB Layout
Printed PCB

Navigation:

For navigation, we used a GPS module that on a press of a button sends the user's current location to our node server via WiFi. A request is sent to Google Maps Directions API with the current and destination coordinates. This returns an array of steps to get to the destination. Our server and software code calculates the direction vector for next 0.1 miles with respect to north in the form of an angle varying from 0 to 360 degrees. Finally, with swing of the user’s arm, the magnetometer (compass) value is queried from the spark core and if it is within range of the correct direction (+/- 15 degrees), it delivers haptic feedback to the user indicating he/she is pointing towards the correct direction.

  • Software
    • Server
      • Install dependencies -> npm install
      • Run server.js -> node server.js

    • Spark Core
      • Create project in Spark Build IDE
      • Upload all files located in the libraries folder

SparkCore + Node + GoogleMaps
  • Hardware
    • Spark Core
    • Adafruit Ultimate GPS Breakout - 66 channel w/10 Hz updates - Version 3
    • Triple-axis Accelerometer+Magnetometer (Compass) Board - LSM303
    • Button
    • Coin Vibration Motor

SparkCore + GPS + Magnetometer + Button + Voltage Regulator (Moustache)


Dependencies:

  • Adafruit GPS library
  • Adafruit LSM303 library
  • Adafruit Sensor wrapper library
  • Googlemaps node module
Magoo Github Repository

Schematics

Oshpark
Obstacle Avoidance PCB Layout

Code

Github
Magoo Github Repository

Comments

Similar projects you might like

Unlock your door with a knock

Project tutorial by Ashraf Nabil

  • 16,058 views
  • 10 comments
  • 52 respects

DIY Relay Outlet Arduino

Project tutorial by Ben Jones

  • 21,340 views
  • 17 comments
  • 24 respects

Uber Home Automation

Project in progress by Eric Tsai

  • 26,644 views
  • 3 comments
  • 114 respects

Arduino to Excel using V-USB

Project tutorial by Ray Burnette

  • 33,560 views
  • 6 comments
  • 34 respects

Magic Morse on Arduino

Project tutorial by Ray Burnette

  • 19,981 views
  • 7 comments
  • 25 respects

Track and Control Your Car Remotely

Project tutorial by Ashraf Nabil

  • 14,114 views
  • 3 comments
  • 44 respects
Add projectSign up / Login