Sunday, 20 October 2013

Multi purpose stick for Blind


                                                    The project is mainly designed with the purpose to solve a few of problems faced  by blind people by using the various concepts of wireless communication, embedded system and image processing.


                                                             The Main Components of Project :
  • Microcontroller
  • Stick
  • GSM and GPS modules(SIM 908).
  • Text to speech converter module.
  • Power Supply
                                      This project is developed based on EMBEDDED SYSTEMS, GPS and GSM  technology. Now the main use of this stick will be that , if , a blind person feels that he is at some unsafe place then there’s a provision in the stick in the form of a button , which when pressed, sends the location of the concerned person through a SMS to the police station as well as to one of his family members. Also there’s a text to speech converter which would help the blind person to read the books easily and finally there are the sensors used in the stick which will help the person to walk within the house by avoiding the obstacles.
                                                    BLOCK DIAGRAM :

                      SRF04 - ULTRA-SONIC RANGER  :
                                          The SRF04 require a short trigger pulse from controller and providing an echo pulse. Arduino controller only has to time the length of this pulse to find the range. The connections to the SRF04 are shown below:

                                                                      WORKING :
                                         We need to supply a short 10uS pulse to the trigger input to start the ranging. The SRF04 will send out an 8 cycle burst of ultrasound at 40khz and raise its echo line high. It then listens for an echo, and as soon as it detects one it lowers the echo line again. The echo line is therefore a pulse whose width is proportional to the distance to the object. By timing the pulse it is possible to calculate the range in inches/centimeters or anything else. If nothing is detected then the SRF04 will lower its echo line anyway after about 36Ms.

                                       The circuit is designed to be low cost. It uses a PIC12C508 to perform the control functions and standard 40khz piezo transducers. The drive to the transmitting transducer could be simplest driven directly from the PIC. The 5v drive can give a useful range for large objects, but can be problematic detecting smaller objects. The transducer can handle 20v of drive, so we decided to get up close to this level. A MAX232 IC, usually used for RS232 communication makes and ideal driver, providing about 16v of drive.
                                 The receiver is a classic two stage op-amp circuit. The input capacitor C8 blocks some residual DC which always seems to be present. Each gain stage is set to 24 for a total gain of 576-ish. This is close the 25 maximum gain available using the LM1458. The gain bandwidth product for the LM1458 is 1Mhz. The maximum gain at 40khz is 1000000/40000 = 25. The output of the amplifier is fed into an LM311 comparator. A small amount of positive feedback provides some hysteresis to give a clean stable output.
                                    The problem of getting operation down to 1-2cm is that the receiver will pick up direct coupling from the transmitter, which is right next to it. To make matters worse the piezo transducer is a mechanical object that keeps resonating some time after the drive has been removed. Up to 1mS depending on when you decide it has stopped. It is much harder to tell the difference between this direct coupled ringing and a returning echo, which is why many designs, including the Polaroid module, simply blank out this period. Looking at the returning echo on an oscilloscope shows that it is much larger in magnitude at close quarters than the cross-coupled signal. Therefore adjust the detection threshold during this time so that only the echo is detectable. The 100n capacitor C10 is charged to about –6v during the burst. This discharges quite quickly through the 10k resistor R6 to restore sensitivity for more distant echo’s.
                                 A convenient negative voltage for the op-amp and comparator is generated by the MAX232. Unfortunately, this also generates quite a bit of high frequency noise.Therefore shut it down whilst listening for the echo. The 10uF capacitor C9 holds the negative rail just long enough to do this.


      GPS is radio-based navigation system stands for global positioning system  was developed in 1973
      GPS provides  latitude and longitude information, and some may also calculate altitude
      The Global Positioning System (GPS) is a space-based satellite navigation system that provides location and time information in all weather, anywhere on or near the Earth, where there is an unobstructed line of sight to four or more GPS satellites. It is maintained by the United States government and is freely accessible to anyone with a GPS receiver.
       Latitude is a geographic coordinate that specifies the north-south position of a point on the Earth's surface. 
      Longitude is a geographic coordinate that specifies the east-west position of a point on the Earth's surface .
       Altitude is a distance measurement, usually in the vertical or "up" direction, between a reference datum and a point or object.
      GPS Works anywhere in the world, 24 hours a day, in all weather conditions and provides:
        Location or positional fix
        Direction of travel
        Accurate time
In our project we used gtpa010 gps module, which is small in size and contains on chip antenna.


Principle used :
Optical Character Recognition
Input for image to the OCR system: pairs of word images and their textual strings .

Also referred to as Optical Character Reader .
·         “…a system that provides a full alphanumeric recognition of printed or handwritten characters at electronic speed by simply scanning the form.”(UNESCAP, Pop-IT project, 1997-2001).
·         Forms can be scanned through a scanner and then the recognition engine of the OCR system interpret the images and turn images of handwritten or printed characters into ASCII data (machine-readable characters).
·         The technology provides a complete form processing and documents capture solution.
·         Allows an open, scaleable and workflow.
·         Includes forms definition, scanning, image
·         pre-processing, and recognition capabilities.
 How the Input image proceeded for the recognition process: a word image  ?
·         The modelling of the recognition of character images is accomplished by generating sequences of  segments character from input image
·         First we use a ‘line segmentation’ that segments the lines from whole image.for that we have used the matlab function :
[fl re]=lines(re);
         Where function [fl re]=lines(im_texto)
        % Divide text in lines
        % im_texto->input image; fl->first line; re->remain line
·         Now from this segmented line we need to find out one by one character. That is done by concept of “Morphology”. Which is shown below :
imagen = bwareaopen(imagen,30);
 BWAREAOPEN Morphologically open binary image (remove small objects).
 BW2 = BWAREAOPEN(BW,P) removes from a binary image all connected
components (objects) that have fewer than P pixels, producing another binary image BW2.  The default connectivity is 8 for two dimensions,
26 for three dimensions, and CONNDEF(NDIMS(BW),'maximal') for higher
dimensions.where imagen is segmented character image that has   pixels greater than 30 threshold value. Means from line we have detected character that follws the condition of          not less than 30. 
·         Now we have Extract out the  images of character ‘A’, ‘B’,....,’0’,’1’...  separately.
·         Now time has come to compare the segmented characters images with preloaded character images in template. We have preloaded the template that contains A to Z and 0 to 9. So total 36
characters. As shown below :


Now these characters are used as a reference and will be correlated with extracted characters from an image and it will get recognized.
                                       SIM 300 OVERVIEW

·         Uses the extremely popular SIM300 GSM module
·         Provides the industry standard serial RS232 interface for easy connection to computers and other devices
·         Provides serial TTL interface for easy and direct interface to microcontrollers
·         Optionally available USB interface for easy interface to laptops, computers, etc.
·         Power, RING and Network LEDs for easy debugging
·         Onboard buzzer for general audio indication
·         Onboard 3V Lithium Battery holder with appropriate circuitry for providing backup for the modules’ internal RTC
·         Can be used for GSM based Voice communications, Data/Fax, SMS,GPRS and TCP/IP stack
·         Can be controlled through standard AT commands
·         Module’s operation mode can be controlled through the PWR Switch connected to the PWR pin (refer the SIM300 datasheet for more information)
·         Comes with an onboard wire antenna for better reception. Board provides an option for adding an external antenna through an SMA connector
·         The SIM300 allows an adjustable serial baudrate from 1200 to 115200 bps (9600 default)
·         Modem a low power consumption of 0.25 A during normal operations and around 1 A during transmission
·         Operating Voltage: 7 – 15V AC or DC (board has onboard rectifier)

                                         Here with use of GSM we send the fetched location from GPS to family member or Police Such blind person get some help when he lost at unknown place.

Arduino Board Sync Error Solved


                                                                 I was happy with my arduino ng older (ATmega8).  I was able to load programs and able to successfully run them. But suddenly I got the error while trying to load program. My board's red LED was not blinking while I turn on the Power Supply or press the reset pin. That error was 

“ avrdude: stk500_getsync(): not in sync: resp=0x00 ”

                                                                 So as an engineer I checked all the Power supply level of IC, and rest of the components (Capacitors, Inductor and Resistors) with my DMM. But I didn’t found anything wrong. It was suggesting that no component is damaged.  As I was not having frequency meter so  I could not check the Crystal Frequency.

                                                       I thought that might be reason of crystal oscillator damage. As Controller has to communicate with pc in synchronized manner to that frequency and as in error that is mentioned that “not in sync”, so there is the probability of crystal damage. So as a solution I changed the Oscillator with new one.

And checked after connecting to my PC to check whether it is working or not?

And I got same error again. !!!!

                                                                After surfing net and some sites I came to know that was because of bootloader was crashed.

                                                            Now I have to reinstall the bootloader to ATmega8 to solve the issue. To do this I need to buy ISP programmer (AVR ISP) and software of nearly 500 MB (Which is freeware but requires fast net to download which I don’t have that time) to burn the bootloader on IC. So I decided nothing to buy and nothing to download of that much size.

                                                               So I got the solution to burn the bootloader to IC with little bit of soldering and by using the same Arduino Board. What I did is followed the idea of parallel port programmer.

                                                               Instructions for building a parallel port programmer for the Arduino board (or any other Atmega8 chip). Allows you to program the board on Windows without any additional equipment. (Please note, however, that this doesn't allow for communication between the computer and programs running on the board. You'll need a serial cable for that which I was having already.)

Equipment :
Soldering iron

(2x) 470 ohm resistor (yellow-purple-brown)

(1x) 220 ohm resistor (red-red-brown)

(1x) parallel port cable or parallel-to-serial adapter

(2x) three wire cables with female connectors on one end, unattached wires on the other

Instructions :


Remove any existing wires from the parallel connector.

Solder 470 ohm resistors to pins 1 and 2 of the parallel connector.

Solder a 220 ohm resistor to pin 11 of the connector. 

Solder, in order, the three wires of one of the cables to the resistor on pin 11 (which goes to pin 18 on the Atmega8), to the resistor on pin 1 (which goes to pin 19 on the Atmega8), and directly to pin 16 (which goes to the reset, pin 1).

Connect the ends of the two cables so that, when viewed from the connector end, the unused wire is to the upper left and the wire to pin 11 is to the upper right (this is considered pin 1 of the connector and should be matched with the pin 1 indicated on the Arduino board). 

                                                                 Hot glue the wires inside the case of the parallel-to-serial adapater, making sure that any uninsulated wires are kept apart. Or, if not using an adapter, wrap the exposed wires with electrical tape to keep them from touching.


                                                                         You'll need to download giveio from MIT's Microcomputer Project Laboratory (thanks Jim!) and run the enclosed ginstall.bat file.
                                                                      See the bootloader page for details on using your new parallel port programmer to burn the bootloader onto the Arduino board. 

For more info go to :

 Thank You : D