1 of 1

​

VendiBaddie

Team E5: Anna Cai, Ashira Johara, and David Zhang

18-500 Capstone Design, Spring 2025

Electrical and Computer Engineering Department

Carnegie Mellon University

​

System Architecture

Product Pitch

Many students often struggle to maintain focus during long study sessions, leading to reduced productivity and motivation. Existing solutions often lack real-time user engagement and reward mechanisms that encourage session completion.

The Vendibaddie is a personal vending system that aims to tackle this issue, incentivizing focus and encouraging more structured studying through providing timed countdown study sessions enabled by user presence, reward based snack dispensing, and an all-in-one built-in UI designed to minimize distractions.

We aim for our solution to meet use case requirements which specify standards for UI functionality, timer and presence detection accuracy, physical size, as well as visual and auditory signal response times. With all components functional and integrated, we aim for our solution to have a 90% success rate in being able to accurately carry out a timed study session and dispense a selected snack, with a 10 second limit between session end, sound & light notifications, and snack dispensation.

Our vending machine is comprised of the laser cut physical enclosure, motors (one per snack selection) to dispense snacks, a pair of I2S speakers and LED strips to notify the end of a session, a PIR sensor to detect user presence throughout the session, as well as a touchscreen display, which hosts a custom built GUI for users to interact with and choose their snack & session settings.

https://course.ece.cmu.edu/~ece500/projects/s25-teame5/

System Description

System Evaluation

Conclusions & Additional Information

Our implementation is built around a Raspberry Pi 4 (RPi 4) as the central controller. It interfaces a touchscreen displays which runs a custom user interface built with a PyQt framework, providing session control, preferred reward selection options, and system feedback. Additionally, the RPi is directly connected with 6 motor drivers via GPIO pins, each responsible for driving a corresponding NEMA 17 stepper motor that dispenses snacks by rotating an aluminum coil. Moreover, LEDs and speakers offer visual and auditory cues to show different states of the machine. Passive infrared (PIR) sensors also monitor the user’s presence, pausing the timer based on infrared radiation detection to create a sense of accountability within the user.

We conducted over 20 iterations for each of our metrics. For snack dispensing, we found that the target holding torque was sufficient to dispense both heavy and light snacks; however, if a snack compressed the spring mechanism–regardless of size or weight–the dispensing would face issues.

Over the course of our project, we built a prototype of a personal vending machine from scratch. Through this process, we learned the importance of breaking down large tasks into smaller milestones to stay on schedule. We also realized that communication was critical to adjust to challenges, plan contingencies, and support one another to keep the project moving forward. Last but not least, that starting early is never too early. If continued, VendiBaddie could evolve into a more compact personal machine with a more accessible UI, potentially integrating with a web app or using ML to optimize the user’s experience or rewards based on study habits.

Use-Case Requirement Testing:

Back

Front

LED strip

Touchscreen

NEMA 17 Motors

PIR sensor

I2S speakers

Metric

Target

Actual

UI functionality

90%

100%

Timing consistency

≤ 500ms

~500ms

User detection range

≤ 1m

varies*

Delay after user leaves

≤ 1s

varies*

Snack capacity

3 × 6 types

~3 × 6

Time to dispense snack

≤ 10s

≤ 5s

Snack dispensing torque

≥ 25in-oz

~25in-oz*

Notification feedback latency

≤ 1s

≤ 1s

Design Requirement Testing:

System

Test Inputs

Passing Requirements

Session Timer

Starting timed sessions at 25, 30, & 45 min

Timer displays and counts down with ≤0.5s latency

Touchscreen

Touch event simulations at various points

Accuracy ~ 9 out of 10 trials

Stepper motor

Push snack to last coil

Motor produces desired rotation to dispense snack

PIR Sensor

User leaves detection range

Timer pauses if no detection registered

Touchscreen Integration Test

Target touch event handling

Properly processes inputs and triggers outputs with ~90% accuracy

System Integration Test

Timer completion signal to notification system

Motor rotation for 1 portion dispensation, LED and audio feedback are triggered

End-to-End Test

Start timer, test pausing capability, allow countdown to reach 0

1 snack dispensation per study session + notification system through LEDs and sound

Key GUI screens