BRAILLE DISPLAY
Katie and Kara Chylinski
Advisor: Professor Hedrick
March 5, 2005
OUTLINE
• Background
• The Problem
• Our Objective
• Design Process
• Final Design
• Results
• Conclusion
INTRODUCTION
Braille Alphabet Braille Display
MOTIVATIONS
• Combine past class work
• Include a variety of topics
• Solve a problem
• Beneficial to people with disabilities
• Have fun!
PROJECT GOAL
Concerns: inexpensive, adaptable, portable
SYSTEM MODULES
Convert printed page to bitmap
Convert bitmap to ASCII characters
Change ASCII to Braille dot pattern
Send dot pattern to display unit
MODULE DESIGN PROCESS
• Environment: Linux
• Collecting bitmap: SANE
• Converting bitmap: GOCR
• Driver hardware: Cynagal C8051 Microcontroller
This module technique allows us to change each component.
DEVELOPMENT SYSTEM
Scanner
Power Supply
DisplayCell
Circuit
Program
MicrocontrollerC++ Program
Text
DESIGN PROCESS• Research• Compare actuators• Design sketches and performance criteria• Configure scanner and optical character
recognition (OCR)• Use microcontroller and RS232 port• Program code changing ASCII to Braille• Construct driver circuit
RESEARCH
• Freedom Scientific
• Pulse Data
• ALVA
• Metec
ACTUATORS
Solenoids Piezoelectric Speakers
Cost + - ++Size + ++ -
Voltage - + ++
PERFOMANCE CRITERIA
• Cell Dimensions:• Between dots: 2.54 mm
• Dot height: .5 mm
• Between cells: 3.75 mm
• Changing speed
SCANNER AND OCR
• Devices– Epson SCANNER GT-8500– GOCR 0.39
• Procedure– Scan in Text– Use Optical Character Recognition– Create “out.txt” File
MICROCONTROLLER
• RS232 Port
• Serial Port
• Data Communication
Protocol
• Program
SEND@
WAITR
SENDCHAR
WAITS
WAIT
WAIT@
SENDR
WAITCHAR
SENDS
Linux Microcontroller
@
R
char
S
PROGRAM
// receive example: // a '1' turns LED on; a '0‘ turns LED off.
P2MDOUT = 0xff; XBR2 = 0x40; P2 = 0x00;
while (1) { input_char = _getkey(); if (input_char == '@') { putchar('R'); //get the braille character input_char = _getkey(); putchar('S'); P2 = input_char; } }
C++ PROGRAM
• Algorithm
• Set baud rate
• Open output file from scanner
• Read in first character
• Communicate with microcontroller
• Check if capital letter or number
• Write to port binary sequence
C ++ PROGRAM
/* Change ASCII to Braille */ switch (int(next)) { // Lower Case Letters case 101: case 69: // e - 010001 portchar = 0x11; write(port, &portchar, 1); break; case 116: case 84: // t - 011110 portchar = 0x1e; write(port, &portchar, 1); break; case 97: case 65: // a – 000001
portchar = 0x01; write(port, &portchar, 1); break;
TOTAL COST
Scanner: $50
Microcontroller: $150
OCR software: free
6 Solenoids: $20
Circuit components: $10
Casing materials: + $20
$250
FUTURE WORK
• Finish mechanical casing
• Improve scanner
• Improve OCR
• Run SANE from C++ program
• Make portable
REFERENCEShttp://dots.physics.orst.edu/gs_index.htmlhttp://jocr.sourceforge.net/http://www.aagi.com/http://www.allelectronics.com/http://www.alva-bv.nl/alvacorp/alva_corp_home.asphttp://www.askoxford.com/asktheexperts/faq/aboutwords/frequencyhttp://www.braillenet.net/accessibilite/livreblanc/english/affbraille.htmlhttp://www.freedomscientific.com/http://www.htwm.de/acmc/mcmodule.htmhttp://www.k10k.net/issues/issue059/golan/dakadaka/braille.htmlhttp://www.kgs-america.com/bc.htmlhttp://www.metec-ag.de/english.htmlhttp://www.nec-tokin.com/english/product/sekisou_e/pa_features.htmlhttp://www.pulsedata.com/http://www.sane-project.org/http://www.vesid.nysed.gov/lsn/stvnews/fall03.htm
ACKNOWLEDGEMENTS
Professor Hedrick
Eugen Schäfer
Roland Pierson
James Howard
Gene Davison