1 / 40

Self Navigation Device for the Blind

Self Navigation Device for the Blind. ECE445 Senior Design Presentation Pradyut Paul and Christopher Cheung. Overview. •We’d like to create a better, convenient way for visually impaired people to travel around

lee
Download Presentation

Self Navigation Device for the Blind

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Self Navigation Device for the Blind ECE445 Senior Design Presentation Pradyut Paul and Christopher Cheung

  2. Overview •We’d like to create a better, convenient way for visually impaired people to travel around •Our project will effectively guide the blind user without the need of a walking stick. –This belt will tell the user where objects are located. For example: if a person is walking and an object is detected to the left, using low powered vibrators, a small pulse will be sent to the left part of his/her torso indicating that the user cannot walk in that direction.

  3. Overall Block Diagram Arduino Due Belt Sensors Headphones Vibrational Motors Audio Amplifier

  4. Detection Algorithm Inputs Outputs Processor There are no objects around user Input from Sensor Data Detection Algorithm Object detected is steppable Object detected is NOT steppable

  5. Components • Arduino Due Processor • Audio Amplifier Circuit • SD Card Shield • LV-MAXSONAR UltraSonic Sensor • Disc Coin Vibrational Motors • Power Circuit

  6. Arduino Due Processor • Why? • In-built DAC • Requires 6 Analog inputs • Outputs 3.3V at digital pins • no need for 3V regulator • In-built PWM for pulse detection

  7. Audio Circuit Function Amplifies the signal that comes from DAC1 pin on Arduino and outputs sound to user’s headphones

  8. Audio Amplifier

  9. Audio Amplifier Simulation

  10. Audio Circuit Modifications Changes from Original Design: • Planned on using 5V from Arduino pin but volume was too soft • Changed our gain from 100 to 20 because the sound produced was loud enough for the user to hear • Ended up building circuit on perf board because PCB did not make it in time

  11. SD Card Function Reads pre-recorded file on the SD card and sends signal to the arduino which converts it to an analog signal

  12. SD Card Modifications • Decided to use the SD Card Reader instead of Arduino Ethernet Shield • less cost • less space

  13. SD File Reading • Pre-recorded file requirement: • 16-bit resolution • Arduino DAC has resolution of 12, chops of last 4 bits • 44100Hz Sample Frequency • Stereo Output • Internal DAC has 2 channels which are always active

  14. Output to DAC • Load into an array until the file is over • Arduino library “Audio” uses Audio.write to output array into DAC • Need to close file • If you do not -> plays only once

  15. SD Card Issues Initial detection of a steppable object produced a clear and loud reading of the pre-recorded sound on the sd card but after first playback the sound produced had pauses during playback • Unable to resolve buffering problem even after reading through the arduino’s audio prepare and read header files • Issue remained after removing unnecessary testing code

  16. Step Detection • Two Parts: • Reading data from sensors • Filtering • Analyze data for height detection

  17. Chaining Sensors • Reading data from 1 sensor = OK • Reading data from multiple sensors simultaneously = BAD • Too much noise and cross-talk • Solution: Chain the sensors

  18. Chaining Sensor Source: MaxBotix

  19. Chaining Sensors

  20. Chaining Sensors • Reading occurs every 20ms for EACH sensor • Total delay time = 20ms x (# of Sensors) • Requires an initial ‘kickstart’ of 200ms • Signal sent from digital pin of Arduino

  21. Reading Data • Sensor data comes into the analog port, which is converted to a decimal number from 0 to 1023 (10 bit resolution) • Reading occurs every 20ms per sensor, so we do not get a full reading until 100ms • Disadvantages: same topology cannot be used for faster moving devices like a car

  22. Filtering Data • Sensors come with a in-built filter, but mainly filters any noise within the frequency range of the sensor • Our filter algorithm: • Collect 300 readings from each sensor • Bubble sort the data • Average only the middle 100 data points

  23. Filtering Data • Advantages: • Filters out any outliers in the data array, while producing 1 value which is accurate to the degree of 2 units of the serial monitor (0->1023) • Disadvantages: • Requires too much time to filter, total time to analyze data is roughly 1.5 seconds

  24. Filtering Data • After looking into delay problem, we found the source of the error to be the number of reads and the constant serial printing of data • After fixing problem, delay goes to ~.5 seconds

  25. Step Detection • Original algorithm: • Take initial point and calibrate it to the users height. Initial reading: X • Once an object is read, second reading: Y • Pre-determined angle: 30 degrees • Object height =

  26. Step Detection

  27. Step Detection • Problems: • Requires that no objects are present in the vicinity: very unideal • Initial setup calibration time of 1 second: must remain very steady as soon as belt is put on: unideal

  28. Step Detection • Second approach: • Manually calibrate it for a certain height • How can we incorporate it into other users? • Manually calibrate it for multiple heights by the increment of 1 inch • Build a UI that incorporates the user to input the height of the belt

  29. Step Detection • Problems: • Much more work for the user • Requires the user to know the height of the torso or where the belt will be worn

  30. Sensor / Step Detection Requirements

  31. Disk Coin Vibrational Motors • Small Samsung Disk Coin motors • Ideal for project since they use very less current and require only 1.3V to run • Instead of increasing the voltage to the motors, we varied the intensity via the PWM

  32. Disk Coin Vibrational Motors • Intensity Algorithm There are no objects around user Motors do not turn on PWM output of 255 if object is within 1 step There are objects around user Motors turn on PWM output of 100 if object is between 2 steps and 1 step

  33. Power Circuit • Each sensor requires 3.3V and 2mA to run • Along with that each BW pin needs to be pulled ‘high’ • Running each sensor from Arduino output of 3.3V = BAD • Not enough current drawn to each sensor • Not enough to pull up BW pins

  34. Power Circuit • Solution = Voltage regulation of 9V battery!

  35. Power Circuit

  36. Requirements for the Power Circuit • Voltage to each sensor must not exceed 3.3V and must not be less than 3.1V, plus or minus .1V • Verified by measuring voltages to each sensor via oscilloscope: average voltage 3.24V

  37. Differences in Initial Proposal and Final Product

  38. Total Cost of Our Project

  39. Further Advances in Our Project • Build the belt to be more sturdy without hanging wires • Incorporate a UI that will let the user input their respective height • Fixing the audio player so it is clear every time • Add more sensors and vibrators for a higher resolution reading • Optimize algorithm to minimize delay

  40. THANK YOU! • We appreciate your time and would like to open up to any questions and/or comments

More Related