Vision is the most important part of human physiology as 83% of information human
being gets from the environment is via sight. The 2011 statistics by the World Health
Organization (WHO) estimates that there are 285 billion people in world with visual
impairment, 39 billion of which are blind and 246 with low vision. The traditional and
oldest mobility aids for persons with visual impairments are the walking cane (also
called white cane or stick) and guide dogs. The most important drawbacks of these
aids are necessary skills and training phase, range of motion and very little information
conveyed. With the rapid advances of modern technology, both in hardware and
software front have brought potential to provide intelligent navigation capabilities.
Recently there has been a lot of Electronic Travel Aids (ETA) designed and devised
to help the blind navigate independently and safely. Also high-end technological
solutions have been introduced recently to help blind persons navigate independently.
While such systems are suitable for outdoor navigation, due to the need for line of
sight access to satellites, they still need additional components to improve on the
resolution and proximity detection to prevent collision of the blind persons with other
objects and hence subject his/her life to danger. However in comparison to other
technologies many blind guidance systems use ultrasound because of its immunity to
the environmental noise. Another reason why ultrasonic is popular is that the
technology is relatively inexpensive, and also ultrasound emitters and detectors are
small enough to be carried without the need for complex circuitry.
The project is based on a theoretical model and a system concept to provide a smart
electronic aid for blind people. Apart from the conventional navigation systems, blind
aid systems can be used with depth measuring circuitry which will be helpful to
measure the depth in case of dealing with the stairs and on stick vibration circuitry to
inform the obstacle alert. These different units are discussed to implement the design
of a “smart stick”.
Figure 1 shows the different sensors interfaced to the controller. The functions of the
following sensors are:
1. Ultrasonic sensor is used for obstacle avoidance. The vibrator vibrates when an
obstacle is encountered which helps in alerting the blind person and allows enough
time to change their path.
2. IR sensor is used for pit and staircase detection.
3. Water sensor is used to detect the presence of water and provide an alert in time
for path change so as to avoid slipping.
4. Fire sensor is used for avoiding fire.
5. Light sensor is useful at night. It alerts the people in the surrounding area that a
blind person is walking and to allow space so that the blind person can walk easily.
6. Vibrator and buzzer are used as output devices.
3.1 ATMEGA 16 MICROCONTROLLER
ATmega16 is an 8-bit high performance microcontroller of Atmel’s Mega AVR
family with low power consumption. Atmega16 is based on enhanced RISC (Reduced
Instruction Set Computing, Know more about RISC and CISC Architecture)
architecture with 131 powerful instructions. Most of the instructions execute in one
machine cycle. Atmega16 can work on a maximum frequency of 16MHz.
ATmega16 has 16 KB programmable flash memory, static RAM of 1 KB and
EEPROM of 512 Bytes. The endurance cycle of flash memory and EEPROM is 10,000
and 100,000, respectively.
ATmega16 is a 40 pin microcontroller. There are 32 I/O (input/output) lines which
are divided into four 8-bit ports designated as PORTA, PORTB, PORTC and PORTD.
ATmega16 has various in-built peripherals like USART, ADC, Analog Comparator,
SPI, JTAG etc. Each I/O pin has an alternative task related to in-built peripherals. The
following table shows the pin description of ATmega16.
3.2 ULTRASONIC SENSOR: HC-SR04
Also known as transceivers when they both send and receive, but more generally
called transducers work on a principle similar to radar or sonar which evaluate
attributes of a target by interpreting the echoes from radio or sound waves respectively.
Ultrasonic sensors generate high frequency sound waves and evaluate the echo which
is received back by the sensor. Sensors calculate the time interval between sending the
signal and receiving the echo to determine the distance to an object.
This technology can be used for measuring wind speed and direction (anemometer),
tank or channel level, and speed through air or water. For measuring speed or direction
a device uses multiple detectors and calculates the speed from the relative distances to
particulates in the air or water. To measure tank or channel level, the sensor measures
the distance to the surface of the fluid. Further applications
include: humidifiers, sonar, medical ultrasonography, burglar alarms and non-
Systems typically use a transducer which generates sound waves in the ultrasonic
range, above 18,000 hertz, by turning electrical energy into sound, then upon receiving
the echo turn the sound waves into electrical energy which can be measured and
• Medical Ultrasonic transducers.
• Ultrasonic sensors are used to detect movement of targets and to measure the distance
to targets in many automated factories and process plants.
� Stable performance
� Accurate distance measurement
� Small blind
Application Areas: Ultrasonic Application Technology is the thing which developed
in recent decades. With the ultrasonic advance, and the electronic technology
development, especially as high-power semiconductor device technology matures, the
application of ultrasonic has become increasingly widespread:
� Robotics barrier
� Object distance measurement
� Level detection
� Public security
� parking detection
We know that sound vibrations cannot penetrate through solids. So what happens is,
when a source of sound generates vibrations they travel through air at a speed of 220
meters per second. These vibrations when they meet our ear we describe them as
sound. As said earlier these vibrations cannot go through solid, so when they strike
with a surface like wall, they are reflected back at the same speed to the source, which
is called echo.
Ultrasonic sensor “HC-SR04” provides an output signal proportional to distance
based on the echo. The sensor here generates a sound vibration in ultrasonic range
upon giving a trigger, after that it waits for the sound vibration to return. Now based
on the parameters, sound speed (220m/s) and time taken for the echo to reach the
source, it provides output pulse proportional to distance.
Figure 5 WORKING OF HC-SR04
As shown in figure, at first we need to initiate the sensor for measuring distance, that
is a HIGH logic signal at trigger pin of sensor for more than 10uS, after that a sound
vibration is sent by sensor, after a echo, the sensor provides a signal at the output pin
whose width is proportional to distance between source and obstacle.
This distance is calculate as, distance (in cm) = width of pulse output (in uS) / 58.
Here the width of the signal must be taken in multiple of uS (micro second or 10^-6).
3.3 INFRARED SENSOR
An infrared sensor is an electronic device that emits and/or detects infrared radiation in
order to sense some aspect of its surroundings. Infrared sensors can measure the heat
of an object, as well as detect motion. Many of these types of sensors only measure
infrared radiation, rather than emitting it, and thus are known as passive infrared (PIR)
All objects emit some form of thermal radiation, usually in the infrared spectrum. This
radiation is invisible to our eyes, but can be detected by an infrared sensor that accepts
and interprets it. In a typical infrared sensor like a motion detector, radiation enters the
front and reaches the sensor itself at the center of the device. This part may be
composed of more than one individual sensor, each of them being made from pyro-
electric materials, whether natural or artificial. These are materials that generate an
electrical voltage when heated or cooled.
IR sensor basically consist an IR LED and a Photodiode, this pair is generally called
IR pair or Photo coupler. IR sensor work on the principal in which IR LED emits IR
radiation and Photodiode sense that IR radiation. Photodiode resistance changes
according to the amount of IR radiation falling on it, hence the voltage drop across it
also changes and by using the voltage comparator (like LM358) we can sense the
voltage change and generate the output accordingly.
3.3.2 IR SENSOR MODULE
IR pair (IR LED and Photodiode)
Resistor 100, 10k, 330 ohm
Variable resistor – 10k
The LM358 consists of two independent, high gain, internally frequency compensated
operational amplifiers which were designed specifically to operate from a single power
supply over a wide range of voltages. Operation from split power supplies is also
possible and the low power supply current drain is independent of the magnitude of
the power supply voltage.
Figure 6 PIN DIAGRAM OF LM358
Available in 8-Bump micro SMD chip sized package, (See AN-1112)
Internally frequency compensated for unity gain
Large dc voltage gain: 100 dB
Wide bandwidth (unity gain): 1 MHz (temperature compensated)
Wide power supply range:
o single supply: 3V to 32V
o dual supplies: ±1.5V to ±16V
Very low supply current drain (500 μA)—essentially independent of supply
Low input offset voltage: 2 mV
Input common-mode voltage range includes ground
Differential input voltage range equal to the power supply voltage
Large output voltage swing
3.3.3 WORKING OF IR SENSOR MODULE
Figure 7 IR SENSOR CIRCUIT DIAGRAM
Photo diode is connected in reverse bias, inverting end of LM358 (PIN 2) is connected
to the variable resistor, to adjust the sensitivity of the sensor. And non-inverting end
(PIN 3) is connected to the junction of photodiode and a resistor. When we turn ON
the circuit there is no IR radiation towards photodiode and the Output of the
comparator is LOW. When we take some object (not black) in front of IR pair, then
IR emitted by IR LED is reflected by the object and absorbed by the photodiode. Now
when reflected IR Falls on Photodiode, the voltage across photodiode drops, and the
voltage across series resistor R2 increases. When the voltage at Resistor R2 (which is
connected to the non-inverting end of comparator) gets higher than the voltage at
inverting end, then the output becomes HIGH and LED turns ON. Voltage at inverting
end, which is also called Threshold Voltage, can be set by rotating the variable
resistor’s knob. Higher the voltage at inverting end (-), less sensitive the sensor and
Lower the voltage at inverting end (-), more sensitive the sensor.
• A heat sensor works by using pyro-electrical materials, which emit electrical
impulses when heated or cooled.
• IR sensors can be used to detect proximity, receive communication signals and even
detect movement of a person.
• IR Sensor can also be used to build speedometer.
3.4 WATER SENSOR
A water sensor is an electronic device that is designed to detect the presence of water
and provide an alert in time to allow the prevention of water damage. A common
design is a small cable or device that lies flat on a floor and relies on the electrical
conductivity of water to decrease the resistance across two contacts. The device then
sounds an audible alarm together with providing onward signaling in the presence of
enough water to bridge the contacts. These are useful in a normally occupied area near
any infrastructure that has the potential to leak water, such as HVAC, water pipes,
drain pipes, vending machines, dehumidifiers, or water tanks.
Figure 8 CIRCUIT DAIGRAM OF WATER SENSOR
3.5 FIRE SENSOR
A thermistor is a temperature-sensing element composed of sintered semiconductor
material which exhibits a large change in resistance proportional to a small change in
temperature. Thermistors usually have negative temperature coefficients which means
the resistance of the thermistor decreases as the temperature increases.
Thermistors are of two opposite fundamental types:
With NTC, resistance Decreases with temperature to protect against inrush
overcurrent conditions. Installed series in a circuit.
With PTC, resistance Increases with temperature to protect against overvoltage
conditions. Installed parallel in a circuit.
Thermistors differ from resistance temperature detectors (RTDs) in that the material
used in a thermistor is generally a ceramic or polymer, while RTDs use pure metals.
The temperature response is also different; RTDs are useful over larger temperature
ranges, while thermistors typically achieve a greater precision within a limited
temperature range, typically −90°C to 130°C.
Figure 9 THERMISTOR
3.5.2 BASIC OPERATION
Assuming, as a first-order approximation, that the relationship between resistance and
temperature is linear, then:
change in resistance , change in temperature
, first-order temperature coefficient of resistance
Thermistors can be classified into two types, depending on the classification of . If
is positive, the resistance increases with increasing temperature, and the device is
called a positive temperature coefficient (PTC) thermistor, or posistor. If is
negative, the resistance decreases with increasing temperature, and the device is called
a negative temperature coefficient (NTC) thermistor. Resistors that are not thermistors
are designed to have a as close to 0 as possible, so that their resistance remains nearly
constant over a wide temperature range.
Instead of the temperature coefficient k, sometimes the temperature coefficient of
resistance (alpha sub T) is used. It is defined as
Figure 10 COMPARISON OF NTC WITH PTC THERMISTORS
3.5.3 FIRE DETECTION USING THERMISTOR
Figure 11 CIRCUIT DIAGRAM OF FIRE SENSOR
3.6 LIGHT SENSOR
Figure 12 CIRCUIT DIAGRAM OF LIGHT SENSOR
The LM358 chip in this circuit is used as a comparator to make decisions.
Photoresistor changes its resistance drastically based on the ambient lighting in an
environment. Exposed to darkness, a photoresistor has a tremendous amount of
resistance. Depending on the specific photoresistor in use, its resistance can be
anywhere from over 100KΩ to well over 2MΩ. When exposed to bright light, a
photoresistor's resistance drops drastically. Again, based on the photoresistor, it may
be to 5KΩ or below or to about 30KΩ. For any photoresistor, we can pretty much be
sure that the resistance will fall to about 30KΩ when exposed to bright light. The use
of a voltage divider of a photoresistor and a fixed resistor, in which the voltage divided
up between the 2 components will change due to ambient lighting. In darkness, the
photoresistor will have a very high resistance. By ohm's law, more voltage is allocated
to components with a higher resistance value (V= IR). Therefore, when this voltage
divider is connected to a comparator, the voltage divider will produce a very high
voltage. When the photoresistor is exposed to bright light, will have a low resistance.
Therefore, less voltage will fall across it. So when it is hooked up to a comparator, the
voltage divider circuit will produce a voltage less than the reference voltage.
The Piezo buzzer produces sound based on reverse of the piezoelectric effect. The
generation of pressure variation or strain by the application of electric potential across
a piezoelectric material is the underlying principle. These buzzers can be used to alert
a user of an event corresponding to a switching action, counter signal or sensor input.
They are also used in alarm circuits.
The buzzer produces a same noisy sound irrespective of the voltage variation applied
to it. It consists of piezo crystals between two conductors. When a potential is applied
across these crystals they push on one conductor and pull on the other. This, push and
pull action, results in a sound wave. Most buzzers produce sound in the range 2 to 4
Figure 13 BUZZER
A vibrating motor is essentially a motor that is improperly balanced. In other words,
there is an off-centered weight attached to the motor's rotational shaft that causes the
motor to wobble. The amount of wobble can be changed by the amount of weight that
you attach, the weight's distance from the shaft, and the speed at which the motor spins.
This type of motor can be used affixed to all kinds of objects, which will cause them
to vibrate and move freely about. This is a quick and dirty way to get a simple Bot to
move about, but not exactly the most elegant.
Vibrating motors can be found inside cell phones, pagers, gaming controllers, and
In absence of those, you can easily build your own vibrating motor by attaching any
off centered weight to any motor shaft. They can also be created by breaking in half
balanced components already attached to motor shafts.
Figure 14 VIBRATOR
3.9 SOFTWARE USED
3.9.1AVR STUDIO 4
AVR Studio was created by Atmel in order to help developers to create applications
for AVR microcontrollers using C/C++ programming languages. This piece of
software comes with a large number of tutorials, which allow the users to get familiar
with the application. The program stands as a complete pack for programmers that use
C++ and other programming languages. It provides the users with access to the tools
for writing, building and debugging their codes.
The menu of this application is easy-to-use and offers access to powerful tools for both
beginners and experienced developers, making it easy for the users to find their way
through C/C++ programming. Some of the key features are: “cycle correct” simulator
with advanced debugging functionality, rich SDK that enables tight integration of
customer plug-ins and compatibility with many Microsoft Visual Studio plug-ins. Also
the tool provides a "split window" button that allows the users to work on more than
one project at a time.
All in all AVR Studio is a complete tool for programmers which develop, test and
debug C/C++ applications; you should give this tool a try as it comes in handy for
programming AVR microcontrollers.
STEP 2: CLICK ON NEW PROJECT
STEP 3: CLICK ON AVR GCC
WRITE THE PROJECT NAME
SELECT THE PROJECT LOCATION AND CLICK ON NEXT
STEP 4: CLICK ON THE AVR SIMULATOR AND SELECT YOUR CONTROLLER AND CLICK ON
THE FINISH BUTTON
STEP 5: WRITE THE CODE IN THE MAIN BODY AREA AND SAVE THE FILE.
STEP 6: GO TO BUILD > COMPILE
3.9.3 AVR LOADER v2.0
The software has been developed by Robosapiens Technologies Private Limited. It is
used for loading the code into the controller. It can be used to load the code in many
Atmega 128, Atmega 16, Atmega 8, Atmega 32, Atmega 64, Atmega 88, Atmega
Tiny 13, Atmega 13, Atmega 2313 etc.The hex file is loaded from the local directory
and loaded into te controller by clicking onto the write pushbutton.
3.9.3 PROTEUS DESIGN SUITE
The Proteus Design Suite is an Electronic Design Automation (EDA) tool including
schematic capture, simulation and PCB Layout modules. It is developed in Yorkshire,
England by Lab center Electronics Ltd with offices in North America and several
overseas sales channels. The software runs on the Windows operating system and is
available in English, French, Spanish and Chinese languages.
The micro-controller simulation in Proteus works by applying either a hex file or a
debug file to the microcontroller part on the schematic. It is then co-simulated along
with any analog and digital electronics connected to it. This enables it's used in a broad
spectrum of project prototyping in areas such as motor control, temperature control
and user interface design. It also finds use in the general hobbyist community and,
since no hardware is required, is convenient to use as a training or teaching tool.
Support is available for co-simulation of:
Microchip Technologies PIC10, PIC12, PIC16, PIC18, PIC24, dsPIC33
Atmel AVR (and Arduino), 8051 and ARM Cortex-M3 Microcontrollers
NXP 8051, ARM7, ARM Cortex-M0 and ARM Cortex-M3 Microcontrollers.
Texas Instruments MSP430, PICCOLO DSP and ARM Cortex-M3
Parallax Basic Stamp, Freescale HC11, 8086 Microcontrollers.
The Blind Walking Stick has been finally made into a prototype which can be used to
guide the blind. It majorly uses an ultra-sonic sensor to detect the front obstacles, an
infra-red sensor to detect the obstacles underneath, fire sensor to detect any kind of
fire hazard and water sensors that sense any kind water allowing the safe walk of the
blind people. It has buzzers incorporated into itself that gives different sounds from
different sensors making navigation very easy.
It can be further enhanced by using VLSI technology to design the PCB unit. This
makes the system further more compact. Also, use of active RFID tags will transmit
the location information automatically to the PCB unit, when the intelligent stick is in
its range. The RFID sensor doesn’t have to read it explicitly.
A variety of future scopes are available that can be used of with the stick such as the
usage of a GSM module helping to find the tick with the help of mobile phones, usage
of GPS system incorporating the entire assembly into belt of people. The global
position of' the user is obtained using the global positioning system (GPS), and their
current position and guidance to their destination will be given to the user by voice. It
can also contain special arrangement to connect the walking stick to the aadhar card
of blinds, helping the government serve the physically disabled even better.
Smart Sensors are not just a fad, they are the wave of the future. As more people realize
the value of these inventions the field will grow without bounds. This can be
demonstrated by the design specified. It’s practical, cost efficient and extremely
useful. If all of these characteristics weren’t enough to warrant investigation into this
field of study, these inventions will also make the inventor very wealthy. This project
is application based as it has an application for blind people. It can be further improved
to have more decision taking capabilities by employing varied types of sensors and
thus could be used for different applications. It aims to solve the problems faced by
the blind people in their daily life. The system also takes measures to ensure their
//header to enable data flow control over pins
#define F_CPU 1000000
//telling controller crystal frequency attached
//header to enable delay function in program
#define E 5
//giving name “enable” to 5th pin of PORTD, since it Is connected to LCD enable pin
#define RS 6
//giving name “registerselection” to 6th pin of PORTD, since is connected to LCD RS
void send_a_command(unsigned char command);
void send_a_character(unsigned char character);
void send_a_string(char *string_of_characters);
static volatile int pulse = 0;//interger to access all though the program
static volatile int i = 0;// interger to access all though the program
DDRB = 0xFF;
//putting portB output pins
DDRD = 00b11111011;
_delay_ms(50);//giving delay of 50ms
DDRA = 00FF;//Taking portA as output.
MCUCR|=(1<<ISC00);//setting interrupt triggering logic change
int16_t COUNTA = 0;//storing digital output
char SHOWA ;//displaying digital output as temperature in 16*2 lcd
send_a_command(0x01); //Clear Screen 0x01 = 00000001
send_a_command(0x38);//telling lcd we are using 8bit command /data mode
send_a_command(0b00001111);//LCD SCREEN ON and courser blinking
sei();// enabling global interrupts
_delay_us(15);///triggering the sensor for 15usec
COUNTA = pulse/58;
send_a_string ("DISTANCE=");// displaying name
itoa(COUNTA,SHOWA,10); //command for putting variable number in LCD(variable
number, in which character to replace, which base is variable(ten here as we are
counting number in base10))
send_a_string(SHOWA); //telling the display to show character(replaced by variable
number) after positioning the courser on LCD
send_a_string ("cm ");
send_a_command(0x80 + 0); //retuning to first line first shell
ISR(INT0_vect)//interrupt service routine when there is a change in logic level
if (i==1)//when logic from HIGH to LOW
pulse=TCNT1;//count memory is updated to integer
TCNT1=0;//resetting the counter memory
if (i==0)//when logic change from LOW to HIGH
void send_a_command(unsigned char command)
PORTA = command;
PORTD &= ~ (1<<RS); //putting 0 in RS to tell lcd we are sending command
PORTD |= 1<<E; //telling lcd to receive command /data at the port
PORTD &= ~1<<E;//telling lcd we completed sending data
void send_a_character(unsigned char character)
PORTD |= 1<<RS;//telling LCD we are sending data not commands
PORTD |= 1<<E;//telling LCD to start receiving command/data
PORTD &= ~1<<E;//telling lcd we completed sending data/command
PORTA = 0;
void send_a_string(char *string_of_characters)
while(*string_of_characters > 0)
11. Borenstein J. and Ulrich I , “The Guide Cane - Applying Mobile Robot Technologies to
Assist the Visually Impaired” IEEE Transactions on Systems, Man, and Cybernetics, Part
A: Systems and Humans, Vol. 31, No. 2, pp. 131-136, 2001