Yujun’s Status Report for April 27, 2024

What did you personally accomplish this week on the project? Give files orphotos that demonstrate your progress. Prove to the reader that you put sufficienteffort into the project over the course of the week (12+ hours).

This week I mostly practiced presenting the final presentation for the class and gave out the final presentation on Wednesday. Furthermore, I contacted 5 students from CMU to conduct user-testing for my Web-app. 5 students evaluated the web app on how easy it is to use on a scale of 0 to 10 and evaluated it also on how self-explanatory it is. The evaluation was able to get an average of 8.75 points out of 10 and I realized one way I could improve the web app is by adding a introduction/how to use pop up that can help users get familiar with the web app easier.

Is your progress on schedule or behind? If you are behind, what actions will betaken to catch up to the project schedule?

The progress is slightly behind with the difficulty of the motor testing. Samay is currently working on controlling the motor with the Velocity mode instead of the stepper mode and he is planning to use all the time till final demo is due to smoothen out the motor code.

What deliverables do you hope to complete in the next week?

By next week we plan to have our final demo fully working (1-2 braille cells) and a poster ready for the deliverable.

Yujun’s Status Report for Apr 20, 2024

What did you personally accomplish this week on the project? Give files orphotos that demonstrate your progress. Prove to the reader that you put sufficient

I finished the web-app for the project where the user is able to input their words directly into the braille pad. We decided to input words this way to reduce the tediousness of creating a txt file and then inputting the txt file into the webapp. With the web-app now directly taking input from the user by typing the words in, the user is now able to see all the words that are transported into the braille pad and delete them as necessary.

Is your progress on schedule or behind? If you are behind, what actions will be

The progress is slighted behind with the motor and braille integration still incomplete. We are to finish this task by tomorrow before the final presentation. As we have faced many mechanical issues with the braille pad we will be continuously testing our actuation method with the plethora of gears and motors we obtained a few days ago.

What deliverables do you hope to complete in the next week?

By next week, we hope to finish our final presentation, as well as the report (software part for me). Futhermore, I wish to do a final test on the serial communication between the webapp and the arduino board to ensure that we meet the user case requirement.

  • As you’ve designed, implemented and debugged your project, what new tools or new knowledge did you find it necessary to learn to be able to accomplish these tasks? What learning strategies did you use to acquire this new knowledge?

To implement the web app I had to learn how to create a website in javascript and html from scratch. To do so, I had to learn the html and javascript language as well as the library that allows a javascript to run a python file. To acquire these skills I have delved into youtube tutorials on creating various websites to understand how HTML code works to format a website. In addition, I explored libraries posted on shecodes.io where extensive documentation on library functions could be found with examples. Lastly, I found asking for verbal guidance from friends in the industry very helpful where they gave advice on which language or framework to use for creating a website(ex: typescript vs javascript vs Flask on python).

Yujun’s Status Report for April 6th, 2024

What did you personally accomplish this week on the project?

I researched on various web application making tools and decided to stick with flask for its usability and compatibility with python which is the language the translation algorithm is made on. So far, I’ve created a simple web page with a text box which can take inputs from the user and store the input data within the web page domain. Next week, I plan to create a fully function web page that is able to generate a prompt for the user to type in the input or upload a txt file, and is able to generate a braille encoding file from the input.

In particular, how will you analyze the anticipated measured results to verify your contribution to the project meets the engineering design requirements or the use case requirements?

The anticipated results for testing of the web application and braille translation algorithm is as following:

– Translation Reliability : close to 100%

– Data transfer reliability: 95%

Right now, I have already tested the translation algorithm on 5 iteration of testing, each on varying types (braille-contractable, non-braille-contractible, prefixed words, short words, long words.) For each type 20 random words were chosen from a word generator online. On every iteration of testing, the translation algorithm yielded a 100% accuracy which was verified through pre-existing verified braille translation websites. The comparison was possible through a temporary display function made for testing which translated the encoding to the computer terminal. Thus, it can be said that the accuracy of the translation met the translation reliability use case requirement, and we do not have to consider the ethical concerns for the project that pertains to translation inaccuracy and unreliabilty.

In the future, I will be testing the reliability of the data transfer between the web application and the braille pad. To be reliable we decided that if we input 100 words, at least 95 words should be able to be transferred successfully to the pad as based on a normal person’s learning curve, around 70 words and braille patterns can be fully memorized within a full school day at most. Thus, our 95% is sufficient for reliability. To test this we will iterate the transfer of 100 word inputs to the braille pad 10 times via wifi transfer to find the average. If the wifi transfer fails the test, then we will resort to serial bus transfer (higher accuracy) as a back up plan.

 

Yujun’s Status Report for March 30th, 2024

What did you personally accomplish this week on the project?

This week, I helped Samay in implementing my braille translation code to the motor code to enable a successful integration between software and the hardware. To effectively map out the motors to the translation output encoding, I designed my code to output a txt file in binary format which could be easily read by Samay’s Arduino code and explained what each bit signifies within the encoding:

4 bits per motor:

1st bit: bottom motor

2nd bit: middle motor

3rd bit: top motor

4th bit: end of word marker

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

In terms of the software part, the project is on schedule, yet there is a potential for the hardware to miss the demo deadline due to the fact that the 3D printing output requires extreme precision to carry out the motions required by the sliders and actuator pins. To prevent any delays, I plan to communicate with Ziyu to provide assistance towards testing the casing for the braille actuators.

What deliverables do you hope to complete in the next week?

Next week we are planning to purchase a mini speaker to attach to our microcontroller and I’m planning to implement the code for the speaker so that it can successfully read out the braille translation outputs to the user. Furthermore, I am planning to research on wifi file transmission libraries for the microcontroller since our microcontroller is compatible with wifi.

 

Yujun Lee’s Status Report for March 23rd, 2024

This week I was able to finish up the translation for grade 2 braille and finish the testing stage of the algorithm. The input can now be translated and outputted in a arduino readable encoding, and outputted out in the form of bin file for reduced memory.

I am on schedule for my tasks, but for next week where we need to integrate the software into the hardware, it could be delayed as we were only able to obtain the materials this week., By next week, I’m planning to have the code fully integrated into the hardware n components, but that is not possible until we have gotten the stepper motor pair and the aruduino set up.

Yujun Lee’s Status Report for March 16th, 2024

What did you personally accomplish this week on the project?

  1. After finishing the braille translation algorithm. I created Test cases and tested the braille translation. The translation was able to reach 100% accuracy based on 70 different test cases. Grade 2 braille translation is still on the work, and it will be finished by Sunday.
  2. Created a braille display function which allows us to visualize the translation encoding output to see whether the algorithm is outputting the correct output to the board before we start to implement the software to the hardware. Example of the algorithm displaying the encoded output of the text2braille algorithm with the input “Hello World”. 1 denotes actuation, 0 denotes the opposite, “x” denotes new word.

Is your progress on schedule or behind?

Our progress was behind this week, but we were able to make amends by placing all our orders immediately on Monday, and having the braille translation algorithm be ready for implementation. We were able to test the braille algorithm in a speedy fashion. Since the progress this week went through in a fast pace, I am planning to run more test cases in my free time to make sure I didn’t miss any edge cases. 

What deliverables do you hope to complete in the next week?

For next week, I will code the arduino which we ordered this week so that the braille encoding are properly mapped to the motor. Furthermore, I will implement the speaker library to the arduino code to read out the arduino input.

Yujun Lee’s Status Report for March 9th, 2024

What did you personally accomplish this week on the project?

  1. After finishing the planning and structuring for the braille translation algorithm, I finished a initial version of the diagram representing the user-flow of the web-app.
  2. Design report writing.

Is your progress on schedule or behind?

Our schedule ended up being behind due to a teammate’s incompletion of the report, yet the set back is trivial and we have finished the final version of the design report. To make sure none no more set backs are in the future, we plan to communicate more effectively over slack and make sure to have a meeting an hour or two before any deliverable due date to ensure that we are all on page and everyone is on track with the work division requirement for the specific deliverable.

What deliverables do you hope to complete in the next week?

Even though it is not a specific deliverable, I plan to familiarize myself with web development through reading through flask libraries and web-app implementation tutorials. Moreover, I plan deliver a test plan for the braille translation algorithm, including the test cases, and the tester python file to ensure its robustness before integrating with the hardware.

Yujun’s Status Report for Feb 24th, 2024

This week, I mainly dealt with our change in design for the braille printer. I began coding the braille translation in python and is able to change each braille pattern into a 6 bit data encoding.

Furthermore, I researched more into brailles and found that grade 2 brailles are used commonly for experienced braille readers and it is normally the grade of braille used in the public. There are 26 new patterns that have to be incorporated for grade 2 braille and they serve as abbreviations for commonly used sequence of letters. While my plan is to implement grade 2 to our braille learning tool, it could be against the purpose of the project which is to start with basic braille and allow the students to have a easy jump into the braille language.

In order to stay on schedule, I am to start learning how to convert the python logic into one that is applicable to the arduino used for our hardware.

Next week, I am planning to discuss the use of grade 2 braille with my teammates and decide on whether to implement it to our code or not. Furthermore, it is our plan to fully decide on how to decode these braille encodings back into patterns for the sliders to read and display (most likely through the uses of multiplexers and decoders).  In other words, we are to have a concrete idea on the functionality of the programs needed for the hardware as the software next week, and finish purchasing the hardware components needed for the project. Personally, I have to come up with a way to decode the encoding into a readable format for the hardware.

 

What is Braille? [Your Guide to Braille] - Braille Works

Yujun’s Status Report for Feb 17th, 2024

This week, I mainly worked on researching the hardware side of the project despite being in charge of the software due to the fact that the hardware implementation of the braille grid was more complex than we assumed.

We were behind the schedule in the beginning of the week, yet we caught up by having an extra meeting on Friday morning where we researched together and finalized our design. The only issue is that we  couldn’t order any components we thought of last week as our hardware design changed significantly.

The original design which used solenoids to push brailles turned out to be too costly in terms of power input. The amount of power it needed to hold all of the solenoids could also generate a lot of heat in the process. Thus, I presented an idea I found on the web which used a  a stepper motor which would slide a long block that contained all the braille push patterns on it.  Thus, we now only need two motors per braille cell.

In terms of the software, I pseudocode of the translation was made which takes a braille to alphabet data and translates each alphabet to 2 numbers. For each column, there are 6 braille patterns possible and for each one of them a number was assigned.

By next week, I need to finalize the translation part of the code which is only possible when we as a team finalize whether we are going to use a raspberry pi or an arduino based on the complexity of our implementation.

Yujun Lee’s Status Report for Feb 10, 2024

This week I was able to talk to the CMU librarian about existing support for the visually impaired. Coupled with additional research done on the braille language, I was able to become familiar with the general structure and the standards for braille and also realized that our product is indeed needed for the blind population.

The progress of myself as well as the team is on track and to make sure we are on schedule in the future we are going to meet at least once outside of the class time provided to us every week. We also have been communicating regularly over slack and messages to ensure we are on track.

By next week I plan to have the braille database ready to use for the software, and find ways to encode the braille patterns into a matrix or find a more data-efficient way of storing the patterns to reduce memory usage.