b.e project of electronics and communication

110
Department of E.C.E Braille Keypad for Visually Impaired 1. INTRODUCTION Braille keypad for visually impaired is a device that can be used by blind for two major purposes: NOTE TAKER: The device can be used to take notes via Braille keypad and store words in PC and output the words in audio format. ELECTRONIC BRAILLE TUTOR SYSTEM: The device serves as a low cost teaching aid for learning Braille in a more interactive way. In 2008, The World Health Organization (WHO) estimates that there are approximately 161 million people with severe vision loss worldwide. A generation ago 50 percent of blind school children used Braille. Now, it's less than 12 percent. Hence, in a vision to increase the percentage of Blind people studying Braille in a interactive way, this device is being developed. 1.1 OBJECTIVE The main objective of the project is to create a low cost, economical typing device and Braille tutor system for the blind. SCE 2009-2010 Page 1

Upload: sunilkumar0791

Post on 10-Apr-2015

689 views

Category:

Documents


0 download

DESCRIPTION

This project outlines the development of a Braille keypad model for visually impaired. Blind people can use this device to take notes (Note Taker function) and also use this as a tutor system for learning Braille (Electronic Braille Tutor). In this project we have a developed a keypad based on standard Braille format using DTMF Logic. Components used are the Standard DTMF Encoder and Decoder, PIC Microcontroller and USB. Character typed using the keypad is processed by the encoder to generate the DTMF signal. This signal is decoded by the decoder which generates a 4-bit binary output for each character and the output is sent to the microcontroller. Microcontroller gets interrupted and compares the output from decoder with the lookup table. It then sends the ASCII value of the character to the PC. COMM API is used to read the characters from Hyper Terminal. Speech API is used to produce the audio feedback.

TRANSCRIPT

Page 1: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

1. INTRODUCTION

Braille keypad for visually impaired is a device that can be used by blind for two major

purposes:

NOTE TAKER: The device can be used to take notes via Braille keypad and

store words in PC and output the words in audio format.

ELECTRONIC BRAILLE TUTOR SYSTEM: The device serves as a low cost

teaching aid for learning Braille in a more interactive way.

In 2008, The World Health Organization (WHO) estimates that there are approximately

161 million people with severe vision loss worldwide. A generation ago 50 percent of

blind school children used Braille. Now, it's less than 12 percent. Hence, in a vision to

increase the percentage of Blind people studying Braille in a interactive way, this device

is being developed.

1.1 OBJECTIVE

The main objective of the project is to create a low cost, economical typing device and

Braille tutor system for the blind.

1.2 DESCRIPTION

Braille keypad uses DTMF logic for entering the characters. UM91215B encoder

generates the DTMF signal for the key pressed. This signal is fed to the MT8870D

decoder, which decodes DTMF signal into 4 bit output. PIC18F4550 performs the

computation on the 4-bit output from the decoder and sends the appropriate character to

the PC’s Hyper Terminal using USB.

COMM API is used to read the character from the Hyper Terminal and Speech API is

used to convert the text to speech.

SCE 2009-2010 Page 1

Page 2: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

1.3 BRAILLE SYSTEM

Braille is writing system which enables blind and partially sighted people to read and

write through touch. It was invented by Louis Braille (1809-1852), who was blind and

became a teacher of the blind. It consists of patterns of raised dots arranged in cells of up

to six dots in a 3 x 2 configuration. Each cell represents a letter, numeral or punctuation

mark. Some frequently used words and letter combinations also have their own single cell

patterns.

There are a number of different versions of Braille:

Grade 1: This grade consists of the 26 standard letters of the alphabet and

punctuation. It is only used by people who are first starting to read Braille.

Grade 2: This grade consists of the 26 standard letters of the alphabet,

punctuation and contractions. The contractions are employed to save space

because a Braille page cannot fit as much text as a standard printed page. Books,

signs in public places, menus, and most other Braille materials are written in

Grade 2 Braille.

Grade 3: This grade is used mainly in personal letters, diaries, and notes, and also

in literature to some extent. It is a kind of shorthand, with entire words shortened

to a few letters.

1.3.1 Braille Code

Braille can be seen as the world's first binary encoding scheme for representing the

characters of a writing system. The system as originally invented by Braille consists of

two parts:

A character encoding for mapping characters of the French language to tuples of

six bits or dots.

A way of representing six-bit characters as raised dots in a Braille cell.

Today different Braille codes (or code pages) are used to map character sets of different

languages to the six bit cells. Different Braille codes are also used for different uses like

SCE 2009-2010 Page 2

Page 3: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

mathematics and music. However, because the six-dot Braille cell only offers 63 possible

combinations (26 - 1 = 63), of which some are omitted because they feel the same (having

the same dots pattern in a different position), many Braille characters have different

meanings based on their context. Therefore, character mapping is not one-to-one.

Fig 1.1 Braille code for English characters (a-o)

SCE 2009-2010 Page 3

Page 4: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

Fig 1.2 Braille code for English characters (p-z)

Fig 1.3 Braille code for Special Commands

SCE 2009-2010 Page 4

Page 5: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

Fig 1.4 Braille code for Numbers

Fig 1.5 Braille code for Punctuation

SCE 2009-2010 Page 5

Page 6: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

1.3.2 Louis Braille

Louis Braille, the father of Braille system, was the inventor of Braille system. This is a

worldwide system that is being used by blind people for reading and writing. Braille is

read by passing the fingers over characters made up of an arrangement of one to six

embossed points. It has been adapted to almost every known language.

Fig 1.6 LOUIS BRAILLE (1809 – 1852)

Louis Braille became blind at the age of 3, when he accidentally poked himself in the eye

with a stitching awl, one of his father's workshop tools. The injury wasn't thought to be

serious until it got infected. Braille's other eye went blind because of sympathetic

ophthalmia.

At the very young age of 10, Braille earned a scholarship to the National Institute for the

Blind in Paris, one of the first of its kind in the world. However, the conditions in the

school were not notably better. Louis was served stale bread and water, and students were

sometimes abused or locked up as a form of punishment.

SCE 2009-2010 Page 6

Page 7: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

Braille, a bright and creative student, became a talented cellist and organist in his time at

the school, playing the organ for churches all over France.

At the school, the children were taught basic craftsman skills and simple trades. They

were also taught how to read by feeling raised letters (a system devised by the school's

founder, Valentin Haüy). However, because the raised letters were made using paper

pressed against copper wire, the students never learned to write. Another disadvantage

was that the letters weighed a lot and whenever people published books using this system,

they put together a book with multiple stories in one in order to save money. This made

the books sometimes weigh over a hundred pounds. The school had just 14 books, all of

which Louis had read. He liked to learn and to play music.

1.3.3 Development of Braille System

In 1821, Charles Barbier, a former Captain in the French Army, visited the National

Institute for the Blind school. Barbier shared his invention called "night writing" a code

of 12 raised dots and a number of dashes that let soldiers share top-secret information on

the battlefield without having to speak. The code was too difficult for Louis to understand

and he later changed the number of raised dots to 6 to form what we today call Braille.

The same year, Louis Braille began inventing his raised-dot system with his father's

stitching awl, the same implement with which he had blinded himself, finishing at age 15,

in 1824. Inspired by the wooden dice his father gave to him; his system used only six dots

and corresponded to letters, whereas Barbier's used 12. The six-dot system allowed the

recognition of letters with a single fingertip apprehending all the dots at once, requiring

no movement or repositioning which slowed recognition in systems requiring more dots.

These dots consisted of patterns in order to keep the system easy to learn. The Braille

system also offered numerous benefits over Hauy's raised letter method, the most notable

being the ability to both read and write an alphabet. Another very notable benefit is that

because they were dots just slightly raised, there was a significant difference in makeup.

Braille later extended his system to include notation for mathematics and music. The first

book in Braille was published in 1829 under the title Method of Writing Words, Music,

and Plain Songs by Means of Dots, for Use by the Blind and Arranged for Them . In 1839

Braille published details of a method he had developed for communication with sighted

people, using patterns of dots to approximate the shape of printed symbols. Braille and his

SCE 2009-2010 Page 7

Page 8: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

friend Pierre Foucault went on to develop a machine to speed up the somewhat

cumbersome system.

Braille became a well-respected teacher at the Institute. Although he was admired and

respected by his pupils, his writing system was not taught at the Institute during his

lifetime. The air at the institute was foul and he died in Paris of tuberculosis in 1852 at the

age of 43; his body was disinterred in 1952 (the centenary of his death) and honoured

with re-interment in the Panthéon in Paris. His system was finally officially recognized in

France two years after his death, in 1854.

SCE 2009-2010 Page 8

Page 9: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

2. BLOCK DIAGRAM

Fig 2.1 Basic block diagram of the project

2.1 DESCRIPTION:

BRAILLE KEYPAD: It consists of 8 keys, out of which 6 keys are used to

type the character.

Encoder (UM91215B): The Key pressed is processed by the Encoder and it

produces a DTMF (Dual Tone Multi-Frequency) signal.

Decoder (MT8870D): Decodes the frequency signal and sends the location of

the key pressed to the PIC microcontroller.

PIC18F4550: It reads the data from the decoder processes it and sends the

character to the PC via USB.

USB 2.0: This is used to transfer the character from the Micro controller to PC.

SCE 2009-2010 Page 9

Page 10: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

3. CIRCUIT DESIGN

Fig 3.1 Complete Circuit Diagram

SCE 2009-2010 Page 10

Page 11: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

3.1 Components used

Component Name Range Numbers

Microcontroller PIC18F4550 - 1

Encoder UM91215B - 1

Decoder MT8870D - 1

Crystal Oscillator 48MHz 1

3.579545MHz 2

Resistors 100Ω 1

1KΩ 3

10KΩ 1

470KΩ 2

1MΩ 1

Capacitors 0.1μF 7

4.7μF 1

100μF 1

Zener Diode 3.6v 1

Table 3.1 List of Components used

SCE 2009-2010 Page 11

Page 12: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

3.2 BRAILLE KEYPAD WITH ENCODER

Fig 3.2 Circuit diagram of Encoder (UM91215B)

Braille code works on the principle of DTMF (Dual-tone Multi Frequency) logic. DTMF

is a tone composed of two sine waves of mixed frequencies. Individual frequencies are

chosen such that the addition, multiplication or subtraction of any two frequencies should

not generate frequency at is used. DTMF is designed for control signals only. With

standard decoders, it is possible to signal at a rate of about 10 "beeps" (=5bytes) per

second. DTMF standards specify 50ms tone and 50ms space duration. For shorter lengths,

synchronization and timing becomes very tricky.

3.2.1 Composition of DTMF signals

The table 3.1 shows how to compose any DTMF code. Each code, or "beep", consists of

two simultaneous frequencies mixed together (added amplitudes). Standards specify 0.7%

typical and 1.5% maximum tolerance. The higher of the two frequencies may have higher

amplitude (be "louder") of 4 dB max. This shift is called a "twist". If the twist is equal to

SCE 2009-2010 Page 12

Page 13: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

3 dB, the higher frequency is 3 dB louder. If the lower frequency is louder, the twist is

negative.

3.2.2 Frequency table

  1209 Hz 1336 Hz 1477 Hz

697 Hz 1 2 3

770 Hz 4 5 6

852 Hz 7 8

Table 3.2 Frequency table

This table resembles a matrix keyboard. The X and Y coordinates of each code give the

two frequencies that the code is composed of. It contains 8 codes.

3.2.3 Encoder-UM91215B

UM91215B is a single chip, silicon gate, CMOS Integrated Circuit with an on-chip

oscillator for a 3.579545 MHz crystal. It provides Dual Tone Multi-Frequency dialing.

3.2.3.1 Features

One touch redial operation.

32-digit capacity for redialing.

DTMF Timing

▪ Manual Dialing: Minimum duration for bursts and pauses

▪ Redialing: Calibrated timing

Hands free Control Function.

Wide operating voltage range: 2v to 5.5v

Key-in beep tone output.

Digits dialed manually after redialing are cascadable and stored as additional

digits for next redialing.

Uses inexpensive ceramic resonator (3.579545 MHz).

Built-in power up reset circuit.

SCE 2009-2010 Page 13

Page 14: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

3.3 BRAILLE KEYPAD ARRANGEMENT

Fig 3.3 Standard Braille Code Format Fig 3.4 Braille Keypad Arrangement

Braille Keypad designed in this project consists of all the six keys of Standard Braille

Code Format with two additional keys 7 and 8. Key-8 is used as a Enter button and Key-7

for Speech output.

3.3.1 BRAILLE KEYPAD TYPING EXAMPLE

Fig 3.5 Keypad Enter Example

SCE 2009-2010 Page 14

Page 15: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

Figure 3.5 shows how to type a word – cat using the Braille Keypad. As shown in the

figure, for typing the character c the keys 1 and 4 are pressed sequentially. After pressing

the keys related to a character according to Braille Code format, key-8 is pressed to enter

the character and the ASCII value will be sent to the PC after encoding and Decoding.

This procedure is continued for the characters ‘a’ & ‘t’. Finally to get the Speech output

of typed word (Speech output for each character can also be obtained by pressing key-7

after entering the Character) key-7 is pressed.

SCE 2009-2010 Page 15

Page 16: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

3.4 DECODER:

Fig 3.6 Circuit diagram of Decoder (MT8870D)

3.4.1 How to decode DTMF

It is not easy to detect and recognize DTMF with satisfactory precision. Often, dedicated

integrated circuits are used, although a functional solution for DTMF transmission and

receiving by a microprocessor (a PIC in most cases) exists. It is rather complicated, so it

is used only marginally. Most often, a MT8870D or compatible circuit would be used.

Most decoders detect only the rising edges of the sine waves. So, DTMF generated by

rectangular pulses and RC filters works reliably. The mentioned MT8870D uses two 6th

order band pass filters with switched capacitors. These produce pure sine waves even

from distorted inputs, with any harmonics suppressed.

Decoding of DTMF signal involves identifying the tow tones in that signal and

determining their corresponding symbol. This can be accomplished by using MT8870D

IC.

SCE 2009-2010 Page 16

Page 17: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

3.4.2 Features of MT8870D

• Complete DTMF Receiver.

• Low power consumption.

• Internal gain setting amplifier.

• Adjustable guard time.

• Central office quality.

• Power-down mode.

• •Inhibit mode.

Fig 3.7 Block diagram of Decoder (MT8870D)

The MT8870D is a full DTMF Receiver that integrates both bandsplit filter and decoder

functions into a single 18-pin DIP or SOIC package. Manufactured using CMOS process

technology, the MT8870D offers low power consumption (35 mW max) and precise data

handling. Its filter section uses switched capacitor technology for both the high and low

group filters and for dial tone rejection. Its decoder uses digital counting techniques to

detect and decode all 16 DTMF tone pairs into a 4-bit code. External component count is

SCE 2009-2010 Page 17

Page 18: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

minimized by provision of an on-chip differential input amplifier, clock generator, and

latched tri-state interface bus. Minimal external components required include a low-cost

3.579545 MHz color burst crystal, a timing resistor, and a timing capacitor.

3.4.3 Functional Description

MT8870D operating functions (see Fig 3.7) include a bandsplit filter that separates the

high and low tones of the received pair, and a digital decoder that verifies both the

frequency and duration of the received tones before passing the resulting 4-bit code to the

output bus.

3.4.4 Filter

The low and high group tones are separated by applying the dual-tone signal to the inputs

of two 6th order switched capacitor band pass filters with bandwidths that correspond to

the bands enclosing the low and high group tones. The filter also incorporates notches at

350 and 440 Hz, providing excellent dial tone rejection. Each filter output is followed by

a single-order switched capacitor section that smoothens the signals prior to limiting.

Signal limiting is performed by high gain comparators provided with hysteresis to prevent

detection of unwanted low-level signals and noise. The comparator outputs provide full-

rail logic swings at the frequencies of the incoming tones.

3.4.5 Decoder

MT8870D decoder uses a digital counting technique to determine the frequencies of the

limited tones and to verify that they correspond to standard DTMF frequencies. A

complex averaging algorithm is used to protect against tone simulation by extraneous

signals (such as voice) while tolerating small frequency variations. The algorithm ensures

an optimum combination of immunity to talk off and tolerance to interfering signals (third

tones) and noise. When the detector recognizes the simultaneous presence of two valid

tones (known as signal condition), it raises the Early Steering flag (ESt). Any subsequent

loss of signal condition will cause ESt to fall.

SCE 2009-2010 Page 18

Page 19: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

3.4.6 Steering Circuit

Fig 3.8 Steering Circuit

Before a decoded tone pair is registered, the receiver checks for a valid signal duration

referred to as character-recognition-condition. This check is performed by an external RC

time constant driven by ESt. Logic high on ESt causes VC to rise as the capacitor

discharges. Provided that signal condition is maintained (ESt remains high) for the

validation period (tGTF), VC reaches the threshold (VTSt) of the steering logic to register

the tone pair, thus latching its corresponding 4-bit code into the output latch. At this point,

the GT output is activated and drives VC to VDD. GT continues to drive high as long as

ESt remains high. Finally, after a short delay to allow the output latch to settle, the

delayed steering output flag (StD) goes high, signaling that a received tone pair has been

registered. The contents of the output latch are made available on the 4-bit output bus by

raising the three state control input (OE) to logic high. The steering circuit works in

reverse to validate the inter digit pause between signals. Thus, as well as rejecting signals

too short to be considered valid, the receiver will tolerate signal interruptions (dropouts)

too short to be considered a valid pause. This capability, together with the ability to select

the steering time constants externally, allows the designer to tailor performance to meet a

wide variety of system requirements.

SCE 2009-2010 Page 19

Page 20: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

3.5 PIC18F4550

Fig 3.9 Circuit diagram of PIC18F4550

3.5.1 FEATURES:

PIC18F4550 is a 40-Pin PDIP. It provides high computational performance at an

economical price and in addition it provides high endurance, Enhanced Flash

program memory 32 Kbytes.

Nano watt technology: The PIC18F4550 incorporate a range of features that can

significantly reduce power consumption during operation. Key items include:

▪ Alternate Run Modes: By clocking the controller from the Timer1 source

or the internal oscillator block, power consumption during code execution

can be reduced by as much as 90%.

▪ Multiple Idle Modes: The controller can also run with its CPU core

disabled but the peripherals still active. In these states, power

SCE 2009-2010 Page 20

Page 21: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

consumption can be reduced even further, to as little as 4% of normal

operation requirements.

The PIC18F4550 incorporates a fully featured Universal Serial Bus

communications module that is USB Specification Revision 2.0. The module

supports both low-speed and full speed communication for all supported data

transfer types.

Self-Programmability: These devices can write to their own program memory

spaces under internal software control. By using a boot loader routine, located in

the protected Boot Block at the top of program memory, it becomes possible to

create an application that can update itself in the field.

Extended Instruction Set: The PIC18F4550 introduces an optional extension to

the PIC18 instruction set, which adds 8 new instructions and an Indexed Literal

Offset Addressing mode.

Enhanced Addressable USART: This serial communication module is capable

of standard RS-232 operation and provides support for the LIN bus protocol.

Other enhancements include Automatic Baud Rate Detection and a 16-bit Baud

Rate Generator for improved resolution. When the microcontroller is using the

internal oscillator block, the EUSART provides stable operation for applications

that talk to the outside world without using an external crystal.

SCE 2009-2010 Page 21

Page 22: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

3.6 UNIVERSAL SERIAL BUS 2.0

Fig 3.10 USB PERIPHERAL

USB is a specification to establish communication between devices and a host controller.

3.6.1 UNIVERSAL SERIAL BUS FEATURES

USB V2.0 Compliant.

Low Speed (1.5 Mb/s) and Full Speed (12 Mb/s).

Supports Control, Interrupt, Isochronous and Bulk Transfers.

Supports up to 32 endpoints (16 bidirectional).

1-Kbyte dual access RAM for USB.

On-chip USB transceiver with on-chip voltage regulator.

Interface for off-chip USB transceiver.

Streaming Parallel Port (SPP) for USB streaming transfers.

SCE 2009-2010 Page 22

Page 23: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

3.6.2 OVERVIEW OF THE USB PERIPHERAL

The PIC18FX4550 device contains a full speed and low-speed compatible USB Serial

Interface Engine (SIE) that allows fast communications between any USB host and the

PIC® microcontroller. The SIE can be interfaced directly to the USB, utilizing the

internal transceiver, or it can be connected through an external transceiver.

An internal 3.3V regulator is also available to power the internal transceiver in 5V

applications. Some special hardware features have been included to improve

performance. Dual port memory in the device’s data memory space (USB RAM) has been

supplied to share direct memory access between the microcontroller core and the SIE.

Buffer descriptors are also provided, allowing users to freely program endpoint memory

usage within the USB RAM space.

A Streaming Parallel Port has been provided to support the uninterrupted transfer of large

volumes of data, such as isochronous data, to external memory buffers.

SCE 2009-2010 Page 23

Page 24: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

4. PROGRAMING

4.1 FIRMWARE FLOWCHART

4.1.1 Main Program

SCE 2009-2010 Page 24

Page 25: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

4.1.2 Interrupt Service Routine

SCE 2009-2010 Page 25

Page 26: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

SCE 2009-2010 Page 26

Page 27: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

SCE 2009-2010 Page 27

Page 28: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

4.2 Firmware Code for Programming PIC18F4550

#include <18F4550.h>

#fuses

HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREG

EN

#use delay(clock=48000000)

#else //use the National USBN960x peripheral

#include <18F452.h>

#fuses HS,NOWDT,NOPROTECT,NOLVP

#use delay(clock=20000000)

#endif //endif check to see which peripheral to use

#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

#include <C:\Program Files\PICC\Drivers\usb_cdc.h>

#int_EXT

void ext_isr()

{

int value;

static int k=0x00;

static int choice = 0x00;

char arr[] = {"HI BN\r\n"};

value = input_d() & 0x0f;

if((value != 0x08) ) {

switch(value) {

case 0x01:bit_set(choice, 0);

break;

case 0x02:bit_set(choice, 1);

break;

case 0x03:bit_set(choice, 2);

break;

case 0x04:bit_set(choice, 3);

break;

case 0x05:bit_set(choice, 4);

break;

SCE 2009-2010 Page 28

Page 29: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

case 0x06:bit_set(choice, 5);

break;

case 0x07:usb_cdc_putc(' ');

break;

default:break;

}

}

else if(value == 0x08)

{

if(k==0x00)

{

if(choice == 0x01)

usb_cdc_putc('a');

else if(choice == 0x03)

usb_cdc_putc('b');

else if(choice == 0x09)

usb_cdc_putc('c');

else if(choice == 0x19)

usb_cdc_putc('d');

else if(choice == 0x11)

usb_cdc_putc('e');

else if(choice == 0x0b)

usb_cdc_putc('f');

else if(choice == 0x1b)

usb_cdc_putc('g');

else if(choice == 0x13)

usb_cdc_putc('h');

else if(choice == 0x0a)

usb_cdc_putc('i');

else if(choice == 0x1a)

usb_cdc_putc('j');

else if(choice == 0x05)

usb_cdc_putc('k');

else if(choice == 0x07)

SCE 2009-2010 Page 29

Page 30: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

usb_cdc_putc('l');

else if(choice == 0x0d)

usb_cdc_putc('m');

else if(choice == 0x1d)

usb_cdc_putc('n');

else if(choice == 0x15)

usb_cdc_putc('o');

else if(choice == 0x0f)

usb_cdc_putc('p');

else if(choice == 0x1f)

usb_cdc_putc('q');

else if(choice == 0x17)

usb_cdc_putc('r');

else if(choice == 0x0e)

usb_cdc_putc('s');

else if(choice == 0x1e)

usb_cdc_putc('t');

else if(choice == 0x25)

usb_cdc_putc('u');

else if(choice == 0x27)

usb_cdc_putc('v');

else if(choice == 0x3a)

usb_cdc_putc('w');

else if(choice == 0x2d)

usb_cdc_putc('x');

else if(choice == 0x3d)

usb_cdc_putc('y');

else if(choice == 0x35)

usb_cdc_putc('z');

else if(choice == 0x02)

usb_cdc_putc(',');

else if(choice == 0x06)

usb_cdc_putc(';');

else if(choice == 0x12)

SCE 2009-2010 Page 30

Page 31: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

usb_cdc_putc(':');

else if(choice == 0x32)

usb_cdc_putc('.');

else if(choice == 0x16)

usb_cdc_putc('!');

else if(choice == 0x26)

usb_cdc_putc('?');

else if(choice == 0x14)

usb_cdc_putc('*');

else if(choice == 0x34)

usb_cdc_putc('"');

else if(choice == 0x24)

usb_cdc_putc('-');

else if(choice == 0x20)

{

usb_cdc_putc('#');

k = 0x01;

}

else if(choice == 0x3c)

{

usb_cdc_putc('$');

k=0x02;

}

choice = 0x00;

}

else if(k==0x01)

{

if(choice == 0x01)

usb_cdc_putc('A');

else if(choice == 0x03)

usb_cdc_putc('B');

else if(choice == 0x09)

usb_cdc_putc('C');

else if(choice == 0x19)

SCE 2009-2010 Page 31

Page 32: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

usb_cdc_putc('D');

else if(choice == 0x11)

usb_cdc_putc('E');

else if(choice == 0x0b)

usb_cdc_putc('F');

else if(choice == 0x1b)

usb_cdc_putc('G');

else if(choice == 0x13)

usb_cdc_putc('H');

else if(choice == 0x0a)

usb_cdc_putc('I');

else if(choice == 0x1a)

usb_cdc_putc('J');

else if(choice == 0x05)

usb_cdc_putc('K');

else if(choice == 0x07)

usb_cdc_putc('L');

else if(choice == 0x0d)

usb_cdc_putc('M');

else if(choice == 0x1d)

usb_cdc_putc('N');

else if(choice == 0x15)

usb_cdc_putc('O');

else if(choice == 0x0f)

usb_cdc_putc('P');

else if(choice == 0x1f)

usb_cdc_putc('Q');

else if(choice == 0x17)

usb_cdc_putc('R');

else if(choice == 0x0e)

usb_cdc_putc('S');

else if(choice == 0x1e)

usb_cdc_putc('T');

else if(choice == 0x25)

SCE 2009-2010 Page 32

Page 33: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

usb_cdc_putc('U');

else if(choice == 0x27)

usb_cdc_putc('V');

else if(choice == 0x3a)

usb_cdc_putc('W');

else if(choice == 0x2d)

usb_cdc_putc('X');

else if(choice == 0x3d)

usb_cdc_putc('Y');

else if(choice == 0x35)

usb_cdc_putc('Z');

choice = 0x00;

k = 0x00;

}

else if(k==0x02)

{

if(choice == 0x01)

usb_cdc_putc('1');

else if(choice == 0x03)

usb_cdc_putc('2');

else if(choice == 0x09)

usb_cdc_putc('3');

else if(choice == 0x19)

usb_cdc_putc('4');

else if(choice == 0x11)

usb_cdc_putc('5');

else if(choice == 0x0b)

usb_cdc_putc('6');

else if(choice == 0x1b)

usb_cdc_putc('7');

else if(choice == 0x13)

usb_cdc_putc('8');

else if(choice == 0x0a)

usb_cdc_putc('9');

SCE 2009-2010 Page 33

Page 34: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

else if(choice == 0x1a)

usb_cdc_putc('0');

choice = 0x00;

k = 0x00;

}

}

}

void main(void)

{

char c;

set_tris_b(0x01);

set_tris_d(0xff);

enable_interrupts(GLOBAL);

enable_interrupts(INT_EXT);

ext_int_edge(L_TO_H);

printf("\r\n\nCCS CDC (Virtual RS232) Example\r\n");

usb_init_cs();

while (TRUE)

{

usb_task();

}

SCE 2009-2010 Page 34

Page 35: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

4.3 JAVA PROGRAMMING

The JAVA PROGRAMMING is used to produce the speech output of the text received at

the HyperTerminal of the PC. The speech output is obtained using Java communication

API and Java speech API.

4.3.1 JAVA COMM API

The Java Communications API consists of the javax.comm package. This package does

not come with the core Java development kits but instead is included in the set of optional

Java Extensions packages that provide various useful services.

With the Communications API can be used to obtain a set of objects representing the

RS232 serial ports and IEEE 1284 parallel ports on a platform. With these we can obtain

exclusive ownership of a port, read and write to the port either synchronously and

asynchronously, and receive events from the port that indicate some state change in the

port such as the arrival of data.

javax.comm package consists of primary classes that you need for input/output over serial

and parallel ports. This will include the port classes that give information about and

access to the ports on a platform, the port event classes and interfaces that allow for

responding to data and state changes on ports, and exceptions.

Package javax.comm

Class Summary

CommPort A communications port.

CommPortIdentifie

rCommunications port management.

ParallelPort A parallel communications port.

ParallelPortEvent A parallel port event.

SerialPort An RS-232 serial communications port.

SCE 2009-2010 Page 35

Page 36: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

SerialPortEvent A serial port event.

 

Table 4.1 Package javax.comm Class summary

Exception Summary

NoSuchPortExceptionThrown when a driver can't find the specified

port.

PortInUseException Thrown when the specified port is in use.

UnsupportedCommOperationExceptio

n

Thrown when a driver doesn't allow the

specified operation.

Table 4.2 Package javax.comm Exception summary

Interface Summary

CommDriver Part of the loadable device driver interface.

CommPortOwnershipListene

r

Propagates various communications port ownership

events.

ParallelPortEventListener Propagates parallel port events.

SerialPortEventListener Propagates serial port events.

Table 4.3 Package javax.comm Interface summary

SCE 2009-2010 Page 36

Page 37: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

SCE 2009-2010 Page 37

Page 38: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

4.3.2 JAVA SPEECH API

The Java Speech API defines a standard, easy-to-use, cross-platform software interface to

state-of-the-art speech technology. Two core speech technologies are supported through

the Java Speech API: speech recognition and speech synthesis. Speech recognition

provides computers with the ability to listen to spoken language and to determine what

has been said. In other words, it processes audio input containing speech by converting it

to text. Speech synthesis provides the reverse process of producing synthetic speech from

text generated by an application, an applet or a user. It is often referred to as text-to-

speech technology.

The Java Speech API is an extension to the Java platform. Extensions are packages of

classes written in the Java programming language (and any associated native code) that

application developers can use to extend the functionality of the core part of the Java

platform.

4.3.2.1 Design Goals for the Java Speech API

Along with the other Java Media APIs, the Java Speech API lets developers incorporate

advanced user interfaces into Java applications. The design goals for the Java Speech API

included:

Provide support for speech synthesizers and for both command-and-control and

dictation speech recognizers.

Provide a robust cross-platform, cross-vendor interface to speech synthesis and

speech recognition.

Enable access to state-of-the-art speech technology.

Support integration with other capabilities of the Java platform, including the suite

of Java Media APIs.

Be simple, compact and easy to learn.

4.3.2.2 Speech Engines: javax.speech

The javax.speech package of the Java Speech API defines an abstract software

representation of a speech engine. "Speech engine" is the generic term for a system

designed to deal with either speech input or speech output. Speech synthesizers and

SCE 2009-2010 Page 38

Page 39: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

speech recognizers are both speech engine instances. Speaker verification systems and

speaker identification systems are also speech engines but are not currently supported

through the Java Speech API.

The javax.speech package defines classes and interfaces that define the basic functionality

of an engine. The javax.speech.synthesis package and javax.speech.recognition package

extend and augment the basic functionality to define the specific capabilities of speech

synthesizers and speech recognizers.

The basic processes for using a speech engine in an application are as follows.

Identify the application's functional requirements for an engine (e.g, language or

dictation capability).

Locate and create an engine that meets those functional requirements.

Allocate the resources for the engine.

Set up the engine.

Begin operation of the engine - technically, resume it.

Use the engine

Deallocate the resources of the engine.

4.3.2.3 Speech Synthesis: javax.speech.synthesis

A speech synthesizer is a speech engine that converts text to speech. The

javax.speech.synthesis package defines the Synthesizer interface to support speech

synthesis plus a set of supporting classes and interfaces. Speech synthesis is also referred

to as text-to-speech (TTS) conversion.

The four basic steps which all speech synthesis applications must perform

ARE:

Create: The Central class of javax.speech package is used to obtain a

speech synthesizer by calling the createSynthesizer method. The

SynthesizerModeDesc argument provides the information needed to locate

an appropriate synthesizer.

SCE 2009-2010 Page 39

Page 40: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

Allocate and Resume: Allocate and resume methods prepare the

Synthesizer to produce speech by allocating all required resources and

putting it in the RESUMED state.

Generate: The speakPlainText method requests the generation of

synthesized speech from a string.

Deallocate: The waitEngineState method blocks the caller until the

Synthesizer is in the QUEUE_EMPTY state - until it has finished speaking

the text. The deallocate method frees the synthesizer's resources.

4.3.2.4 Synthesizer as an Engine

The basic functionality provided by a Synthesizer is speaking text,

management of a queue of text to be spoken and producing events as these

functions proceed. The Synthesizer interface extends the Engine interface to

provide this functionality.

The following is a list of the functionality that the javax.speech.synthesis

package inherits from the javax.speech package and outlines some of the

ways in which that functionality is specialized.

The properties of a speech engine defined by the EngineModeDesc class

apply to synthesizers. The SynthesizerModeDesc class adds information

about synthesizer voices.

Synthesizers are searched, selected and created through the Central class in

the javax.speech package.

Synthesizers inherit the basic state system of an engine from the Engine

interface. The basic engine states are ALLOCATED, DEALLOCATED,

ALLOCATING_RESOURCES and DEALLOCATING_RESOURCES

for allocation state, and PAUSED and RESUMED for audio output state.

The getEngineState method and other methods are inherited for

monitoring engine state. An EngineEvent indicates state changes.

Synthesizers produce all the standard engine events. The

javax.speech.synthesis package also extends the EngineListener interface

as SynthesizerListener to provide events that are specific to synthesizers.

SCE 2009-2010 Page 40

Page 41: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

4.4 JAVA CODING FLOWCHART

SCE 2009-2010 Page 41

Page 42: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

SCE 2009-2010 Page 42

Page 43: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

4.5 JAVA CODE

Blind.java

import java.io.*;

import javax.speech.*;

import javax.speech.synthesis.*;

import java.util.Locale;

import java.net.*;

class blind extends Thread

{

Synthesizer synthesizer;

SynthesizerModeDesc synthesizermodedesc;

EngineList enginelist;

SynthesizerProperties synthesizerproperties;

public blind()

{

try

{

System.out.println("in synthesis");

synthesizer = Central.createSynthesizer(new

SynthesizerModeDesc(Locale.ENGLISH));

enginelist = Central.availableSynthesizers(null);

synthesizermodedesc = (SynthesizerModeDesc)enginelist.elementAt(0);

synthesizerproperties = synthesizer.getSynthesizerProperties();

synthesizer.allocate();

start();

}

catch(Exception e)

{;}

}

public void run()

{

SCE 2009-2010 Page 43

Page 44: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

try

{

System.out.println("after allocate");

Voice avoice[] = synthesizermodedesc.getVoices();

synthesizerproperties.setVoice(avoice[0]);

}

catch(Exception e){}

}

public void speak(String msg) throws InterruptedException

{

synthesizer.speakPlainText(msg,null);

synthesizer.waitEngineState(0x10000L);

}

public void destroySynthesis() throws EngineException

{

synthesizer.deallocate();

}

public void stopSpeaking()

{

synthesizer.cancel();

}

public static void main(String args[])

{

//String data=args[0];

blind b=new blind();

new ReadWords(b);

}

}

SCE 2009-2010 Page 44

Page 45: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

ReadWords.java

import javax.comm.*;

import java.io.*;

import java.util.*;

class ReadWords implements SerialPortEventListener

{

CommPortIdentifier portId;

SerialPort serialPort;

InputStream in;

int ch;

int k;

String data="";

String dat="";

String data1="";

String data2="";

blind b;

Vector vector;

StringTokenizer st;

ReadWords(blind b)

{

this.b=b;

try

{

vector=new Vector();

portId = CommPortIdentifier.getPortIdentifier("COM3");

serialPort = (SerialPort) portId.open("ComControl", 2000);

in = serialPort.getInputStream();

serialPort.addEventListener(this);

serialPort.notifyOnDataAvailable(true);

serialPort.setSerialPortParams(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,S

erialPort.PARITY_NONE);

System.out.println("com initialized");

SCE 2009-2010 Page 45

Page 46: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

FileInputStream fstream = new FileInputStream("textfile.txt");

// Get the object of DataInputStream

DataInputStream in = new DataInputStream(fstream);

BufferedReader br = new BufferedReader(new InputStreamReader(in));

String strLine="";

int i=0;

//Read File Line By Line

while ((i = br.read()) != -1) {

// Print the content on the console

strLine+=(char)i;

//System.out.println ("****"+strLine);

}

System.out.println ("&&&&"+strLine);

st=new StringTokenizer(strLine," ");

while(st.hasMoreTokens())

{

vector.add(st.nextToken());

}

}

catch(Exception e)

{

System.out.println("Error In Initalization Of Data"+e+st);

}

}

synchronized public void serialEvent(SerialPortEvent event)

{

try

{

if(event.getEventType()==SerialPortEvent.DATA_AVAILABLE)

{

while((ch=in.read())!=32)

SCE 2009-2010 Page 46

Page 47: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

{

if(ch==35)

{

b.speak("capital sign");

}

else if(ch==36)

{

b.speak("number sign");

}

else if(ch==42)

{

b.speak(dat);

}

else if(ch==45)

{

k=1;

}

else

{

data+=(char)ch;

System.out.println("***********data*********"+data);

//sb.append((char)ch);

}

}

if(k!=1)

{

if(vector.contains(data))

{

b.speak(data);

File file=new File("D:\\project\\note taker for blind from

pratiba\\SOURCE CODE\\NoteTaker For Blind\\

spoken_words.txt");

FileOutputStream fos=new FileOutputStream(file,true);

SCE 2009-2010 Page 47

Page 48: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

data1=data2;

dat+=(data1+','+' ');

if(data1!="")

{

fos.write((data1+" ").getBytes());

}

fos.flush();

fos.close();

data2=data;

}

else if(data=="")

{

File file=new File("D:\\project\\note taker for blind from P

ratiba\\SOURCE CODE\\NoteTaker For Blind\\

spoken_words.txt");

FileOutputStream fos=new FileOutputStream(file,true);

data1=data2;

dat+=(data1+','+' ');

if(data1!="")

{

fos.write((data1+" ").getBytes());

}

fos.flush();

fos.close();

data2=data;

}

else

{

b.speak("Sorry, the word was not found");

}

}

else

{

b.speak("previous spoken output, deleted");

SCE 2009-2010 Page 48

Page 49: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

data2="";

k=0;

}

data="";

}

}

catch(Exception e)

{

System.out.println("Exception in Read"+e);

}

}

}

SCE 2009-2010 Page 49

Page 50: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

5. SOFTWARE

5.1 MPLAB v8.43

MPLAB Integrated Development Environment (IDE) is a free, integrated toolset for the

development of embedded applications employing Microchip's PIC and dsPIC

microcontrollers. MPLAB IDE runs as a 32-bit application on MS Windows, is easy to

use and includes a host of free software components for fast application development and

super-charged debugging. MPLAB IDE also serves as a single, unified graphical user

interface for additional Microchip and third party software and hardware development

tools. Moving between tools is a snap, and upgrading from the free software simulator to

hardware debug and programming tools is done in a flash because MPLAB IDE has the

same user interface for all tools.

Both Assembly and C programming languages can be used with MPLAB IDE. Others

may be supported through the use of third party programs. MPLAB IDE does not support

Linux, UNIX, or Macintosh based operating systems.

5.1.1 STEPS TO CREATE PROJECT IN MPLAB v8.43

1. Open MPLAB and Go to project and select the “Project Wizard” and click

“NEXT”.

SCE 2009-2010 Page 50

Page 51: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

2. Select the device as PIC18F4550 and click “NEXT”.

3. Select the language tool suite as CCS C compiler and click “NEXT”.

SCE 2009-2010 Page 51

Page 52: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

4. Create the project by selecting name with the path. (NOTE: All the headers and

the source file used to build the project should be outside the folder containing the

project file) then click “NEXT”.

5. Add all the header files that is needed along with the source file and click

“NEXT”.

SCE 2009-2010 Page 52

Page 53: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

6. Now the summary appears which defines the project parameters. If correct, click

“Finish”.

7. After clicking the “Finish”, the project will be opened. The Firmware Code is

written in the space provided and then it is compiled using CCS C Compiler.

SCE 2009-2010 Page 53

Page 54: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

5.2 JCREATOR LE 3.50

JCreator is a Java IDE created by Xinox Software. Its interface is similar to that of

Microsoft's Visual Studio. Because it is programmed entirely in C++, Xinox Software has

asserted that JCreator is faster than competing Java-based Java IDEs.

JCreator has two editions:

Lite Edition (LE)

Pro Edition (Pro):

JCreator is only available on the Windows Operating System. However, both the LE and

Pro versions of JCreator run adequately on Linux (using Wine). So far no Linux versions

are planned for immediate release, but new components will be built for cross-

compatibility in mind.

The feature set of the Pro version is comparable to that of other language aware IDEs

with respect to project management and editing features, but lacks advanced features,

such as automated refactoring, support for common frameworks etc, which can be found

in the dominant Java IDEs such as Eclipse and IntelliJ IDEA. The free LE version further

lacks some features, such as code completion, that are included with other free IDEs.

Unlike the dominant Java IDEs today, JCreator also lacks the level of extensibility

through third-party plug-ins that is common in popular Java IDEs.

5.2.1 Features

Custom color schemes.

Wrapping around of your existing projects.

Different JDK profiles can be used.

Quick code writing via project templates.

Easy project viewing with the class browser.

Debugging with an easy, intuitive interface. No command-line prompts necessary.

Wizards help you cut to the chase writing your project, quickly and easily.

Automatic Class path configuration.

UI customization (similar to Microsoft Visual Studio).

The run-time environment can run your application as an applet, in a JUnit

environment or in a command-line window.

SCE 2009-2010 Page 54

Page 55: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

JCreator's IDE does not require a Java Runtime Environment to execute, which may

make it faster than Java-based IDE's.

Fig 5.1 JCreator Environment

SCE 2009-2010 Page 55

Page 56: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

6. TESTING & EXECUTION

6.1 HYPER TERMINAL

This software is used to establish connection between PC and PIC Microcontroller. The

initial settings to receive the characters from the Microcontroller are shown below.

1. Go to device manager and check whether the device is connected. If so, see the

comm. Port number (if the driver is not installed, install the driver and then check

for comm. Port number).

SCE 2009-2010 Page 56

Page 57: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

2. Open HyperTerminal, select a name and click “OK”.

3. Select the USB to UART comm. port (i.e. COM3) and click “OK”.

SCE 2009-2010 Page 57

Page 58: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

4. Click “Restore Defaults” and then click “OK”.

5. Enter the characters and check whether it is appearing at the HyperTerminal.

Fig 6.1 Received characters on the Serial Port

SCE 2009-2010 Page 58

Page 59: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

6.2 Execution of java file

To execute the java file the following steps should be performed:

1. Open a notepad in the folder that contains java file and write the instructions

as shown and save it as a bat file.

SCE 2009-2010 Page 59

Page 60: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

2. Now close the notepad and open the bat file to execute the java file as shown and

press any key.

3. If there are no errors, then the output of the bat file will be as shown, after which

the characters can be entered.

SCE 2009-2010 Page 60

Page 61: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

7. PCB Layouts

Fig 7.1 PCB of Braille Keypad with Encoder

SCE 2009-2010 Page 61

Page 62: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

Fig 7.2 PCB of Decoder

SCE 2009-2010 Page 62

Page 63: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

Fig 7.3 PCB of PIC18F4550 Microcontoller

7.1 Cost of the Project

PIC18F4550 650

BRAILLE KEYPAD 3500

UM91215B 75

MT8870D 85

USB CABLE 70

HEADPHONE 250

MISCELLANOUS 500

TOTAL RS. 5130

SCE 2009-2010 Page 63

Page 64: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

8. APPLICATIONS, ADVANTAGES &

DISADVANTAGES

8.1 APPLICATIONS

1. The main application of this Note taker is that it allows the blinds to enter notes

via Braille keypad to access words and to output result in audio format.

2. Braille Note taker can be used to take notes in class, lectures and meeting for the

blind people.

3. Blind people can be employed as a typist.

4. This device can be used to teach the Braille language for blind people in a more

interactive way.

8.2 ADVANTAGES

1. No external power supply is needed. Power is shared through USB for all the

components (5v).

2. Typing is easier using this device as it is based on the standard Braille system.

3. Learning of Braille language is made more interactive with the help of the audio

feedback.

4. Compared to the existing Braille keypads (available in foreign countries), this

device is low-cost and economical.

8.3 DISADVANTAGES

1. The initial setup has to be done by another person.

2. After typing the last word in a paragraph, the key-7 has to be pressed twice in

order to store the last word.

3. The deletion of the word in error can be performed only for the previous

spoken output.

SCE 2009-2010 Page 64

Page 65: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

9. FUTURE SCOPES

This device can be made a portable hand held device with features as shown in the

Figure 9.1.

Fig 9.1 Portable Device

The device can be used to inform time, date, message in audio format.

Fig 9.2 Blind Man using the Device

SCE 2009-2010 Page 65

Page 66: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

This device can be integrated with walking stick, which serves as a Walking aid to

the Blind.

Fig 9.3 Device integrated with Stick

SCE 2009-2010 Page 66

Page 67: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

10. PHOTO GALLERY

Fig 10.1 Braille Keypad with Encoder

Fig 10.2 Decoder

SCE 2009-2010 Page 67

Page 68: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

Fig 10.3 Complete Hardware

Fig 10.4 Braille keypad connected to computer

SCE 2009-2010 Page 68

Page 69: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

11. CONCLUSION

Braille Keypad serves a low cost, economical and easy to use device that has great

potential to aid the education of a large number of blind students residing in the

developing nations and also aids in the increase in employment opportunities for the

Blind People. The Keypad is an attempt to use technology to enable education for the

visually impaired.

SCE 2009-2010 Page 69

Page 70: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

12. BIBLIOGRAPHY

[1] N. Kalra, T. Lauwers, D. Dewey, T. Stepleton, and M. B. Dias, “Iterative Design of A

Braille Writing Tutor to Combat Illiteracy,” 2nd IEEE/ACM International Conference on

Information and Communication Technologies and Development, December, 2007

[2] http://en.wikipedia.org/wiki/Braille

[3] http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010300

[4] “Portable Notetaker for Blind,” http://mypic32.com/web/guest/contestantsprofiles?

profileID=46951

[5] Anuraag Gupta, Prateek Agrawal, Shashank Singla, Sushmita Rawat, M. Balakrishnan

“Braille Tutor System for the Visually Handicapped,” World Blind Union, December,

2007

SCE 2009-2010 Page 70

Page 71: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

13. APPENDICES

13.1 Encoder datasheet

Fig 13.1 UM91215B Pin Details

Pin 1: Hook switch input: This inverter input pin detects the state of the hook switch

contact. “Off Hook “is represented by a Vss condition. “On hook” is represented by a

Vdd condition.

Pin 2: Mode IN: This is a TRI-STATE mode select pin.

Table 13.1 MODE IN – Tri State mode select

Pin 3 and 4: oscillator input and output pins. The base for the UM91215 is a crystal

controlled on-chip Oscillator, which is completed by connecting a 3.58M Hz crystal or

ceramic resonator between the OSC1 and OSC0 pin.

Pin 5: Connected to Vss.

Pin 6: Connected to Vdd.

SCE 2009-2010 Page 71

Page 72: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

Pin 7: TONE: Tone dialing output. When a valid key press is detected in the DTMF

mode, appropriate low group and high group frequencies are generated which hybridize

the dual tone output. TONE output is in the “OFF” state in pulse mode.

Pin 8: Dialing transmission mute output. This is a N-channel open drain output.

Normally, the transmission mute output is “OFF” during pulse or DTMF dialing this

output is “ON”.

Pin 9: MODE OUT PIN. This is an N-channel, open drain output. It is “ON” during tone

output and “OFF” during pulse output.

Pin 10: Key-in Tone Output. This N-channel open drain pin sends out a “beep” tone for

each pulse mode key entry, along with entries of accepted function keys. The tone output

frequency is 437 Hz and tone duration is 23 ms.

Pin 11: Dialing Pulse output. This is an N-channel open drain output. The normal output

will be “ON” during break and “OFF” during make in the pulse dialing mode.

Pin 11, 13, 14, 15, 16, 17, 18: Keyboard pins. This input serves as the interface to an XY

matrix keyboard. On a 4 x 4 matrix keyboard, the input from the forth column, should be

connected to Vss.

13.2 Decoder datasheet

Fig 13.2 MT8870D Pin Details

SCE 2009-2010 Page 72

Page 73: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

Table 13.2 Pin Description of MT8870D

SCE 2009-2010 Page 73

Page 74: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

13.3 PIC18F4550 datasheet

Fig 13.3 PIC18F4550 Pin Details

SCE 2009-2010 Page 74

Page 75: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

SCE 2009-2010 Page 75

Page 76: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

SCE 2009-2010 Page 76

Page 77: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

SCE 2009-2010 Page 77

Page 78: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

SCE 2009-2010 Page 78

Page 79: B.E PROJECT OF ELECTRONICS AND COMMUNICATION

Department of E.C.E Braille Keypad for Visually Impaired

Table 13.3 Pin Description of PIC18F4550

SCE 2009-2010 Page 79