DIGITAL BRAILLE
PROJECT REPORT Submitted by
Dhananjaya Kumar A Kantharaj V Rakshith R Rahul S Sankanur (1RV08EC031) (1RV08EC042) (1RV08EC0123) (1RV08EC077)
Under the Guidance of Mrs Roopa J, Asst Professor Department of Electronics and Communication Engineering R.V.COLLEGE OF ENGINEERING, BANGALORE-560059
Page 1
Digital Braille
CERTIFICATE
This is to certify that the project work entitled DIGITAL BRAILLE is a bonafide work carried out by Dhananjaya Kumar A Kantharaj V Rakshith R Rahul S Sankanur (1RV08EC031) (1RV08EC042) (1RV08EC0123) (1RV08EC077)
in partial fulfillment for the award of the degree of Bachelor of Engineering in Electronics and Communication Engineering of Visvesvaraya Technological University, Belgaum during the academic year 2011-2012 as a part of the 7th semester mini project . It is certified that all corrections/suggestions indicated for Internal Assessment have been incorporated in the report deposited in the departmental library. The project report has been approved as it satisfies the academic requirements in respect of project work prescribed for the said degree.
Signature of Examiner
Page 2
Digital Braille
ACKNOWLEDGMENT
The satisfaction that accompanies the successful completion of any task would be incomplete without the mention of the people who made it possible, whose constant guidance and encouragement crowned all our efforts with success. We consider our privilege to express gratitude and thanks to the following persons for their help, encouragement and intellectual influence during the course of the project work. We would like to thank Principal, R.V. College of engineering and Prof. S. Jagannathan, head of Electronics and Communication Engineering, RVCE, for inspiring words with constant support extended to us during our entire course period and for making the lab facilities available to us whenever needed. We sincerely thank our internal guide Mrs Roopa J, Asst Professor, Department of Electronics and Communication Engineering for the guidance regarding the project throughout the entire period. We thank all the faculty members of Department of Electronics and Communication, our parents and friends for their continuous support and encouragement throughout the project work.
Page 3
Digital Braille
CONTENTS
TOPICS PAGE NUMBER
Abstract Introduction Theory behind Project System Overview Programmer Design Hardware Implementation Software Implementation Result and Analysis Conclusion Appendix
5 6 7 11 13 18 20
29 31 32
Page 4
Digital Braille
Abstract
The project is the implementation of a product called DIGITAL BRAILLE. This product is aimed at helping the visually impaired people to implement Braille code at ease and also them communicate with the computer. It involves the implementation a key board where inputs are such that it is similar that in the Braille script. The inputs are taken and processed in the micro-controller. They are compared to a certain set of Braille-codes. Depending on the code, suitable output is sent to the computer corresponding to the letter typed by the user.
In terms of system design and development , this study consists of both hardware and software. The hardware used is the DIY Arduino board consisting of ATMEGA168
microcontroller. Along with it , the inputs are given through the six push buttons provided. Programmer used is the USBasp in Arduino -022. FT 232 R is used for serial communication. Codes are written in C language.
Presently , micro-phones are used extensively for the Visually impaired to interact with the computer. This leads to a lot of errors since the input is analog voice . And moreover, in places where they are required to give online exams , special arrangements since answers are through voice.
Page 5
Digital Braille
INTRODUCTION
The main problem of visually impaired people face is to communicate. They cannot read or write as a normal man does. For this reason, Louis Braille developed a different method of reading and writing and this language is called BRAILLE.
BRAILLE is a medium through which the visually impaired people can read and write. However, the visually impaired people find it difficult to use BRAILLE as they have to keep punching many holes in order to write even a single letter or a word. It also takes time for them to read as well as they have to feel the punched holes and then identify each letter and hence the work. This takes a very long time as well as very strenuous task and further more it is difficult to be understood by a common man.
Therefore, our motive is to develop a product which should be an alternative to the current BRAILLE and which can help the visually impaired people to communicate not only amongst them but also among the whole world.
Our main objective is to help the visually impaired people to read and write with ease. We are going to achieve this objective by implementing our product called DIGITAL BRAILLE. Digital Braille is a product used to help the visually impaired people to interact with the computer with the help of, microcontrollers and touch sensors or keypads. The visually impaired people enter the Braille code using the touch sensors with ease as they dont have to punch holes and this Braille code is decoded into the corresponding alphabet.
Page 6
Digital Braille
FORM
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: 1. A character encoding for mapping characters of the French language to tuples of six bits or dots. 2. 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 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
Page 7
Digital Braille
same dots pattern in a different position, e.g. and ), many Braille characters have different meanings based on their context. Therefore, character mapping is not one-to-one. In addition to simple encoding, modern Braille transcription uses contractions to increase reading speed.
Page 8
Digital Braille
PAGE DEMENSIONS
Most Braille embossers support between 34 and 37 cells per line, and between 25 and 28 lines per page. A manually-operated Perkins Braille typewriter supports a maximum of 42 cells per line (its margins are adjustable), and typical paper allows 25 lines per page. A large interlining Stains by has 36 cells per line and 18 lines per page. An A4-sized Marburg Braille frame, which allows interpoint Braille (dots on both sides of the page, positioned out of phase so they do not interfere with each other) has 30 cells per line and 27 lines per page. A refreshable Braille display typically has one line of between 18 and 40 cells, although 80 is possible.
Page 9
Digital Braille
Braille Unicode
Braille was added to the Unicode Standard in September, 1999 with the release of version 3.0. The Unicode block for Braille is U+2800 ... U+28FF: Unicode is a computing industry standard for the consistent encoding, representation and handling of text expressed in most of the world's writing systems. Developed in conjunction with the Universal Character Set standard and published in book form as The Unicode Standard, the latest version of Unicode consists of a repertoire of more than 109,000 characters covering 93 scripts, a set of code charts for visual reference, an encoding methodology and set of standard character encodings, an enumeration of character properties such as upper and lower case, a set of reference data computer files, and a number of related items, such as character properties, rules for normalization, decomposition, collation, rendering, and bidirectional display order (for the correct display of text containing both right-to-left scripts, such as Arabic and Hebrew, and left-to-right scripts).[1] As of 2011, the most recent major revision of Unicode isUnicode 6.0.
Page 10
Digital Braille
SYSTEM OVERVIEW
IMPLEMENTATION
We have 6 variables depicting the 6 dots in the Braille. These 6 keys are used to represent all the alphabets through various permutations. The 26 alphabets are divided in 3 groups of 10, 10 and 6.There is a vast similarity of codes introduced between these groups to have greater simplicity. To distinguish between the alphabets of one group to another, GROUP SELECTORS are used. S3 and s6 are used. Fig.4 Shows the picture of BRAILLE keypad which we are going to use in DIGITAL Braille for entering the Braille code.
The group selectors are implemented as shown in the example below and note the use of line selectors in K and U. Alphabets A B C K U Keys s1 s1,s2 s1,s4 s1,s3 s1,s3,s6
Page 11
Digital Braille
The integral part of DIGITAL BRAILLE is ATMEGA168 Microcontroller. We are using 6 keys keypad to enter the Braille code. The six keys as shown in the fig 6 is used to simulate the six dots of the Braille Cell. After the Braille code is entered in the keypad, the ATMEGA168 microcontroller decodes the entered digital Braille code into English alphabets by using a look up table. . Once the Braille code has been decoded, it is converted to speech using APIs provided by windows. This enables the visually impaired people to keep track of what code they are entering.
Page 12
Digital Braille
PROGRAMMER DESIGN
ARDUINO MICRCONTROLLER BOARD
The Arduino microcontroller board is one of the integral parts of DIGITAL BRAILLE. It is used for programming the ATMEGA168 microcontroller.
Fig 7. Arduino UNO Board Fig. 7 shows the original Arduino UNO board.
However, we have developed our own Arduino board as shown in the fig 8.
Page 13
Digital Braille
components on the board. 3V3: A 3.3 volt supply generated by the on-board regulator. Maximum current draw is 50mA. GND: Ground pins.
MEMORY
The ATmega168 has 16 KB (with 0.5 KB used for the boot loader). It also has 1 KB of SRAM and 512 B of EEPROM.
Page 14
Digital Braille
Additional functions (digital): Serial: 0 (RX) and 1 (TX): Used to receive (RX) and transmit (TX) TTL serial data. These pins are connected to the corresponding pins of the FT232R USB-to-TTL Serial chip. External Interrupts: 2 and 3: These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value. PWM: 3, 5, 6, 9, 10, and 11: Provide 8-bit PWM output with the analogWrite() function. SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK): These pins support SPI communication using the SPI library. LED: 13: There is a built-in LED connected to digital pin 13(active high). The Uno has 6 analog inputs, labeled A0 through A5, each of which provide 10 bits of resolution (i.e. 1024 different values). Additional functions (analog): I2C: 4 (SDA) and 5 (SCL): Support I2C (TWI) communication using the Wire library. Reset: Bring this line LOW to reset the microcontroller.
COMMUNICATION
The Arduino Uno has a number of facilities for communicating with a computer, another Arduino, or other microcontrollers. The ATmega168 provides UART TTL (5V) serial communication, which is available on digital pins 0 (RX) and 1 (TX). An ATmega8U2 on the board channels this serial communication over USB and appears as a virtual com port to software on the computer. The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the Arduino board. The RX and TX LEDs on the board will flash when data is being transmitted via the USB-to-serial chip and USB connection to the computer. A Software Serial library allows for serial communication on any of the Uno's digital pins.
Page 15
Digital Braille
The ATmega168 also supports I2C (TWI) and SPI communication. The Arduino software includes a Wire library to simplify use of the I2C bus; see the documentation for details. For SPI communication, use the SPI library.
PROGRAMMING
The ATmega168 on the Arduino Uno comes pre-burned with a boot loader that allows you to upload new code to it without the use of an external hardware programmer. It communicates using the original STK500 protocol.
Page 16
Digital Braille
The holes are drilled and all the components are placed as shown in fig 10.
Page 17
Digital Braille
HARDWARE IMPLEMENTATION
1. DIY Arduino board with Atmega168 Microcontroller 2. Matrix keypad 3. PCB 4. FT232 CABLE 5. Resistors, capacitors, multimeters 6. Soldering gun
Page 18
Digital Braille
The double throw means that the switch arm has 2 electrical contacts. The normally open contact, typically denoted as NO, is open with the switch not actuated (power may NOT flow through this contact when the switch is in its unactuated state). The normally closed, typically denoted as NC, is closed when the switch is unactuated (power may flow through this contact when the switch is in its unactuated state) and is connected to the ground. When the force actuates the switch, contact closure reverses (power may flow through the NC switch and may NOT flow through the NO switch). Diagram: ||-----C----|/| NO--CNC The power leg is connected to C and the switch leg(s) are connected to the NO or NC or the ground. The 6 keys are named K1, K2, K3, K4, K5, and K6. Key K1 is attached to PIN 2, Key K2 is attached to PIN 3, Key K3 is attached to PIN 4, Key K4 is attached to PIN 5, Key K5 is attached to PIN 6, and Key K6 is attached to PIN 7. Using these six keys, we are implementing Braille code. We have given a some delay while programming and we have to press all the push buttons to enter the required letter within this delay to obtain the required letter else only those buttons which have been pressed within that delay while be considered and the corresponding letter of that code will be displayed. The delay we have given is around 500 milliseconds. Which ever button is actuated, the corresponding input pin will receive a logic one. After the said delay, the output is sent to the serial window using a FT232 cable. This cable is used for converting serial to USB as the USB is attached to the USB port of the computer where we see the output in the serial window.
Page 19
Digital Braille
Page 20
Digital Braille
Page 21
Digital Braille
The above is the flow chart of the code used for implementing Digital Braille using Arduino programmer for programming Atmega168.
Dept of Electronics and Communication, RVCE Page 22
Digital Braille
CODE SNIPPET
/* Initializing the input and output pins of Atmega168 and setting up the baud rate to 9600*/ void setup() { Serial.begin(9600); pinMode(2,INPUT); pinMode(3,INPUT); pinMode(4,INPUT); pinMode(5,INPUT); pinMode(6,INPUT); pinMode(7,INPUT); }// End of setup /* Starting of infinite loop */ void loop() { /* assigning input to the variables */ int a = digitalRead(2); int b = digitalRead(3); int c = digitalRead(4); int d = digitalRead(5); int e = digitalRead(6); int f = digitalRead(7);
Page 23
Digital Braille
if(e&f&!a) { if(!b) { if(!d) { if(!c) Serial.println('G'); //print letter G serially else Serial.println('D'); //print letter D serially } else if(!c) Serial.println('F'); //print letter F serially
Digital Braille
else Serial.println('A'); } else if(!b) { if(!d&!c&f&e) { Serial.println('J'); } else if(!c&f&e) { Serial.println('I'); } } if(f&!e) { if(!a) { if(!b) { if(!d) { if(!c)
Dept of Electronics and Communication, RVCE Page 25
Digital Braille
Serial.println('Q'); //print letter Q serially else Serial.println('N'); //print letter N serially } else if(!c) Serial.println('P'); else Serial.println('M'); } else if(!c) { if(!d) Serial.println('R'); else Serial.println('L'); } else if(!d) Serial.println('O'); else Serial.println('K'); } else if(!b) { if(!d&!c) {
Dept of Electronics and Communication, RVCE Page 26
Digital Braille
Serial.println('T'); } else if(!c) { Serial.println('S'); } } } if(!e&!f) { if(!a) { if(!b) { if(!d) Serial.println('Y'); else Serial.println('X'); } else if(!c) Serial.println('V'); else if(!d) Serial.println('Z'); else Serial.println('U');
Dept of Electronics and Communication, RVCE
Digital Braille
} } if(a&!b&!c&!d&e&!f) Serial.println('W'); /* to give sufficient delay to press all the keys */ delay(500); //print letter W serially
Page 28
Digital Braille
REFLECTIONS
Result
The project demonstrates as to how the visually impaired people can write the Braille code using keypads interfaced with the microcontroller (or computer). The 6 keys on the keypad depict the 6 dots on the Braille cell used by the visually impaired people to write the Braille code. The keypad is interfaced with the ATMEGA168 microcontroller. The required Braille code is entered using the keypad and the input to this keypad is sent to the microcontroller. The microcontroller then decodes the entered Braille code to the corresponding English alphabets and displayed on the serial window. Hence, as the Braille code entered is translated into English, even people who do not know the Braille code can understand what the visually impaired people are writing. The following are the results we have obtained from the implementation of the DIGITAL BRAILLE.
Digital Braille
0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
0 0 1 1 0 1 1 0 1 0 0 1 0 1 1
1 0 0 0 1 1 1 1 1 0 1 1 0 0 0
0 1 1 0 1 1 0 1 1 0 0 1 1 1 0
1 1 1 1 1 1 1 0 0 1 1 0 1 1 1
L M N O P Q R S T U V W X Y Z
L M N O P Q R S T U V W X Y Z
Learning
There are millions of visually impaired people around the world and these people find it difficult to write the Braille code as they have to keep punching holes on the Braille cell. As students, we feel privileged to have developed a product which helps the visually impaired people to easily write the Braille code and also interact with other people. Our programming and logic analyzing skills were tested and bettered as we coded for the project We learnt a great deal with certain aspects of controllers as we implemented our theoretical knowledge and also expanded our horizons to the practical world. Finally, we learnt to work as a team and support each other through the course of the project.
Dept of Electronics and Communication, RVCE Page 30
Digital Braille
CONCLUSION
The project successfully demonstrates the implementation of the Braille code using microcontrollers. Digital Braille can be implemented on large scale due to the following advantages: It mainly helps the visually impaired people to enter the Braille code with utmost ease as they dont have to keep punching holes on the Braille cell on the paper. Since the entered Braille code is converted to corresponding English words, people who do not know Braille can also understand what a visually impaired person is typing in the Braille code. During any exams, the visually impaired people are given external help by appointing a person to write down the answers for them. With the implementation of the Digital Braille, this problem is solved as the visually impaired people need not have external aide to write his answers. This is because the entered Braille code is converted to English or for the matter any corresponding language and it is easy for the examiner to understand what answers the visually impaired people have written. Digital Braille thus helps the people to live independently and dont have to rely on others for written any exams. It is one time investment which can be used throughout the life time.
Page 31
Digital Braille
APPENDIX
ATMEGA168 DATASHEET
We are using ATMEGA168 microcontroller for implementation of DIGITAL BRAILLE. The following are the features of ATMEGA168 microcontroller: Features: High Performance, Low Power Atmel AVR 8-Bit Microcontroller Advanced RISC Architecture 32 x 8 General Purpose Working Registers Fully Static Operation Up to 20 MIPS Throughput at 20MHz On-chip 2-cycle Multiplier
High Endurance Non-volatile Memory Segments 16KBytes of In-System Self-Programmable Flash program memory 512 Bytes EEPROM 1KBytes Internal SRAM Write/Erase Cycles: 10,000 Flash/100,000 EEPROM Optional Boot Code Section with Independent Lock Bits In-System Programming by On-chip Boot Program True Read-While-Write Operation
Peripheral Features Two 8-bit Timer/Counters with Separate Pre-scalar and Compare Mode One 16-bit timer/Counter with Separate Pre-scalar, Compare Mode, and Capture I/O and Packages 23 Programmable I/O Lines 28-pin PDIP
Speed Grade:
Page 32
Digital Braille
0 - 4MHz@1.8 - 5.5V, 0 - 10MHz@2.7 - 5.5.V, 0 - 20MHz @ 4.5 - 5.5V Active Mode: 0.2mA and Power-down Mode: 0.1A Power-save Mode: 0.75A (Including 32kHz RTC)
Page 33