Zeynep’s Status Report for 11/18

This week I worked on refining the web-app and hosting it on a domain, debugging the web-app to solenoid pipeline, and starting the arduino code for the stepper motors.

Joshna and I visited the LAMP Library on Tuesday to get some user feedback for the webapp. Overall, the participants were happy with the design/layout of the web-app and were able to navigate it with ease. They suggested some small tweaks which I am currently implementing. I also worked with Joshna to debug some issues in the web-app to solenoid pipeline when communicating with the arduino using the RPi. We had some issues with how the signals were being sent to the arduino and we worked to debug that. We now have a fully working webapp to solenoid pipeline. Our next step is include the stepper motors into this pipeline. I have begun writing the arduino code for the stepper motors. My goal is to have this complete before Thanksgiving to give to Becky to work with for the electromechanical system.

Joshna Status 11/18/2023

This week I worked on the entire pipeline from the frontend notes or websearch to the arduino controlling the solenoids which consisted of a lot of time spent on figuring out how to communicate between the rpi and arduino over serial. I also changed the actual code of how it was translating signals from the lists of combinations to make it more efficient and I debugged some translation issues since our goal is to get it to 100% accuracy. I started debugging and integrating the backup google search feature as well as working on a button that talks directly to the rpi in order to decide things like uncontracted vs. contracted braille and jumbo vs. normal text size based on user feedback.

Zeynep and I visited LAMP on Tuesday to get participants to meet with us 2 weeks from now for a more in depth user testing session and also to get basic feedback which helped us improve usability and also realize the parts that were working well like how easily apple’s existing voiceover function allows users to figure out our website.

In the next week or so, I plan to webscrape backofthebox.com and integrate it with the currently functioning database so we have a larger database. I also plan to finish work on the google search function so that it gets the important information from the searches and not just the entire html. I plan to implement a cache with the 100 most recently searched products. Lastly, I plan to create a file that stress tests the translations. Right now, I have a random generator for me to test one at a time and compare but I would like to have it automatically compare against existing websites that translates characters to a braille image. I am currently on schedule and wrapping up everything I need in order to meet our goals for this project.

Team Status Report for 11/18

Explain how you have grown as a team, and detail some of the strategies you have used to establish goals and plan tasks so far this semester.

Throughout the semester, we have greatly improved our communication and collaboration as a team. At the beginning of the semester, we had difficulty agreeing on a project idea and communicating our thoughts. We were making slow progress and had difficulty moving forward on some aspects of our project early on. Over the course of the semester, we have greatly improved in our ability communicate our ideas and work together. Some strategies we employ as a team to ensure strong communication and collaboration between team members include frequent checkins, updates every day about progress and encouraging team member progress, and collaborating on problems across sub-systems. For example, everybody is involved in discussions about the optimal way to design the front end and discussions about design choices on the electromechanical embosser. We have weekly meetings every Friday to discuss weekly progress and goals for the next week. These meetings allow team members to understand what other team members have been working and help us understand what needs to be done for the next week. We also establish goals and plan tasks by considering what has been accomplished in a week and gauging what gaps still need to be filled, which in part is also guided by our Gantt chart. At this point in the semester, our goals are also guided by testing we have coming up. For example, we had a goal to have the front-end completed by this Tuesday for a demo. We have another goal of having the entire electromechanical embosser pipeline complete for an upcoming demo after Thanksgiving.

Some weekly progress updates from our team: Joshna and Zeynep went to the LAMP Library on Tuesday to perform some user testing on the UI, and Zeynep is currently working on integrating some of the feedback. Overall, the users were happy with our interface and were able to navigate it with ease. We have also been working on completing the mechanics of the device, which includes laser printing the box, establishing the tension system, and integrating the hardware and software. As of right now we have established the web-app to solenoid pipeline and are currently working on integrating the stepper motors.  In the upcoming weeks, our primary focus will be integrating all of the sub-systems and testing our embosser.

Becky’s Status report for 11/11

ABET #6 says … An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions

Now that you are entering into the verification and validation phase of your project, provide a comprehensive update on what tests you have run or are planning to run.  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? 

I’ve worked on the X/Y gantry system and the circuit design components of the project. The relevant requirements for me have to do with tolerances printing the braille and speed.

Mechanical Precision & Functionality: I will test to ensure that the placement of the gantry system allows for embossing, that the x gantry isn’t too close to the compliant surface. I need to test various compliant surfaces and select the best one. So far I have tested felt, styrofoam, and 1 grade of low density foam.

Usability: I need to test that our user can be able to determine which side the paper goes in quickly. I have created a texture that will be tested at this week’s LAMP demo, and we will get feedback there on its effectiveness.

PCB Testing: The PCB is set to arrive next week, and we will need to verify that it does all of the things we think it will do.

IR Sensor Placement: IR sensors are susceptible to reflective surfaces, so we need to do testing to see what position will not get bad signals from  reflecting off of the acrylic. This is important to our requirement tests because the IR sensor actually verifies that the paper has been placed in correctly.

Weekly Update:

I redesigned the PCB to be Arduino compatible given our team’s recent decision to switch the hardware over to be controlled by an Arduino, and communicate over UART to talk to the Raspberry Pi. The PCBs will be arriving just before Thanksgiving, so we will be able to test them during the break.

I ran into issues with the stepper motor circuit this week during demo. The current limiter circuit appeared to be not functional, and I did not have the tools I needed to do further testing during the demo.

Next week, I plan to build the Y axis component. I reached out to Zach from Ideate, and he will be bringing be a broken printer to take apart and get the rollers out of.

Zeynep’s Status Report for 11/11

ABET #6 says … An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions

Now that you are entering into the verification and validation phase of your project, provide a comprehensive update on what tests you have run or are planning to run.  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? 

My individual components included designing the embosser system with solenoids and creating the web-app. The use-case requirements that my components cover include fast delivery of braille, accuracy of embossing, and providing an accessible interface. Our speed requirement was driven by the time it takes a user to manually emboss braille using a braille writing slate. Based on user interviews prior to starting our project, we determined that it takes 15 minutes to write a full page of braille on a braille writing slate and we required the braille printing process of our device to take at most 10 minutes. To design for this, we required our solenoids actuated at < .5s. We also required 100% readability of the braille. This will be realized through providing proper force from the solenoids to emboss, ensuring proper spacing between the solenoids, and that our embossed braille is to specifications. As for our UI, we required our web-app to be able to interface with existing accessibility features on phones and that it takes no more than 1 second to display results. We required our user to be able to acquaint themselves with the web-app and device < 10 minutes through an easy to use interface with feedback to the user. 

Testing for speed: We communicate with the solenoids by sending a digital high to an individual solenoid, delaying by x seconds, and then sending a digital low. I have been testing for the threshold of delay by gradually decreasing the amount of delay i can have without damaging the circuit. Once we establish the tension system, I will repeat this process of gradually decreasing the amount of delay we can have between the digital high and low that will still allow the solenoids to emboss. I also plan to test 10-20 inputs such as notes or products to see if the embosser is able to print these at the proper speed.

Testing for force/embossing capability: The force provided by the solenoids dictates our embossing capabilities. Our solenoids can be powered with up to 12 V. I aim to use as little power as possible. Once we have the tension system in place, I will test the solenoid’s ability to emboss paper in voltage increments of .5 V up to 12 V starting at 4 V. I also plan to test 10-20 inputs such as notes or products to see if the embosser is able to print these.

Testing Solenoid Control Circuit: We have just sent out our PCBs, but I have tested the solenoid’s control circuit by making it on a breadboarding and using the serial monitor in arduino. I mapped every combination of the four solenoids to a set of values in a truth table and have tested the circuits ability to withstand embossing in different combinations starting at 10 seconds and worked up to 10 minutes, which is our maximum embossing time. This is representative of how we will be communicating with the arduino using the RPi.

Testing for specifications: Once we have our electromechanical embosser system in place, I will measure the distances between braille characters to make sure they are to specification. We will also have user testing to ensure that the braille is readable. I also have printed braille from a state-of the art printer. I will compare our braille with this braille output to see if the size is similar. I also plan to test 10-20 inputs such as notes or products to see if the embosser is able to print these to specification.

User Testing: I have been testing the web-app using the text-to-speech capability on my phone. This is to ensure the button spacing is enough for the text-to-speech to discriminate based on touch. I also want to ensure that the text-to-speech isn’t overwhelmed by the amount of text I am displaying on the screen and is able to communicate the information clearly. This coming week, we are going to be having a user testing session at LAMP Pittsburgh with blind and partially blind users. This test will be a great way to gauge the usability of our app and will inform any adjustments I may need to make towards our final demo.

Weekly Accomplishments: 

This week, I focused on finalizing the web-app to ensure that it was easy to use for completely blind users and clear for partially blind users. This process included ensuring proper spacing between all of the buttons, testing our web-app’s features using text-to-speech to assess  the clarity of our buttons, ensuring large text, and limiting the amount of text on a page while making sure our users understand the flow of our site. I have also publicly hosted our web-app so it is more accessible to users (it is not ideal for a blind user to have to type the name of the local host). After talking to Joshna about how the braille cells will be mapped to the solenoids to emboss, I realized we needed to make slight modifications to our solenoid encasings and x/y gantry cart to ensure proper spacing between each embosser head (4 braille cells apart in x and y direction). I modified these parts in CAD and sent them to be 3D printed again.

In the coming weeks, I will be working with Joshna on integrating the software and hardware through the RPi and arduino, and working with Becky to assemble the electromechanical embosser. I am also working on establishing unique user sessions to ensure privacy of the user’s data.

 

Joshna Status 11/11/2023

This week I spent a lot of time preparing for the demo and making sure that everything worked with every change. With the interim demo this week and our demo with the LAMP advisory group next week, I spent this week adding contractions to the contracted translation. I also worked on making the translation from the braille translation to what the solenoids do and I have it working for the solenoids being 12×16 lines apart and I have it tentatively working for 4×4 lines apart since that is a more reasonable expectation of the mechanical elements and it would allow this to be print much more efficiently as it won’t have to print the entire page if less than half the page is needed. Zeynep and I also worked together on integrating and improving the frontend and backend. I debugged the translation and database extraction functions with basic and edge testing. I have started working on the rpi to arduino connection and the plan is to be able to do a full pipeline control of the solenoids by EOD Monday. I have also started working on opencv because I would love to be able to make our website as accessible as possible.

Each function in each of the backend files requires testing. So far, I have done basic and edge case testing on the translation functions, database creation and extraction functions, and the main backend file. I have also worked with Zeynep to do this testing for different searches and printing of notes. The bulk of what I plan to work on in the next 2 weeks is a comprehensive stress testing file that will test each of these functions for 50 random inputs and 50 popular inputs and compare it to the expectation and I will do the same for the full pipeline.

Along with working on stress testing, I also plan to spend the next week webscraping backofthebox.com and creating a cache. I am on schedule and all of our schedule goals appear to be attainable as of yet.

Team Status Report for 11/11

This week we focused on making sure our demo ran smoothly and began preparing for our user testing session next week. For the demo, we displayed a completed web-app integrated with the back-end and a working solenoid system with serial communication, which is how we will be communicating between hardware and software once we have integrated our system.

We are currently working on improving the front-end to ensure it is easy to use for completely blind users and clear for partially blind users. This process includes ensuring proper spacing between all of our buttons, testing our web-app’s features using text-to-speech to assess  the clarity of our buttons, ensuring large text, and limiting the amount of text on a page while making sure our users understand the flow of our site. We currently have it running on a phone using a local-host and are looking into hosting it publicly for our demo.

We successfully integrated our front-end and back-end components, and we are currently in the process of integrating our software with our hardware. We have completed writing the American English text to braille algorithms and have converted our braille representation in software to signals that can be sent to the solenoids to emboss onto paper.  We made slight modifications to the size of our solenoid encasing on our electromechanical embosser. This modification was to make the spacing between each solenoid 4 braille characters, which is a cleaner way to represent the braille in software. We also sent out our updated PCB to include our RPI->arduino modification. We are currently working on establishing communication between the RPI and the arduino and assembling the electromechanical embosser system.

 

Becky’s Weekly Update for 11/4

This week I met with a mentor to discuss the loading system for the embosser, so we can finally order parts. I testing a few compliant surfaces and found that felt mounted on styrofoam would be  a great surface to print on.

I made some modifications to the loading system which include sensors to help determine where the paper is on the y gantry system, and side panels to ensure the paper is registered correctly.

I also realized that controlling all of this hardware with the raspberry pi may not be the best idea, because a lot of hardware controls tend to act pretty fast, and theyre may be latency introduced by having software and hardware processes done all on one unit

Joshna Status 11/04/2023

In order to get our project ready for demo, I have finished database extraction and integrated that process with the frontend. Now, when the person clicks print on either the notes or the product search, they get the relevant response back.

I have also finished contracted translation and plan to demonstrate the difference between that and the uncontracted translation by printing to a separate file as we demonstrate the frontend -> backend pipeline. I have done edge case and basic testing for both translations because those were my biggest worries and plan to work on stress testing this week.

I have run multiple database structures but a couple sites ran into errors being scraped so I currently have a database around 1800 elements big and a database around 150k elements big but the 150k one won’t upload to git. I have tested the database extraction with these and they work great for general pipeline testing but I will need to start creating unit stress tests.

Meanwhile, I have finished creating solenoid “instructions” that will eventually be inserted into arduino code based off of the braille translation made. This is because each of our solenoids will not be embossing in the order of each dot in each character but in separate places. We plan to also print this to show how the solenoids are currently able to achieve each of the necessary states. This week, I want to start working on integrating the backend with the arduino for the solenoid system.

I am currently on track with the schedule and have everything ready for the demo. In the next week, I plan to work on black box unit testing and stress testing. I also plan to make visible progress with the rpi so we have an actual internet host and not just running files. Finally, I want to start working on the rpi to arduino communication and at least get this working for the solenoid system. My reach goal is to work on the cache after working on the rpi server hosting and web scrape other sites if the rpi is large enough to handle the current database given that git refuses to.

Zeynep’s Status Report for 11/4

This week, I focused on finishing the web-app and integrating it with the back-end, fabricating solenoid enclosures, and testing the solenoid control circuit for demo. Since last week, I added the ability to display the product information on the web-app based on information return from the back-end. I also had a few bugs with my buttons and page refreshes  that I fixed. I received my first fabricated enclosure for the solenoids, but it had a few issues so I adjusted my enclosure design and sent it out to be printed again. Because we switched from controlling the hardware with a RPi to controlling with an arduino via uart, I had did testing on the solenoid control circuit with an arduino and sent it signals over the serial monitor. Each solenoid command will correspond to an embossed braille character. I am currently testing the speed we can run the solenoids at.