Sunteți pe pagina 1din 13

3

GPS Based Voice Alert System

Submitted by: Ravi Raj E.No.10116040 Sr. No. 15

1|Page

Abstract
While originally a military project, GPS is considered a dual use (both military and civilian use) technology. Starting from 70s, development in the field of GPS based products has quite significantly increased in these decades. This GPS based device is a microcontroller based device which intellectually finds the location in which it is and gives alert to the user if it was his destination. GPS is employed to find the position where the user is located on the earth. This information is provided by GPS with the help of the data it receives from the satellite. Microcontroller is the heart of the device. It stores the data of the current location which it receives from the GPS system, so that it can compare with the destination location of the user. By this it can trace out the distance from the destination and produces an alarm the user. This device helps mainly blind people in their journey and people who are new to the places they are touring.

2|Page

1. Introduction
Human navigation is a very complex process that mainly relies on vision. As such, for the majority of visually impaired people, walking in unknown places can be a very difficult task to perform. Visually disabled and elderly persons have problems in travelling independently. Firstly, they have difficulties in accessing the information they need to plan their journeys. Once on a journey they have problems in knowing where they are and keeping to the planned route. During journey blind people were not able to recognize their destination properly. The project report describes the design of the project work GPS based voice alert system for blind by using embedded systems. GPS based blind man device with user input interfacing (voice based) to get alerts for few places is a micro controller based device which intellectually find the location in which it was currently located and gives the alert to the blind man if it was his destination area.

2. Background Information
Embedded Systems:
An embedded system is a computer system designed to perform one or a few dedicated functions often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. By contrast, a general-purpose computer, such as a personal computer, is designed to be flexible and to meet a wide range of end-user needs. Embedded systems are controlled by one or more main processing cores that are typically either micro controllers or digital signal processors The key characteristic, however, is being dedicated to handle a particular task, which may require very powerful processors. For example, air traffic control systems may usefully be viewed as embedded, even though they involve main frame computers and dedicated regional and national networks between airports and radar sites (each radar probably includes one or more embedded systems of its own). Since the embedded system is dedicated to specific tasks, design engineers can optimize it to reduce the size and cost of the product and increase the reliability and performance. Some embedded systems are mass-produced, benefiting from economies of scale.

3|Page

Physically, embedded systems range from portable devices such as digital watches and MP3 players, to large stationary installations like traffic lights, factory controllers, or the systems controlling nuclear power plants. Complexity varies from low, with a single microcontroller chip, to very high with multiple units, peripherals and networks mounted inside a large chassis or enclosure.

Microcontroller:

A microcontroller can be considered a self-contained system with a processor, memory and peripherals and can be used as an embedded system. The majority of microcontrollers in use today are embedded in other machinery, such as automobiles, telephones, appliances, and peripherals for computer systems. These are called embedded systems. While some embedded systems are very sophisticated, many have minimal requirements for memory and program length, with no operating system, and low software complexity. Typical input and output devices include switches, relays, solenoids, LEDs, small or custom LCD displays, radio frequency devices, and sensors for data such as temperature, humidity, light level etc. Embedded systems usually have no keyboard, screen, disks, printers, or other recognizable I/O devices of a personal computer, and may lack human interaction devices of any kind.

4|Page

ATmega8:

Pin Configuration

5|Page

Microcontroller Core Features: High performance RISC CPU All single cycle instructions except for program branches which are two cycle Operating speed: DC - 20 MHz clock input DC - 200 ns instruction cycle Up to 8K x 14 words of FLASH Program Memory, Up to 368 x 8 bytes of Data Memory (RAM) Up to 256 x 8 bytes of EEPROM Data Memory Pin out compatible to the PIC16C73B/74B/76/77 Interrupt capability (up to 14 sources) Direct, indirect and relative addressing modes Power-on Reset (POR) Power-up Timer (PWRT) and Oscillator Start-up Timer (OST) Watchdog Timer (WDT) with its own on-chip RC oscillator for reliable operation Programmable code protection Power saving SLEEP mode Selectable oscillator options Low power, high speed CMOS FLASH/EEPROM technology Fully static design In-Circuit Serial Programming (ICSP) via two pins Single 5V In-Circuit Serial Programming capability In-Circuit Debugging via two pins Processor read/write access to program memory Wide operating voltage range: 2.0V to 5.5V High Sink/Source Current: 25 mA Commercial, Industrial and Extended temperature ranges Low-power consumption

6|Page

The audio playback works using two of the Arduino boards timers, hardware functionality of the AVR (ATmega328) microcontroller thats normally used to generate PWM output with the analogWrite() function. One timer is used to generate a high-frequency square wave whose duty cycle corresponds to a particular value (amplitude) in the audio sample. Another timer is used to update this duty cycle at 8 KHz, the sample rate of the audio. As a result of using these timers, PWM output (analogWrite()) wont work on pins 3, 9, 10, or 11. You should still be able to use pins 3, 9, and 10 for digital input and output. The audio signal will be generated on pin 11. Time has an analogue representation - a clock face - and a digital representation - a digital clock. An analogue clock has a continuous measure of the current time, while the digital clock has a sampled measure. The digital clock may only display the hours and minutes, but seconds, milliseconds and smaller increments of time are still passing. Though it seems like a digital signal is losing some of the original information in the analogue signal, sampling theory shows that nothing is lost if certain conditions are met. As long as you are sampling the signal (recording the current value) at least twice as fast as the frequency content of the signal, everything will be captured. It's easier to work with digital audio than analogue audio, but we ultimately can't listen to digital audio - it needs to be converted back to analogue

7|Page

Representations of Digital Signals


A digital signal can be stored in computer in multiple ways. It's similar to languages, the same information can be translated into Spanish and German, but it's important the person receiving the information understands the language being used.

Pulse Code Modulation


Pulse code modulation (PCM) is the way most people visualise a digital audio signal. It is essentially a measurement of the amplitude of the sound at multiple points in time, as seen below.

The number of bits used determines how precise the measurement of each sample is. CDs use 16 bits. The more bits, the more precise. Because multiple bits are used to represent the signal, getting that digital signal back into an analogue signal takes more specialised work than an Arduino can deliver. However, PCM is a good way to store information as it is more robust against errors. There are integrated circuit (IC) chips available that can handle converting multiple bits, PCM signals into an analogue signal.

Pulse Width Modulation


Pulse width modulation (PWM) is not an encoding method commonly seen in recorded audio, unlike PCM which is used in CDs. This is because PWM is error prone, but unlike PCM, it can be easily implemented on a microcontroller like an Arduino. This is because a single binary output or digital pin can be used to create an analogue signal. Digital pins can only output a full voltage or ground (1 or 0), but by turning it on and off quickly and at different rates, you can simulate the values between 0 and 1. The on and off rate is called the duty cycle. The Arduino library has a function, analogWrite() that can handle this on and off switching and can translate a value from 0 to 255 into a corresponding PWM signal and simulate an analog output on a pin.
8|Page

9|Page

Block Diagram:

Code: Arduino to speaker: const byte ledPin = 13; const byte speakerOut = 11; /* This makes a standard old PC speaker connector fit nicely over the pins. */

/* 10.5 octaves :: semitones. 60 = do, 62 = re, etc. */ /* MIDI notes from 0, or C(-1), to 127, or G9. */ /* Rests are note number -1. */

unsigned int timeUpDown[128];

/* our song. Each number pair is a MIDI note and a note symbol. */

10 | P a g e

/* Symbols are 1 for whole, -1 for dotted whole, 2 for half, */ /* -2 for dotted half, 4 for quarter, -4 for dotted quarter, etc. */

const byte BPM = 120; const char song[] = { 64,4,64,4,65,4,67,4, 60,4,60,4,62,4,64,4, 64,4,64,4,65,4,67,4, 60,4,60,4,62,4,64,4, 62,4,62,4,64,4,60,4, 62,4,64,8,65,8,64,4,62,4, 64,4,64,4,65,4,67,4, 60,4,60,4,62,4,64,4, 67,4,65,4,64,4,62,4, 64,-4,62,8,62,2, 67,4,65,4,64,4,62,4, 62,-4,60,8,60,2, 62,4,64,8,65,8,64,4,60,4, 60,4,62,4,55,2, 67,4,65,4,64,4,62,4, 62,-4,60,8,60,2};

int period, i; unsigned int timeUp, beat; byte statePin = LOW; const float TEMPO_SECONDS = 60.0 / BPM; const unsigned int MAXCOUNT = sizeof(song) / 2;

void setup() { pinMode(ledPin, OUTPUT); pinMode(speakerOut, OUTPUT);


11 | P a g e

for (i = 128; i--;) timeUpDown[i] = 1000000 / (pow(2, (i - 69) / 12.0) * 880); }

void loop() { digitalWrite(speakerOut, LOW); for (beat = 0; beat < MAXCOUNT; beat++) { statePin = !statePin; digitalWrite(ledPin, statePin);

i = song[beat * 2]; timeUp = (i < 0) ? 0 : timeUpDown[i];

period = (timeUp ? (1000000 / timeUp) / 2 : 250) * TEMPO_SECONDS * 4 / song[beat * 2 + 1]; if (period < 0) period = period * -3 / 2; for (i = 0; i < period; i++) { digitalWrite(speakerOut, timeUp ? HIGH : LOW); delayMicroseconds(timeUp ? timeUp : 2000); digitalWrite(speakerOut, LOW); delayMicroseconds(timeUp ? timeUp : 2000); }
12 | P a g e

delay(50); } digitalWrite(speakerOut, LOW); delay(1000); }

13 | P a g e

S-ar putea să vă placă și