Team’s Status Report for 4/26/25

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? 

Thankfully, we were able to fix the biggest risks we faced just 1 week ago before the final slides presentation.  Early on, a major setback occurred when our RPi and other components were damaged during motor integration. As a result, Ashira and Anna prioritized restoring core functionality, which delayed system integration and testing. To manage this, we plan to meet over the weekend to complete full testing and collect final performance data. Time constraints remain a challenge, but our focus is on thorough testing during this final sprint.

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

One major design change involved the proximity sensing system. Initially, we planned for the PIR sensor to continuously detect the user’s presence and immediately pause the timer when the user left. However, we discovered the PIR sensor only detects heat motion, not continuous presence. To adapt, Ashira modified the logic: the system now pauses if no heat motion is detected after every few seconds, resuming once motion is sensed again. This workaround required additional coding for both the sensor code as well as the countdown because we realized that if the timer was manually paused and heat was detected, it would resume the timer, which would not be ideal for situations were the user actually needs to pause the timer. The main cost was a slight reduction in precision in terms of the sensor accurately detecting the user, which was mitigated through careful tuning of the motion detection intervals.

Provide an updated schedule if changes have occurred. This is also the place to put some photos of your progress or to brag about a component you got working

 

To see it working,  refer to this demo video 

 

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.

Unit tests: 

  • Touchscreen
    • Simulated touch events at multiple screen locations to check overall functionality and tested usability of the GUI
    • Verified that all GUI elements were responsive and functional under user interaction
    • Result: 100% of trials successful; interface is intuitive and robust
  • Stepper Motor + Motor Driver Subsystem
    • Ensured correct breadboard wiring and motor driver connections
    • Constantly adjusted and verified correct voltage levels for both motors and drivers
    • Conducted individual tests per motor/motor driver pair to ensure current was drawn and motors rotated as expected
    • Tested rotation both through code and with the aluminum coil mounted, oriented sideways for actual vending configuration
    • Found that motor drivers were extremely sensitive and prone to burning out
    • Breadboards caused instability with more than 3 motors connected along with other peripherals — led to transition to protoboards
    • Discovered motor shields exist to simplify setup, but this was found too late in the semester to redesign
    • Result: Passed unit test for reliable snack dispensing, but required very careful wiring to avoid malfunction from loose connections or voltage drops
  • Ultrasonic Sensor
    • Initially tested using print statements to confirm distance measurements and motion detection
    • Detected any object within range — led to serious false positives from unintended movement (e.g. nearby hands, chairs, passing users
    • Determined that it was not ideal for reliably detecting focused, human presence for our use case (study session verification).=
    • Result: Failed unit test for presence detection due to lack of specificity; ultimately not used in final design→ PIR sensors
  • PIR Sensor
    • Initially tested with print statements to verify detection of human heat
    • Found inconsistencies in detection; refined test by using an LED indicator to show real-time presence/motion detection
    • Conducted 10+ trials: user walked away from sensor range; checked that timer paused accordingly
    • Detection sensitivity varied with distance and environment, but overall logic worked as intended
    • Result: Passed (with some variation in accuracy and delay)
  • LEDs and Speakers
    • Verified that visual and auditory signals triggered after the study session ends
    • Ensured response latency between timer hitting zero and signal activation was ≤ 1 second
    • Result: Passed

Integration Tests

  • Touchscreen Integration Test
    • Verified that touch inputs triggered correct system responses (e.g. starting a session, selecting snack)
    • GUI reliably linked to backend logic
    • Result: ~90%+ accurate response rate under integration.
  • System Integration Test
    • Verified complete chain: session timer → PIR detection → session completion → motor rotation → LED/audio feedback
    • All subsystems successfully interacted
    • Result: Passed
  • End-to-End Test
    • Full test from starting session → simulating user leaving → resuming → countdown to zero → snack dispensed and notifications triggered.Snack dispensation consistently occurred within 5 seconds of session end
    • Result: Passed

 

Anna’s Status Report for 4/26/25

This week, I worked with Ashira on finalizing our Final slides and presented. I also tested with a temporary RPi after ours was damaged. In addition, I debugged the SSH connection issue with the help of a friend, allowing our team to SSH into the RPi and develop more easily. On the hardware side, I discovered that a possible reason our original RPi got fried was due to an improperly soldered ground on our voltage regulator. I resoldered the connections as needed to fix this. I also helped solder the motor driver protoboards and began incremental testing with Ashira—starting with 1, then 2, 3, and 4 motor drivers. Eventually, we got 6 of them to behave as expected.

I made updates to our GUI to improve user experience by allowing some outputs to function concurrently. I also tested the dispensing mechanism and continued integrating our system toward a fully functional vending machine.

Next week, I plan to complete more testing, paint the vending machine, fine-tune functionalities, submit the poster, record the video, finalize the paper, and prepare for the demo.

Anna’s Status Report for 4/19/25

This week, I mounted the LEDs onto the enclosure and I focused on integrating the motors yet again. Our breadboard had been damaged due to drawing too much current while powering 6 motors, so following a TA’s recommendation, I began soldering 3 of the 6 motor drivers onto protoboards. I started with 1 reference protoboard, tested it to ensure it worked, and then continued with the rest. Ashira and I collaborated to test each motor driver as she helped solder the remaining 3. We carefully measured each driver’s Vref and confirmed that the motors rotated as expected with the code before soldering the voltage regulator. However, once we soldered a protoboard with 2 motor drivers and connected the necessary grounds and voltage lines onto rails on the voltage regulator, the motors stopped working and our RPi would no longer power on.

Unfortunately, these setbacks have caused my progress to fall behind. I’ve requested a replacement RPi so we can restart our work, but in the meantime, we’ll be borrowing one from Professor Benson, so we can continue testing and hopefully get at least a couple of motors running. At this point, we’re scaling back from attempting to run all 6 motors simultaneously, since every attempt to do so seems to result in some form of failure—either to our components or to our power delivery setup.

Next week, my goals are to complete the final presentation and get our hardware environment stable again. It’s been frustrating to hit so many hardware roadblocks, but I’m hoping we can make meaningful progress before the final demo.

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? 

One of the most valuable learning tools for me was video tutorials and community discussion forums, especially the Raspberry Pi Forum. These resources sometimes provided the insight I needed or helped me move our project one step closer to working. In addition, documentation for various components (such as the A4988 motor driver) became a critical resource once I knew how to interpret it properly.

The most important learning strategy I used was refining my research skills. Being able to narrow down what I was looking for—whether it was understanding a motor driver’s pinout or resolving an issue with GPIO behavior—made my problem-solving much more efficient. I also mainly learned by doing: experimenting with the hardware, testing individual components, and learning from trial and error helped solidify the new concepts.

Anna’s Status Report for 4/12/25

This week, I focused on setting up and testing the passive infrared sensor. I explored multiple approaches to verify its accuracy, but unfortunately, I haven’t fully resolved the issue yet. Initially, I connected the sensor directly to the GPIO pins and printed “detection” based on the PIR’s state. However, this approach produced frequent false positives. In response, I researched alternative methods—experimenting with both the gpiozero and RPi.GPIO libraries, changing conditionals, sensitivity and timeout parameters, and even incorporating a LED diode that lights up upon detection. Despite these efforts, the false positives persisted regardless of how much I changed it. I suspect the issue may be related to the sensor’s sensitivity and timing, which I plan to debug further.

Outside of the PIR, I successfully helped Ashira get the speakers to produce sound by adjusting the wiring—this involved some frustrating debugging, but we eventually resolved it. I also assisted David with the motors by suggesting that lowering the Vref on the motor drivers could help achieve the expected rotation, which thankfully worked. Additionally, I reorganized the motor circuitry, consolidating it from 3 breadboards to 1 with Ashira.

Although I’m currently a bit behind schedule due to the PIR sensor not being integrated yet, I plan to go into the lab tomorrow to continue debugging. Hopefully, by next week, motion detection will be more reliable and we can move forward with integration.

Team Status Report for 3/29/25

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? 

One of the most significant risks we’re facing is getting the speakers to work, as we’ve encountered persistent issues despite extensive troubleshooting. Additionally, while we’ve started setting up the circuitry for the six motors, initial testing with two motors did not perform as expected, indicating potential challenges ahead. Another concern, as mentioned in Anna’s report, is the ultrasonic sensor’s susceptibility to inaccurate measurements due to the sensitivity of the sensor. We plan to schedule dedicated work sessions where each team member focuses on a specific task while collaborating as needed and discussing the next steps such as any potential design changes moving forward.

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

At this point, no notable changes were made in the design of the system.

Provide an updated schedule if changes have occurred. This is also the place to put some photos of your progress or to brag about a component you got working.

Anna’s Status Report for 3/29/25

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

This week, I focused on getting the peripherals working, specifically understanding how it works more in depth and setting up testing code for the ultrasonic sensor. While testing it, I realized potential issues that could arise. Our project’s primary goal is not to proctor the user but rather to encourage discipline by detecting their presence nearby to continue a timed study session. However, the ultrasonic sensor has some limitations due to how it operates—it sends a trigger signal and relies on the echo signal reflecting back to determine distance. This method is highly susceptible to interference, as various obstacles can cause inaccurate readings.

Initially, we referenced a previous project that used the same sensor for a similar purpose. However, after working with it firsthand, I discussed with the team the possibility of pairing it with a passive infrared (PIR) sensor, which detects heat. This combination could improve reliability, ensuring more accurate presence detection. Despite its challenges, the ultrasonic sensor still holds value in our setup, and I am continuing to refine its integration. Besides this observation, I was able to set up the code for the sensor to detect within our 1 meter threshold range and I also attempted to integrate it into our main code so that the timer paused when the distance detected was greater than the threshold.

I also dedicated many hours to assisting David with debugging the speakers. Despite extensive research and multiple attempts at reconfiguring both hardware and software, we have yet to produce any sound. Troubleshooting this component has been time-intensive, but we are actively working on finding a solution.

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

Due to the time spent troubleshooting the speakers, I wasn’t able to dedicate as much time as I had planned to integrating the sensor with the GUI. As a result, I’m slightly behind my intended progress. To get back on track, I will prioritize integrating the sensor next week before revisiting the speaker issues if needed.

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

I hope to integrate the ultrasonic sensor to the code and test its functionality so as to see how I can further refine its accuracy.

Anna’s Status Report for 3/22/25

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

This week, I focused on helping the team with motor control. I also worked on integrating LEDs into our design. Initially, this was challenging due to outdated information on certain forums. Through troubleshooting, I discovered that the RPi OS did not support externally managed packages, which required me to transition all dependencies and code to a virtual environment to install the necessary packages for the LEDs. I also learned that the LEDs should be controlled using SPI dev tools rather than PWM for the RPi. Once I got them working, I incorporated the code into our GUI. However, I ran into issues with PyQt modules conflicting in the virtual environment. With Ashira’s help, I was able to debug this issue and integrate the LEDs so that they are triggered by the UI. Beyond the LED integration, I also worked on adding a sensor to our circuit and tested its functionality. Lastly, I helped Ashira integrate a single motor into our code, ensuring that it rotates only when expected, during the snack dispensing process. This needs a little more tweaking though.

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

My schedule is in progress.

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

I hope to fine tune the sensor to detect within a specific threshold and integrate it into the code as seamlessly as possible. Additionally, I hope to assist the team in attaching the springs to the stepper motors and assembling one fully functional dispensing slot for the demo.

Team Status Report for 3/15/25

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 at this stage is ensuring the proper functionality of the vending machine, particularly the motor controls. Debugging has been more time-consuming than anticipated, and we still need to configure 6 motors. To address this, the team has met to analyze probable causes, testing 1 motor at a time to identify and resolve any problems before scaling up.

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

Nothing was changed in our design. On another note, however, based on our meeting, we recognized areas in which our requirements can be further clarified, such as further justification for the vending machine size, which is as follows: internal storage capacity determines its external dimensions, snack vending machines typically range from 68-72″ H x 29-41″ W x 30-34″ D, smaller machine would require more frequent restocking, designed to accommodate both study materials and the vending machine on a desktop while minimizing clutter.

Provide an updated schedule if changes have occurred. This is also the place to put some photos of your progress or to brag about a component you got working. 

Anna’s Status Report for 3/15/25

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

This week, I completed the ethics assignment and collaborated with my team to draft the group collaboration section. Additionally, I acted on feedback from our weekly meeting, particularly condensing our talking points into concise notes, such as further justifying our product’s size by researching and documenting studies that support ergonomic factors of our design. I also assisted Ashira with laser cutting and assembling parts of the physical enclosure. Besides this, I upgraded the RPi, installed necessary dependencies, and uploaded the GUI code to test its functionality. This test revealed that I need to adjust the display configuration as I encountered issues with the screen orientation and parts of the interface being cut off, so I also spent some time trying to fix these issues.  Additionally, I tried to help David on debugging the motor control system to ensure the team stays on track.

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

My progress is on schedule.

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

I hope to properly fit the GUI within the display by updating the current code and have some functioning peripherals.

Anna’s Status Report for 3/8/25

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

This week, I dedicated a significant amount of time to writing our Design Review Report, as this was our primary objective. Additionally, I began researching the installation process for the OS Imager on our RPi. I spent my time watching tutorials, and working to enable SSH to streamline our development process since none of us have had prior experience with it. I installed the OS on the micro SD card, edited the service settings (for SSH) of the RPi, found its MAC address so as to register to CMU-DEVICE, registered the device, and configured WEP file and SSH onto the RPi. Although it took longer than expected because I didn’t realize that a monitor was needed, we were able to successfully log into the RPi via SSH. Besides this, I also finalized the coding for the general layout of our GUI touchscreen, including its corresponding functionality. You can find the completed work here.

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

My progress is well ahead of schedule. However, we have fallen behind on the laser cutting of the enclosure because the material we initially wanted was unavailable at TechSpark, so we had to order it last week. Unfortunately, it did not arrive before spring break, causing a delay. To help catch up, I finished my main task for the project, prioritizing laser cutting as soon as the material arrives.

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

After spring break, I plan to meet with my team to laser cut the enclosure and begin testing the components to ensure everything functions as expected.