Final Project: March 19, 2014
Accessibilty: Learning Braille for visually imparied Kids
I had explored the sense of touch in my low fidelity prototype.
Now I wanted to explore the sense of hearing...
Now I wanted to explore the sense of hearing...
After a few late nights, my prototype was ready to test
Work Flow:
Arduino based breadboard will have six button in braille formation
Kids will press the button trying to enter alphabets
Arduino will recognize the pressing pattern
When a patter matches an alphabet - voice feedback will be provided to the kid.
Problems:
The option I was aware of to play music files (using SD card) was known to be very unreliable. After some research and talking to my professor I learnt about Processing. Its basically a programming language that works well when trying to communicate with an Arduino. I would detect alphabets from Arduino and relay them to Processing. Processing will recognize what alphabet was pressed and play an audio file for the alphabet.
Easy!
Process:
- Play a file using Processing
- Establish communication channel between Arduino and Processing
- Read Arduino output on Processing
- Play a particular file based on Arduino Output
- Recognize braille alaphabet patters using 6 buttons on Arduino
- Communicate the recognized alphabet to Processing
- Play specific alphabet files on Processing based on the alphabet read from Arduino
- Test, Test Test.
I had set up an apointment for user testing on Thursday morning so I had no time to waste.
Arduino based breadboard will have six button in braille formation
Kids will press the button trying to enter alphabets
Arduino will recognize the pressing pattern
When a patter matches an alphabet - voice feedback will be provided to the kid.
Problems:
The option I was aware of to play music files (using SD card) was known to be very unreliable. After some research and talking to my professor I learnt about Processing. Its basically a programming language that works well when trying to communicate with an Arduino. I would detect alphabets from Arduino and relay them to Processing. Processing will recognize what alphabet was pressed and play an audio file for the alphabet.
Easy!
Process:
- Play a file using Processing
- Establish communication channel between Arduino and Processing
- Read Arduino output on Processing
- Play a particular file based on Arduino Output
- Recognize braille alaphabet patters using 6 buttons on Arduino
- Communicate the recognized alphabet to Processing
- Play specific alphabet files on Processing based on the alphabet read from Arduino
- Test, Test Test.
I had set up an apointment for user testing on Thursday morning so I had no time to waste.
Usability Testing:
Rounnd 01
- Cindy: Kids may require too much strength to press the buttons
- Cindy: "I absolutely think the interaction was very easy to learn and the tool is very intuitive"
- Cindy: "Lot of reason why students with disability are behind are because there are not enough tools that are affordable and intuitive for learning like this one"
Rounnd 02
- Jarad: Regular keyboards have finger orienters on "F" & "J" to ensure users fingers are well oriented to the keyboard, it would be nice to have a reference point for a braille keyboard as well.
Rounnd 03
Rounnd 03
- Demo day user: My keyboard is horizantal, this keyboard is awkardly placed to use six fingers vertically, could I have an option to align these 6 buttons horizantally?
Learnings:
- It was very fruitful to see how quickly I could build a fairly robust and working prototype.
- Learning a language is not easy.
- Electornic prototypes provide a level of sophistication that can easily convince users quickly. There was high delight on users faces when they learnt this was built in a few days.
- Using a library like minim which is not completely matrure or has a known good set of examples was challenging. I saw a set of examples in the library but all online adoptions used something differnt API's. Eventually I worked through a combination of them to understand how to load files.
- Arduino had a simple program organizatoin setup(), loop() which is well documented and easy to undersand. Being a designer it was hard for me to orient quickly to a new programming language with a different set of functions. I ended up using - setup(), serialEvent(), draw(), stop() however it took me a long time to arrive at these.
Problem: Every alphabet mp3 file would play only once. I added log statements that identified alphabets were detected at Arduino as well as Processing. However, files would not play.
Solution: Every loaded files can be played only once. If you have to play it again use the rewind function in minim
Problem: Buttons were very flaky in press detection
Solution: Use resistors to ensure current is passed to ground.