With Valentines day just behind us, we found ourselves thankful for the handwritten notes we had received from our loved ones. Those heart-warming notes are so small, yet so impactful. But it occurred to us that those with visual impairments or blindness may not be able to enjoy and keep these memorable mementos. After looking around online, we realized there was no easy, cheap, affordable way to write out letters in braille. So we knew we had to come up with something Braille-iant.
What it does
There are two main parts to the project. The front-end is a website where people can write messages and choose cards to send those messages on. You can even attach an original image and, through the power of computer vision, we can detect what that image is and describe it in a way a blind person may understand. Once you've chosen your message, your card, and previewed it, you can then move on to the second part of the project. It's super simple, just press the PRINT MESSAGE button! Watch as the printer next to it prints out your heartfelt message on standard paper with up-to-date braille specifications and standards. Now you have a handwritten note that even your loved ones who are blind can read.
How we built it
The front-end was built with Python, Flask, and Bootstrap. We also used GCP for hosting and GCP/Azure for the computer vision. For the hardware, the first thing we did was mount the linear rails for the x-axis. From this, we started designing and 3D printing mounts to support the stepper motors that would drive the carriage on the y-axis and the y-axis itself. With the linear rails and stepper motors in place, we mounted motion specific electrical components and set-up the drive belts for each axis. With the motion hardware done, we began to focus on the print head. This is what would allow braille to be imprinted on the paper. We experimented with different print head designs, and eventually landed on using a 3D printed, dull point pencil-like structure. With the mechanics finished, all that was left to do was code it to move and print braille. Easy, right? Totally joking. Which leads us to the next point...
Challenges we ran into
The first challenge was calibrating the x and y axis to move in metric increments. We had to determine what fraction of a stepper motor rotation corresponded to 1 mm so that we could comply with braille standards. Figuring out how to punch the holes without tearing the paper was also extremely difficult. We experimented with quite a few ideas, including cardstock and foam, until we found a way to do it with regular paper. It was a lot of struggling to get the z axis print head to correctly print braille. Trial and error was our best friend and possibly worst enemy. We also ran into issues trying to securely mount the paper to the printer. The print head would often adjust the paper's location, causing the braille to fall out of braille specifications and get messed up. Converting string characters into machine-readable commands to output braille characters was also really difficult. Communicating between the front-end and hardware has also been really difficult. But we managed to pull through and we couldn't be more proud.
Accomplishments that I'm proud of
We actually learned a lot about braille throughout this whole thing, which was really cool. Being able to follow braille specifications might be our proudest moment. We seriously could not be more proud of this project - we made a braille printer that communicates easily with a front-end web service! None of us thought it would be possible. But we believed. We persevered. And we made a really amazing prototype. We're really proud that we were able to get every feature we wanted implemented in such a short amount of time. This prototype is honestly really close to what we imagine the final product would be like!
What we learned
Braille. Mostly! We learned a lot about web development and communicating between hardware and software. We also learned a lot about G-code, printing, and 3D printing. Every step of the way was essentially learning new things, and we're so happy we got to do it.
What's next for Braille-iant
We'd like to make the printer look prettier. The front-end and computer vision could also be updated to become more robust. Making it easier to feed in paper and take paper out would also be really nice. But overall, we're really happy with the product!