Ziyu Li’s Status Report for April 20th, 2024

For the past two week, I made substantial revision to the CAD design of our actuator. The motor no is placed in the middle of the two sliders, which drastically reduces the footprint of the device. The gear and rack configuration is relocated to the side of the slider, instead of up of down.

I also 3D printed and tested the integration of the system, as well as some preliminary test on the motor integration, which is shown here

We are on track to complete the project on time. Next we will perforce more verification test, and optimize for motor actuation speed and torque.

  • 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?
  • I am mostly in charge of designing the CAD model for our actuators, and fabricating the product using 3D printing and laser cutting. I found myself having to engage with every detail of the softwares tools I used before more, especially because we are trying to build something that is both small and precise. I have to rapidly prototype with different 3D printing parameters to find the one the give the best result. I also had to relearn gear design to make sure the actuation is fast and smooth.

Samay Sahoo’s Status Report for April 20th, 2024

This week, I worked on the motor code upon assembling a first version of our full build. Specifically, now that the laser-cut gear and rack is finalized, I was able to do proper load testing on the motor. I was aiming to meet our main design requirements, namely, speed, accuracy, and anti-jamming. I was able to get accurate positioning, except for times when one of the pins lagged behind due to printing imperfections. I also observed that my anti-stall code also worked to stop the motor upon detected a jam. I still need to work on homing after a jam since I faced some issues with the motor starting up again very slowly at first which would sometimes just raise another stall error. There were also issues with speed since I have not connected the motor driver to higher than Vcc 5V.

Progress is on schedule but there is much fine-tuning to do as we complete our final print. Next week, I plan to experiment with a higher power source to see if I can achieve improvements on speed while maintaining the torque I already achieved to properly actuate the slider.

Team Status Report for Apr 20, 2024

What are the most significant risks that could jeopardize the success of theproject? How are these risks being managed? What contingency plans are ready?

The most significant risks right now include the jamming issue on the braille pad. Due to the flimsiness of the braille pins, there are cases where the braille pins are stuck while the slider slides to the correct position. To manage such failure, we are working on a reliable jamming solution where we used the builtin jam detection on the motor to actuate the slider back and forth around the target location in order to reach the target. We also faced various communication issues with wifi communication between the webapp and the arduino. To resolve this issue we are going back to our serial communication system that is more reliable and able to transfer data faster.

Were any changes made to the existing design of the system (requirements,block diagram, system spec, etc)? Why was this change necessary, what costsdoes the change incur, and how will these costs be mitigated going forward?

We decided to change the data input method on the web app from importing a txt file to manually typing the word on the web app. We decided to do so because a peer commented that txt file import reduces flexibility and requires the user to be well-knowledged in creating a txt file. This does not change the cost in anyway.

Provide an updated schedule if changes have occurred. 

No schedule changes since our last demo.

 

 

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).

Team Status Report for April 6th, 2024

What are the most significant risks that could jeopardize the success of the project? How are these risks being managed? What contingency plans are ready?

Currently, on of the major risks still lies in mechanical integration of the braille cell and motor subsystems. We have begun designing the motor housing and accordingly adjusted the slider design as well after learning of new complications. We expect further minor bumps in the next week as we finalize printing and assembling the linear actuator to the motor. We plan to continue adapting to these potential physical issues.

As mentioned before, there was a slight modification in the motor location since we have decided to move the linear rack to the top of the slider due to concerns over extra load and jamming. There are very minimal extra costs involved in this modification.

The tests that we need to run as a team involve the integration and inter-functionality of the different subsystems. It also involves testing of physical design to fit all of our components. We need to validate that the translation program outputs the appropriate encodings, which need to be properly communicated over serial to our Arduino. We also need to measure any additional power consumption by the whole system, not just operating the motors from subsystem testing.

Samay Sahoo’s Status Report for April 6th, 2024

What did you personally accomplish this week on the project?

This week, I worked further on our motor code to handle homing and stall detection, as well as fine tuning the movement for each actuating position. The latter was done this week after getting a sense of the exact layout and dimensions of the slider actuator. I edited the code to more precisely rotate the motors to specific positions. The homing function then utilizes the stallGuard functionality of the TMC2209 driver to move the motor towards one edge until it detects it (utilizing back emf measurements in the background). I also researched linear gear racks for our specific geared motors, which required identifying the measurement standard of our gears and then searching for a compatible rack. I also found out that the JST motor cable connectors identified before were slightly off so I need to order new molex picoblade connectors. My progress is on schedule, but I need to accelerate progress on assembling motors after receiving these parts next week.

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 motor subsystem based on our engineering design requirements are the following:

– Actuating time between words: 500ms/cell (translates to 5 s/word)

– Motor power consumption: 1.2W

– Reliable usability: 6 hrs

To measure and verify the time testing results, I will feed in a long text input (10-20 words), upload Arduino code, and run the Python script, and finally start a stopwatch and “lap” every time the motor stops and moves to a new position. The time elapsed on every lap corresponds to the actuation time per cell. Based on these results, I might have to accordingly adjust the operating mode or power input to motors to satisfy design requirements.

Analyzing power consumption would require a much longer text file or simply running the motor on loop based on the timing results from above. After I figure out an average actuation time, I will hard code the number of steps the motor needs to run for that amount of time, repeat this movement in previous direction, and calculate power consumption over 5-10 mins in Arduino code.

Finally, I need to conduct failure testing over longer periods of time to satisfy the use case requirement of reliability over 6 hour periods.

 

Ziyu Li’s Status Report for April 6th, 2024

What did you personally accomplish this week on the project?

Two major things is done this week: 1. using hand to hold the motor to actuate the slider from last week, I identified that the best place to mount the motor is actually above the slider, not underneath like I expected. This is likely due to when motor is underneath, it also provides an upward force to the slider, causing it to jam with the pins more easily. Mounting the motor on the top can eliminate this non-horizontal force since the support for the slider is underneath. 2. Given this, I redesigned the whole actuator by allocating more space between the cover and the slider, I also designed and tested the motor mount, which at the moment does not work perfectly since their are some tolerance differences from the 3D printer, but I am confident that I can solve this tomorrow.

Is your progress on schedule or behind?

If compared to the original plan, which is to build 10x of these actuators and having with coordinate with each other, I am definitely behind. However, since the interim demo, we acknowledged that having one braille cell work perfectly is more important than building a ~70% working whole, and given the difficulties in this process is much bigger than we expected, we have scale down to that. And in this regard we are on schedule.

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

A single braille cell working, shifting to different braille patterns.

Test that I am planning to run

After I get the braille cell working next week, I’ll focus on three major tests to make sure our product is meeting the original design requirement:

  1. activation speed: the slider should be able to move from one end to the other  under 200ms.
  2. Jam frequency: the slider should not be jam in between at least 15 actuations (switching from one position to the next under the speed outlined in 1)
  3. Jam recovery: the actuator should automatically detect jam situation and recover from it using the back-and-forth motion in under 500ms.

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.

 

Samay Sahoo’s Status Report for March 30th, 2024

This week, I continued to work on the Arduino code to process data and accordingly spin the motors a specific number of steps. First, Yujun and I worked to find a .txt file reader library for Arduino to import the encoding outputs from the Python translation program. However, I later found it was buggy as these libraries were not very sophisticated. So, I researched and updated our Python program, translation.py, with pyserial for serial communication directly with Arduino. I also built onto our Arduino code (stepper motor control and I/O) to also interface with the translation.py code. With this new mode of communication and processing, translation.py sends the binary encodings one cell at a time to the Arduino, which then processes the encodings, moves the two motors for a cell to actuate the pattern, and then sends a signal to translation.py when “next word” button is clicked. The reason for one cell at a time is that we are first finalizing functionality for only one cell before manufacturing and assembling the other nine cells for our final device. The code will meanwhile be updated to process and display one word at a time instead of one cell, as desired. My progress is now on schedule. For next week, I aim to:

– Move the serial communication between the web app Python programs and Arduino to wifi with our ESP32 board. Will work with Yujun on this step.

– I also aim to finalize fitting the motors and linear gear to our pending 3D printed housing parts. This step is crucial to then properly advance to manufacturing and assembling the physical hardware of the device.

Team Status Report for March 30st, 2024

What are the most significant risks that could jeopardize the success of the project? How are these risks being managed? What contingency plans are ready?

The most significant risk is on the integration between our slider actuator and Arduino controlled motors. Currently we do not know whether they will coordinate well, so test will be done next week. We already have a fall back plan, that is another type of off the shelf motor that comes with with linear gear. The motor is relatively slow compared to other solutions, but we know it can be easily used.

Were any changes made to the existing design of the system

Depending on the result of the hardware-software integration, we will decide whether to scale down the project or not next week.

No Schedule update at this time