Braille Keyboard Finds Its Voice

If you have a serious visual impairment, using a computer isn’t easy. [Dhiraj] has a project that allows people fluent in Braille to use that language for input. In addition to having a set position for fingers, the device also reads the key pressed as you type. With some third party software it is possible to even create Word documents, according to [Dhiraj].

You can see the finished product in the video below. This is one of those projects where the idea is the hardest part. Reading six buttons and converting them into characters is fairly simple. Each Braille character uses a cell of six bumps and the buttons mimic those bumps (although laid out for your fingers).

Our thoughts are that it might be nice to have some tactile feedback on the first switch since the intended users probably can’t see the switches. Perhaps the audio sounds a little rough, but that could have been the speakers. Maybe also a dedicated spacebar and an easier way to select letters vs figures without moving your hands might be nice, too. None of that would be hard to fix.

The code was quite simple, though we can see that you might get some false keystrokes. Every 250 milliseconds the Arduino reads the seven input switches (the seventh switch is the letters/figures select). Then a giant if statement decodes the letter. Just stylistically, we would have probably built a number and used it to select from an array, as with 7 switches it would consume just 128 bytes. More importantly though we would probably wait for at least one on to off transition to start the decoding. The switches are active high, so we’d probably write something like this:

unsigned code,oldcode;
code=oldcode=0;
do {
   oldcode=code;
   code=read_button_code();  // get current code
   } while (oldcode<=code);
// process oldcode

If this looks confusing, try a few examples (you can do that online, too). At first, the oldcode is zero so code will never be less than that (note the integers are unsigned). As long as bits keep getting set, code will be greater than or equal to oldcode. However, if any bit goes from 1 to zero then the total magnitude of code must be less than oldcode. That triggers the processing. Of course, you might also want to debounce the switches in read_button_code to make sure you have a stable input, too.

Still, what a great and useful idea it is, and one easy enough to build on the original design. We’ve seen a Braille tablet before. If you have some spare space on your next PCB, you could always replace some community signs.

9 thoughts on “Braille Keyboard Finds Its Voice

  1. These are great projects. A student of mine did one a few semesters back. She used a solenoid to thump the keyboard as feedback that your chord was accepted. The USB HID support on the Arduino Pro Micro was all it took to make the thing look like a keyboard. The speech output in this one is a fun addition.

  2. 1. There should be dedicated spacebar button and backspace button.
    2. In Braille upper case is selected with prefix symbol. The sane goes for numbers.
    3. I’ve never seen a Braille keyboard or typewriter that needed to mark any of its buttons.
    4. There are commercial solutions, keyboards with tactile displays, and even electronic notepads with build-in voice synthesizer and ability to store files in internal or external memory, read text documents and some ebook formats aloud, etc. For example you can google for “Kajetek” – a device my blind friend used for years…

  3. Is it actually easier for a blind person to use a braille keyboard than a normal one? It seems like it would involve a similar amount of learning, and a normal keyboard would be faster in the long run.

  4. As a ham radio operator for more than thirty years I’ve watched blind people accomplish some great things without much help. I always sent my QSL card to them with my call sign in braille. When I was young enough to ride a tandem bike one of the active members of our computer chat group owned a tandem and was always searching for captains.

    1. Because you don’t have to. Left hand types left side of Braille letter in order from top to bottom, and the right one does the right side of that letter. Any person using Braille will know, which button is which. There should also be space bar, a backspace button, and probably CR/LF button too. I actually learned Braille when I was a teenager, but never had a reason to use it so I forgot most of it. It’s easy to touch-type if you are using only six buttons for any letter, number or punctuation/symbol…

Leave a Reply to Hirudinea Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.