Zeynep’s Status Report for 12/9

This week, I spent most of my time debugging the Arduino code to successfully be able to emboss braille up to specs, adding other hardware components to the device, and also spent a significant amount of time finalizing the full pipeline with Joshna. My primary accomplishments for this week include setting up the code to control the LDR and LED, finalizing the code for the solenoid and motor control to enable embossing, creating the rigid surface for the solenoids to emboss against, setting up a speaker to provide cues to the user, securing the tension of the solenoids, and working with Joshna to finalize the full pipeline.

In addition to work on the hardware components, I created both the poster for the final demo and the slide deck for the final presentation, and practiced for my presentation.

To set up the code to control the LDR, I worked with Becky to determine a threshold for which the photoresistor was sensitive to light. Then I used that threshold and calculated the specific distance the roller should move to place the paper in the proper location.

For the solenoid and motor code, I spent a considerable amount of time testing different distances between the solenoids and the two motors to create the optimal braille output. This took some more time than expected because there were issues with power supplies and motor drivers.

I also worked to finalized some of the variables for the tension of the system. I contributed to creating the rigid surface and securing the embossing styluses attached to the solenoids. I also incorporated a speaker to provide cues to the user.

Finally, I worked with Joshna on Saturday to test the full pipeline with integration, ensuring the RPi was properly sending signals to the Arduino to emboss the paper.

 

Team Status Report for 12/09

Weekly Status Report Question (Team):

ABET #6 discusses develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions 
List all unit tests and overall system test carried out for experimentation of the system. List any findings and design changes made from your analysis of test results and other data obtained from the experimentation.

Back-end Tests

  • Uncontracted and contracted braille function test: Trying 100 randomly generated strings and comparing it with the output of Braille Blaster app (state of the art translation software)
    • Result: 100% accuracy
  • Testing to see how many responses were in database according to https://progressivegrocer.com/100-iconic-brands-changed-grocery
    • Result: 97% hit rate, 100% relevancy
  • Timing test to create the database:  converting it from a csv to the database multiple times and averaging that time as well
    • Result: 36.7 s
  • Timing database lookup time
    • Result: .132 second
  • Timing how long it took to query for each above test
    • Result 5.32 s
  • Solenoid instruction testing:  creating a sample input with unique numbers instead of just 0s and 1s and compared it to the expected output.
  • Based on the results of these tests, we determined that the database was the faster option for our product. In addition, we determined that our webscraping algorithm was satisfactory.

Front-end Tests

  • User testing: ran user testing session with 4 users to test user satisfaction with front-end interface and embosser device on a satisfaction scale from one to ten
    • Questions asked?
      • How easy was it for you to navigate the web-app?
      • Based on your experience, how likely are you to continue using this web app for your needs?
      • Did you receive sufficient and timely feedback when you entered a product name or typed notes?
      • How satisfied are you with the overall usability and functionality of the web app?
      • How efficient was the search functionality in retrieving relevant instructions or information based on the product name you entered?
      • Based on your experience, how likely are you to continue using this web app for your needs?
      • How well did the web app handle errors, such as incorrect product names or failed searches?
      • How effective were the accessibility features (such as screen reader compatibility) in making the web app usable for you?
      • How clear and understandable were the instructions provided by the web app?
      • How easy was it for you to use the embossing device?
      • How effective were the tactile cues on the box (including surface textures and braille instructions)?
      • How would you rate the paper registration experience?
      • How would you rate the portability of the device (weight, size, etc.)?
    • Results: 4.55/5 user satisfaction
    • User feedback: different button names, placement of buttons

Hardware Tests

  • Tested quality of embossed braille (size and location) by inputing random combinations of solenoids into arduino code
    • Design changes: downsized from 4 to 2 solenoids to gain more control over the tensioning of the paper and distances between the solenoids. Changed various spacing settings within the arduino code
    • Design changes: change in stepper motor driver to achieve better precision with the stepper motor
  • Photo-resistor testing: Varied values given to the photo resistor to test light sensitivity for paper registration.
    • Design changes: swapped from a 10k to a 4.7 k resistor to get more dynamic range on the ldr when we closed the top of the embosser, added an LED to pair with the ldr because when the lid is closed there is virtually no light in the embosser

Integration Tests

  • Tested communication between the RPi and Arduino using LEDs to represent solenoids: sent 30+ sample inputs to the RPi from the web-app and tested for accuracy in solenoid representation. Test results influenced how serial communication was set up in the Arduino code.
  • Tested full pipeline on various notes input combinations such as “abcd”, “llll”, “dfdfdf” that have distinct braille shapes to test quality of output.

Joshna Status 12/09/2023

This week I spent some time making changes due to hardware problems such as making it work for 2 solenoids instead of 4 solenoids and making it work for the solenoids being 3 characters apart rather than 4 and with lines that are 12 characters long. We also realized that the braille was in reverse since we are punching down so I reflected that in the translation.

I wanted to make an option for people to upload an image of a box and use the barcode to get the directions from that using cv2 and pyzbar and while I was actually able to make it work and even created html webpages and functions using Flask to integrate the entire platform, it turns out that the raspberry pi has restrictions when it comes to using the opencv libraries so it doesn’t seem like I will get around that. Since it wasn’t one of our original goals, it’s not a big deal but I am pretty disappointed because I got the entire platform to work and it was also super accessible with the iphone and Apple voiceover.

I spent the most significant portion of my time working on official testing. Throughout this semester, I have been doing basic, integration, and edge case testing and the occasional stress testing, but nothing officially put in a file. I now have a file that tested both the uncontracted and the contracted braille functions by trying 100 randomly generated strings and comparing it with the output of braille blaster. This helped me hone my algorithm further to get 100% accuracy. I also tried testing with 100 most popular products according to https://progressivegrocer.com/100-iconic-brands-changed-grocery and checked to see how many responses were in the database (97%) and also how many responses were relevant(100%). I tested the time it took for creating the database by converting it from a csv to the database multiple times and averaging that time as well as the average time it took for each query in the above test. Based on those times, the one time database cost seemed to be. more worth it. I tested the solenoid instruction generation by creating a sample input with unique numbers instead of just 0s and 1s and compared it to the expected output.

I also spend a significant amount of time working with Zeynep integrating the rpi with all of my software code with the physical hardware and while the individual components are working, we do have a bit of honing things down to go.

Becky’s Progress Report for 12/9

This week I focused on honing in on the hardware and electrical components.

I decided to redesign the side panel so that they have holes for the barrel jack connectors. I cut this in clear to allow light to come into the LDR sensor, which helped us get rid of a LED.

I spent countless hours tuning where the styluses go, and supported the team as the last software changes were made.

There was an issue with our y motor, which I  was  able to resolve when I replaced it. I don’t think the original was made very well.

I used much more loctite on the solenoid styluses which helped with the loose screw problem

Zeynep Status Report 12/02

This week, I focused on testing the solenoid and stepper motors of the physical embosser, doing user testing, and refining the web-app. I refined the web-app a bit more to ensure that everything was as clear as possible before user testing, but I spent a majority of my week focusing on debugging the Arduino code and testing the braille outputs of the solenoids and stepper motors combined. I have attached a video that shows an example of the work I have been doing with the solenoids and stepper motors. I have also helped with the assembly of the embosser. We also had a user testing session on Friday where we had users test the web app and tactile experience with the embosser.

Joshna Status 12/02/2023

This week was mostly just adding final touches and doing last debugging. I successfully soldered a latch switch to the rpi so that depending on if it is pressed or not, the printer will print either uncontracted or contracted braille. I also implemented a query system to test against the database. There is an obvious time tradeoff and we are leaning towards the original database but in order to use queries, we just need to change one global variable on the main page so it’s really convenient.

We also visited LAMP on Friday and got to talk to 4 visually impaired people specifically about our product and others in general. We learned a lot more about what they use and how they feel about our product and I’m pretty happy with the ease of use! I was also able to learn some things that helped me with testing.

One of the biggest things in this final week is proving through testing that we achieved the results we wanted. I was struggling with finding a way to prove that the braille translations are accurate using just technology but one of the people at LAMP told me of an app called braille blaster so I have been generating random strings, printing it like dots on my screen, copying it into braille blaster, and comparing the two.

I have also been running speed tests mostly to compare the query and database, but since the database has no speed issues after the initial loading of the website, it is definitely our best option. The last testing I did was webscrape 100 popular products from websites that compile this data and testing to see what our database returns whether it’s accurate recipes, inaccurate recipes, accurate websites from google, or inaccurate websites from google.

Becky’s Weekly Post for 12/2

What’s new?

  • PCB did work, had a power issues 🙁 Could just be a one off mistake, but didn’t want to waste time debugging  because we were having more fundamental control issues with A4988s
  • A4988 motor controller were cumbesome, had issues going both directions, switched to l298N, easy to control, resolved issues at the cost of 4 pins on arduino as opposed to 2.
  • transitioned to a module based circuit design scheme, which has made it easy to get hardware up and running, and also help isolate power features of design, as well as trouuble shoot circuitry because we can isolate what we know works from what doesn’t. This circuit format is less robust than a PCB but better for its ability too iterate quickly.
  • Finalized Fundamental mechanical design for the most part
  • Got feedback on where to place registration tool from LAMP feedback session.
  • Decided to transition from using 4 solenoids to using 2 solenoids due to a combination of lack of IO/pins depending on how sensors are configured, and unexepected jiggling of solenoid stylus which loosens screw over time. Think this issue can be mitigated with lock tight
  • Learned about detent current, which can cause stepper motor to torque despite coils not being energized. Was worried we would have to get a new stepper which wouldn’t arrive until Friday. on a whim designed to power each coil to try to untorque motor, and it worked!
  • Made a test version of ir sensor
  • think we need to transition to LDR

What next?

  • Finalize and get light sensor working
  • tune vertical height on solenoids
  • mount braille directives
  • learn why detent current gets triggered sometimes

Team Status Report for 12/02

As a team, we focused on user testing, testing the accuracy and speed of our web app, and assembly of the embosser device. This includes debugging the stepper motor and arduino circuit, assembling the electrical and mechanical components of the board. We have also had a user testing session to test the quality of the braille, the embosser device, and the web app. Looking to next week, we are focusing on completing assembly of the device and working on our final presentations

Other notable team events include:

  • PCB’s arriving and not working
  • A4988 motor controller issues making it hard to control direction. switched to l298n and had no problem with stepper motor control
  • Got necessary step measurements for printing braille
  • Got feedback on both our physical device and software at the Library of Accesible Media for Pennsylvanian’s blind user focus group.
  • Ran database tests

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.