B RAILLE D ISPLAY Katie and Kara Chylinski Advisor: Professor Hedrick March 5, 2005
O UTLINE Background The Problem Our Objective Design Process Final Design Results Conclusion
I NTRODUCTION Braille AlphabetBraille Display
M OTIVATIONS Combine past class work Include a variety of topics Solve a problem Beneficial to people with disabilities Have fun!
P ROJECT G OAL Concerns:inexpensive, adaptable, portable
S YSTEM M ODULES Convert printed page to bitmap Convert bitmap to ASCII characters Change ASCII to Braille dot pattern Send dot pattern to display unit
M ODULE D ESIGN P ROCESS Environment: Linux Collecting bitmap: SANE Converting bitmap: GOCR Driver hardware: Cynagal C8051 Microcontroller This module technique allows us to change each component.
D EVELOPMENT S YSTEM Scanner Power Supply Display Cell Circuit Program Microcontroller C++ Program Text
D ESIGN P ROCESS 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
R ESEARCH Freedom Scientific Pulse Data ALVA Metec
A CTUATORS SolenoidsPiezoelectricSpeakers Cost +-++ Size +++- Voltage -+++
P ERFOMANCE C RITERIA Cell Dimensions: Between dots: 2.54 mm Dot height:.5 mm Between cells: 3.75 mm Changing speed
S OLIDWORKS S KETCH
D ETAILED S KETCH
S CANNER AND OCR Devices –Epson SCANNER GT-8500 –GOCR 0.39 Procedure –Scan in Text –Use Optical Character Recognition –Create “out.txt” File
M ICROCONTROLLER RS232 Port Serial Port Data Communication Protocol Program
WAIT R SEND CHAR WAIT S SEND R WAIT CHAR SEND S R char S
P ROGRAM // 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 ++ P ROGRAM 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 ++ P ROGRAM /* Change ASCII to Braille */ switch (int(next)) { // Lower Case Letters case 101: case 69: // e portchar = 0x11; write(port, &portchar, 1); break; case 116: case 84: // t portchar = 0x1e; write(port, &portchar, 1); break; case 97: case 65: // a – portchar = 0x01; write(port, &portchar, 1); break;
D RIVER C IRCUIT
R ESULTS
a
b
c
T OTAL C OST Scanner: $50 Microcontroller: $150 OCR software: free 6 Solenoids: $20 Circuit components: $10 Casing materials: + $20 $250
S UMMARY
F UTURE W ORK Finish mechanical casing Improve scanner Improve OCR Run SANE from C++ program Make portable
R EFERENCES
A CKNOWLEDGEMENTS Professor Hedrick Eugen Schäfer Roland Pierson James Howard Gene Davison
Q UESTIONS?