Ryan’s Status Report for 4/27/24

  • This week, I spent a lot of time finalizing the final project presentation slides, as well as help my teammate Doreen prepare for her presentation.
  • In the previous week, I finished the essential hardware components of the project so I moved over to the software side to help Surafel implement some aspects of the software. The team found a new Python library called facial_recognition that seems to have a much higher accuracy than our current code. Surafel worked on initial testing of the library and I worked on adding code to check users in and saving their face if they were not in the system. I also implemented checkout and the deletion of their face after checkout.
  • Afterwards, I worked on the CSS of the web application, cleaning it up for a smoother looking final interface.
  • I am slightly ahead of schedule for my own personal work of working on the hardware components. But, I am now pivoting to help with software. I would like to start completely wrapping the entire project up within a day or two, but I am not completely sure if its possible because we might need 3-4 days for finalizing software. The base functionality of the project is finished and I think most of the stuff we are doing now is extra (such as a possible buzzer on the hardware side, or user check-in/check-out logs with manual checkout on the software side). At this point a lot of work will have to be put in to make sure it gets done on time!
  • Next week I hope to clean up the entire project, finish the final deliverables like the video, and poster, and be done with the semester (and my time at CMU!)

Ryan’s Status Report for 4/20/24

  • The past 2 weeks, I have been finalizing the hardware for the item stand and working on the final presentation. I have also been conducting some end to end testing.
  • One main challenge I faced was the breaking of our system upon the addition of a new buzzer. We decided to add a new feature to the system by adding a buzzer and writing code that would allow the buzzer and our red LED to flash when an unauthorized change of weight was detected. Upon adding this functionality though, our wireless transceivers stopped working, essentially halting the functionality and progress of our project. Doreen and I spent several long days attempting to fix this problem and eventually managed to restore the item stand back to a previous state. Unfortunately we do not believe we have the time to implement this new buzzer feature without risking our system breaking again.
  • This week, I worked on the final presentation and running some testing on the hardware. I conducted some item stand integrity tests, which consisted of adding weights to each of the load cells, adding weights on the item stand to make it imbalanced, and adding many weights to test the max weight bearing capacity of the item stand.
  • Currently, I believe I am right on schedule. There were some hiccups in the past 2 weeks but I believe the preallocated slack time made up for that. I plan to continue testing, but start to focus my work on helping improve the software portion of the project.
  • Next week, I hope to finish testing and wrapping up the project, as well as start on the final report.

WHAT I HAVE LEARNED THIS SEMESTER:

  • This semester, I learned a lot about every aspect of the project I am doing, especially on the hardware end. Even in the construction of the item stand, I learned how to use a jigsaw, hammer and chisel, a sander, various drills, and other wood shop tools. It was also my first time assembling a large wood item and spray painting. I learned most of these things through online searching and lessons provided by some wood shop employees.
  • On the electronics side, I learned a lot about the various components that went into the system. I learned about load cells, their calibrations and how they measure, I learned about how to use an Arduino microcontroller, I learned how to use wireless transceivers, I learned how to choose the right stepper motor for my project and which components are enough to power it, and more. Most of the knowledge I got to use these components came from the many tutorials I found online.
  • Lastly, I dabbled in a bit of software. Before this class, the last time I touched Arduino code was in 18-100, which I took in my first semester at CMU (talk about full circle). I also spent a lot of time with various Arduino libraries, which I learned about through their documentation and other online resources. I learned a bit about how facial recognition and what algorithms go into it from talking to Surafel.

Ryan’s Status Report for 4/6/2024

THIS WEEK

  • This week, the NEMA 34 stepper motor arrived, along with a very larger motor driver and a AC to DC 6A power adapter. The team and I tested these components to our satisfaction and determined it provided enough torque to handle our applications.
  • The item stand did not have enough space to accommodate a large motor, so I worked on cutting a large hole in the structure so that the motor can sit in it. I also modified a gear so that it could attach to the larger drive shaft of the motor. We combined all the electronics together for some integration testing, which used the facial recognition software to directly control the item stand. After that was done, Doreen and I worked on code to turn the motor to a specific position, accounting for the gear ratio between the motor shaft and the item stand.
  • Next, we installed 2 LEDs to display information to the user- a blinking yellow LED to show the user which position to place their item, and a red LED to tell the user that their either checked in or checked out their item too late and would have to retry again.

NEXT WEEK

  • Just like last week, I am still slightly behind schedule, though I have caught up more since last week. As a team, we should be approaching the end of end-to-end testing, but we are just getting our system cleaned up and finished for the start of testing. Again, the slack time we allocated perfectly covers this case. There is not much work left to be done on the project.
  • Next week, I plan to install all the components permanently and help Surafel with facial recognition speed and accuracy. After that, we can perform testing and wrap up the project.

SUBSYSTEM VERIFICATION

  • The main subsystem I have been working on this semester is the hardware item stand, which in itself contains several smaller components. For example, the load cell system polls on weight change, the item stand was built to support high load, and the motor was chosen to be able to move heavy load. The use case requirement that relates directly and solely to the item stand is its hardware integrity (how much weight it can handle) and how fast the item stand can detect user interaction (placing vs withdrawing an item).
  • I have already somewhat tested putting weights on the item stand, but not anywhere near our original 150 pounds. I also have not tested increasing the weights or introducing load imbalance yet. After the system is done, I plan to get objects of varying weights and test item stand integrity.
  • The second system that relates to a design/use case requirement is the detection of user interaction. I have already tested this subsystem a while ago, by removing and adding random objects to the load cells and detecting when the load cells see the change. It takes less than 1 second for the load cells to detected weight changes.
  • Overall, I plan to implement the tests described in the design proposal related to the hardware item stand and see if they hit the benchmarks we prescribed.

Ryan’s Status Report for 3/30/24

THIS WEEK

This week, I completed the testing of the hardware components. Unfortunately, our previously single stepper motor did not seem to provide enough torque for our applications. I laser cut a new gear for use on the second backup stepper motor we had. Both motors together still did not provide enough torque. Going back to the drawing board, I calculated the torque ratings we needed and got the necessary components list we needed for a new stepper motor, the NEMA 34. We put that order in an are awaiting its arrival.

Next, Doreen and I implemented back and forth transmission between the two Arduinos and completed all of the code necessary for the item stand/rack to function. For example, upon the receipt of a check-in message, the Arduino Mega on the item stand will run a rack balance algorithm, determine the best location to place the item, rotate to the location, and poll on the weight sensor until it has detected a user placing their item, then sending back a success or fail message to the other Arduino.

Afterwards, we integrated the facial recognition code with our Arduino code by reading and writing to serial from the Python and Arduino code. Recently, we tried scanning our faces and it successfully sends check out/in instructions to an Arduino plugged in to the computer from the computer. The Arduino connected to the computer then transmits wirelessly to the Arduino on the item stand and the instruction is processed.

NEXT WEEK

Though I have done a lot of work this week, I am still slightly behind schedule. At this point in the schedule, I am supposed to be running end to end testing. This is because of some issues such as the motor still not being strong enough. Right now is a waiting game, for the new motor to come in and for facial recognition to be completely fleshed out. Next week, I plan to dedicate extra hours to wrap up the project, testing and installing the new (and much more powerful) motor, and helping on the web app side to make sure everything is integrated together well. I allocated slack time when I built the schedule so it is expected that the end of the semester might not fit the schedule completely.

Ryan’s Status Report for 3/23/24

  • This week, I worked on testing more hardware components. The new motor driver was delivered, but broke, prompting us to wait for a replacement for a couple of days. After the replacement came in, we tested it with the stepper motor and rotation works (we have some concerns about the strength of the motor but further testing is required).
  • I also tested the NRF24L01 wireless transceivers, and was able to get the transmission of strings to work, which will form the basis of our wireless commands.
  • After the rest of the components were tested, I attached all the load cells permanently to the stand. Next, I started on the final Arduino code that would be needed to parse wireless commands and control components on the item stand.
  • According to the gantt charge, I am slightly behind schedule, due to my underestimation of the complexity of getting some components to work. The entire next week was originally dedicated to end to end testing, but at least half of that time will be working on the final Arduino code and testing motor strength with weights. I have been putting about 15+ hours of work into the project each week since the start so I believe I will catch up by next week (the gantt chart was a bit optimistic for the stage of “putting everything together”).
  • Next week, I plan to test out motor strength and rotation, and finish writing the final code for the Arduino before we screw the last few bolts in.

Ryan’s Status Report for 3/16/24

THIS WEEK

  • This week on the project, Doreen and I finalized a big part of the hardware components and conducted some continued testing on some electronic components.
  • First of all, I cleaned up the wood for the item stand with wood putty and sanding. Then we spray painted and sealed the wood. Next, we assembled the bottom of the item stand.
  • Next, I tested the electrical components, spending several hours troubleshooting the stepper motor (it kept vibrating instead of rotating), and eventually accidentally lighting a motor driver a friend gave me on fire. I ordered a different stepper motor driver that was recommended online.
  • I also tested connecting all 6 load cells concurrently, and the test was a success. I then taped up the electrical connections and connected wires to the slip ring, which is inserted into the 6 sided top rack.
  • Currently, I am still on schedule, as this week and next I am supposed to attach electronics to the item stand.
  • The progress made can be seen in the team status report!

NEXT WEEK

  • Next week, I hope to fix the issues with the stepper motor with the new motor driver that will be delivered. Then, I want to test out the wireless transceiver and begin writing item stand controller code so that the hardware component of this project can wrap up.

Ryan’s Status Report for 3/9/24

  • The last two weeks (including Spring Break), I continued working on the wooden item stand. All everything has been cut and glued together, ready for final assembly at the end when we determine exactly how our electronic components will integrate with the rack.
  • I also worked on further testing components with our newly arrived Arduino mega, while hitting some barriers such as bugs in the Arduino code. I plan to work on it more next week.
  • Lastly, I contributed a significant amount of time working on and finalizing the design report.
  • Currently, I am slightly ahead of schedule. This may change though because I am planning on building another parts list for further necessary components and shipping times may cause delays. While those items come in I can focus on other efforts.
  • Next week I want to build the final parts list as soon as possible, further test out components and join them together into a system, and clean up the wooden item stand for final assembly.

Ryan’s Status Report for 2/24/24

  • This week, I dove deep into the hardware behind our project. Some of our components, such as the load cell and ADC were delivered, so soldiered come components together I connected them to an Arduino. Doreen and I wrote a simple program to read the load cell when bending it.
  • Secondly, I spent 10+ hours in the TechSpark wood shop, cutting shapes out of plywood (too many circles sadly) and manually and gluing layers together.
  • Currently, I am ahead of schedule with building a physical rack, with the previous task of creating and ordering parts taking way shorter than needed. We did only order the parts that were immediately needed so that task was a bit more distributed across the entire project than what was originally planned.
  • Next week, I hope to finish building the hardware rack, source some mechanical parts such as gears, and test and install all electronics.

Ryan’s Status Report for 2/17/24

  • This week, I narrowed down the design for the hardware item stand/rack, gathered parts lists, and picked up a lot of materials from Home Depot (3 large plywood sheets and some wood studs).
  • I read peer feedback from the proposal presentation, found components and built a more robust design, with a large bearing for weight distribution and rotation
  • Then I relearned SolidWorks, and created an assembly of the rack with several components. I also went to TechSpark to discuss feasibility of our hardware parts and the possibility of using their machines.
  • I also participated in team goals such as creating a design presentation
  • I am still on schedule (maybe slightly ahead) and plan to test out the components that just arrived
  • Next week, I hope to test out all the components, build a small physical system, and start the construction of the item stand

 

Ryan’s Status Report for 2/10/24

  • This week, I prepared for and gave a project proposal presentation. I also looked into facial recognition libraries and reviewed peer reviews from the presentation in order to possibly modify some designs
  • I am slightly behind schedule due to some extra responsibilities this week, but plan to catch up quickly once those items are done
  • Next week, I plan to modify the physical item rack design and build a parts list by researching all the components we need.