The blind people need assistance for moving around. They use a stick to detect any obstacle in their path and move around accordingly. They usually try to estimate the proximity with an obstacle by hitting it and try to learn its distance from them based on the sound of the hit. This project is a walking aid for the blinds which can be worn on the wrist like a band. The device designed in this project uses an ultrasonic sensor to determine the distance from an obstacle and connects with the Android phone through Bluetooth to generate a voice alert.
Arduino Based Voice Alert System for Blinds Setup Demo
The project utilizes "Speak For Me" app on the Android phone to generate voice messages. The messages are transferred from the Arduino device on Bluetooth in the form of text strings. The project is built upon Arduino UNO and has mainly the Bluetooth module and Ultrasonic sensor interfaced to it. The Arduino sketch is written on Arduino IDE and burnt to the target board using AVR Dude.
Arduino Based Voice Alert System for Blinds Setup Arrangement
Components Required -1. Arduino UNO
2. HC-05
3. 1K ohm resistor
4. 5 mm LED
5. Ultrasound sensor(HC-SR04)
6. 7805 for external power supply
7. Push to ON switch
Block Diagram -
Arduino based Voice Alert System for Blinds Block Diagram
Circuit Connections -The circuit has HC-SR04 Ultrasonic Sensor, HC-05 Bluetooth module and a tactile switch interfaced to the Arduino UNO in the following manner -
Power Supply - The circuit is powered by a 9V battery. The supply from the battery is regulated using 7805 voltage regulator IC. The pin 1 of 7805 IC is connected to the anode of the battery and pin 2 of it is connected to the ground. The voltage output to power the device is drawn from pin 3 of the voltage regulator IC.
HC-SR04 Ultrasonic Sensor - The ultrasonic sensor is connected to pins 10 and 11 of the Arduino board. The ultrasonic sensor has four pins - Ground (Pin 1), Echo (Pin 2), Trigger (Pin 3) and Trigger. The VCC and ground pins are connected to common VCC and Ground respectively. The Echo pin is connected to pin 11 of the Arduino board while Trigger pin is connected to pin 10 of Arduino board.
HC-05 Bluetooth Module - The Bluetooth module has six pins - Enable, VCC, Ground, Transmit Data (TxD), Receive Data (RxD) and State. The Enable and State pin are unused and so not connected in the circuit. The VCC and Ground pins are connected to the common VCC and Ground. The TxD and RxD pins of the module are connected to the pins 2 and 3 of the Arduino.
Tactile Switch - The tactile switch is used to prompt the Arduino device to send the text string containing distance information to the Android App on Bluetooth. The switch is connected at A0 pin of the Arduino with another end of the switch connected to Ground. The pin by default receives VCC through a pull-up resistor.
Android phone - Any Android phone can be used. The user needs to install and run "Speak For Me" app on the phone. The phone must be paired with the Arduino device using Bluetooth.
How the circuit works -The ultrasonic sensor works on the principle of echo of sound waves. When a HIGH pulse of 10usec is passed to the trigger pin of the sensor, it transmits eight 40KHz waves of HIGH Sonic Pulse shots back to back. A High pulse signal is out from the echo pin as the ultrasonic wave is transmitted. This wave when collides with an obstacle, it is reflected back and detected by the sensor. On detecting the wave again, the High pulse signal from the echo pin of the sensor is terminated. The signal received from the echo pin is analog in nature. The distance from the obstacle can be measured by measuring the high time of the echo pin. This is the time between the transmission and reflection back of the sonic wave. The distance is calculated by the following formulae -
Test distance = (high level time × velocity of sound (340M/S)) / 2
The time multiplied by velocity is divided by 2 as the time taken is for the sonic wave to reach obstacle and return back. Therefore the distance measurement in cm can be given by the formulae -
Test distance = (high level time × velocity of sound (340M/S)) / 2
= (high level time(microsecond) × velocity of sound (340M/S)) / 2
= high-level time x 340/2000000 m
= high-level time x 34000/2000000 cm
= high-level time x 34/2000 cm
The ultrasonic sensor outputs the high pulse from pin 2 which is detected at the pin 11 of the Arduino Board. The Arduino sketch measures the pulse duration and digitizes it to a distance value using the formulae stated above.
The ultrasonic sensor is activated and prompt to shoot a pulse on pressing the tactile switch. The pulse duration from ultrasonic sensor is read and digitized to a distance value. The distance is formatted in a string and the text is passed to the Bluetooth module. The HC-05 module transfers the string to the Android app which reads the text out loud from the inbuilt speakers of the phone.
Check out the Arduino program to learn how analog data from the sensor is read and digitized, formatted in a text string, passed to the LCD display and sent to the mobile app through Bluetooth module.
Programming Guide -First of all the Software Serial library is imported to launch a virtual serial port for data communication with the Bluetooth module. An object of the virtual serial type in instantiated and pins connecting ultrasonic sensor and tactile switch are assigned to variables. The variables to hold the pulse duration and distance value are declared and string objects holding pre-determined text fragments are defined.
A setup() function is called in which the pin connecting to trigger pin of the ultrasonic sensor is set digital output while the pin connecting to the echo pin of the ultrasonic sensor is set to the digital input. The baud rate for serial communication with a computer as well as Bluetooth module is set to 9600 bits per second. For testing purpose, the messages are also sent to a computer through serial communication verifying each stage of the program code. The statements in the program code for serial communication with the computer can be commented if needed. Some initial text strings are sent to the Bluetooth module that is eventually read aloud by the "Speak For Me" app on the Android phone.
In the loop() function, the distance from the ultrasonic sensor is read by calling FindDistance() function which is defined later in the code. If the user presses the tactile switch, the distance reading is sent to the Bluetooth module in a formatted string.
In the FindDistance() function, first a LOW pulse for 2 microseconds is passed to the trigger pin followed by a HIGH pulse of 10 microseconds and then the trigger pin is set to the LOW. The duration of the pulse from echo pin is read using pulseIn() function. The duration is converted to distance value using the equation stated above in the post and the value of the distance is returned by the function.
You can find the rar file below to download the "Speak for Me" app for your Android phone.
.
Comments
Please log in or sign up to comment.