Project

# Title Team Members TA Documents Sponsor
23 Drink Dispensing Robot
Andrew Jung
Ethan Cao
Megan Cheng
Frey Zhao proposal1.png
proposal2.png
proposal3.pdf
# Drink Dispenser Robot - Team 23
## Ethan Cao, Megan Cheng, Andrew Jung

### Problem Statement:
Too often, we’re tired or distracted and put off getting a drink of water. Those small delays add up, leaving us dehydrated and drained without even realizing it. Additionally, many users may get tired of drinking water and would prefer flavored drinks. Dehydration impacts focus, energy, and overall well-being, yet it happens so easily in our daily lives.

### Solution:
The solution is to create a drink delivery ecosystem that seamlessly connects a mobile robot, a drink dispenser hub, and a callback system for user interaction. The robot is responsible for navigating the environment, locating both the dispenser hub and the user’s cup, and safely transporting beverages. The hub acts as the liquid source, with the ability to dispense various ratios of drinks, allowing user choice of mixed drink. The callback system enables the user to request service without needing to approach the dispenser themselves. Together, these subsystems ensure a smooth workflow: the robot docks at the hub, the hub dispenses the desired beverage into the cup, and the robot delivers the drink back to the user. Specifically, the robot integrates multiple subsystems. Its detection subsystem includes a bumper with left/right detection switches, cliff-detection sensors capable of recognizing drops greater than 1 inch, and IR detectors for locating both the dispenser and coasters. These components are connected to the robot’s microcontroller (ESP32) over I2C. On the hub side, the pump subsystem controls two liquid channels via servo-driven pumps, with encoders ensuring accurate dispensing. A precision docking subsystem with IR transmitters and sensors aligns the robot under the dispenser nozzle to prevent spillage. Like the robot, the hub uses an ESP32S3 microcontroller to communicate that the drink is desired and the ratio of the drink. Then using the IR detector the robot locates the user and travels with the cup. This ecosystem ensures hydration is made convenient, safe, and customizable with minimal user effort.

### Visual Aid (File is submitted below)


### High-level requirements list:
- The robot can retrieve the drink in 90 seconds
- No significant amount of liquid will spill from the machine onto any surface
- The robot will not get stuck on the dispensing station/coaster or fall off of the table.

## Design

### Block Diagram (File is submitted below)

### Subsystem Overview:
A brief description of the function of each subsystem in the block diagram and explain how it connects with the other subsystems. Every subsystem in the block diagram should have its own paragraph.

#### Robot

##### Detection Subsystem
The detection subsystem contains all of the sensors required to navigate the environment effectively. The sensors will be housed on a separate PCB and communicate with the microcontroller over I2C. The bumper will use a bar and 2 switches to determine if the robot is contacting any object. The cliff detection system will use downward facing distance sensors to determine if the robot is approaching the edge of the table. The IR detectors will help the robot find the location of the dispenser and coasters.

- The bumper system shall be able to detect a collision anywhere on the front surface of the robot
- The bumper system shall be able to detect if the collision occurred on the left or right half of the front
- The cliff detection system shall detect any drop greater than 1 inch
- The IR detector shall determine the brightness of the IR light received

##### Drive Subsystem
The drive subsystem will use an H-bridge IC to drive 2 brushed motors with integrated encoders. It will communicate wheel positions back to the microcontroller using a quadrature signal and receive commands from the microcontroller with PWM signals.

- The drive subsystems shall not cause overcurrent
- The drive subsystem shall drive at over 1 feet/second unloaded and 0.5 feet/second loaded with a cup

##### Power Subsystem
The power subsystem will power the robot using a 9V battery and regulate the battery’s voltage down to 3.3 volts for our logic devices.

- The power system shall provide up to 250mA at 3.3 volts and protect against overcurrent events.
- The power subsystem shall protect the battery from overcurrent through a fuse
- The battery shall be accessible and replaceable with basic hand tools

##### Microcontroller (Seeed Studio ESP32S3)
The microcontroller will send signals to all of the other subsystems on the robot and communicate with the dispenser and coaster over the ESP-NOW protocol.

- The microcontroller shall not exceed 80 degrees celcius

#### Drink Dispenser System

##### Pump Subsystem
This system contains an H-bridge IC that has control over two servos. These servos will then be connected to a pump to dispense the liquids. The servos will also be connected to encoders which will communicate the servo positions to allow accuracy in dispensing of the two liquids.
The pump will ensure that liquid is dispensed in a quick manner only when the robot is under the nozzle to obtain the goal of not spilling any significant amount of liquid onto the robot or the drink dispenser hub.

- The pump system should be accurate to the nearest tablespoon

##### Power Subsystem
The power subsystem will be used to power the servos and the microcontroller.
- Similarly to the robot the power subsystem will also protect against overcurrent events and protect the battery through a fuse

##### Precision Docking Subsystem
This contains the IR transmitter as well as any sensors or components that the robot might use to dock at the drink dispenser hub.

##### Microcontroller (ESP32S3)
This will be the same microcontroller as is on the robot with the same goal of transmitting and receiving signals from the other systems to operate the pumps.

##### Callback Subsystem
- The user interface of the system
- Allows the user to call and send the robot with custom ratios of drink
- Uses ESP32 to communicate with the robot given the inputs from User Subsystem

##### User Subsystem
- Has call and send buttons that will call the robot if currently not at user, and send the robot to the hub if robot is at the user
- Ratio dial will customize the ratio between the water and extract (electrolytes, flavor, etc)
- IR transmitter will allow the robot to detect the user by emitting IR

### Tolerance Analysis:
Identify an aspect of your design that poses a risk to successful completion of the project. Demonstrate the feasibility of this component through mathematical analysis or simulation.

#### Accurately able to locate the dispenser and the cup using the IR
We can create a testing jig with an infrared LED with an infrared sensor on a pivot to determine how accurately we can find the infrared LED.

#### Accurately dispensing liquid
Can calculate the accuracy and rate of dispensing liquid using the pump’s datasheet

#### Being able to path efficiently and align with the dispensing station
We can test pathing using a robotics simulation software

### Ethics and Safety
The primary ethical concern of the project is to avoid harm to the end user according to ACM general ethical principles sections 1.2: Avoid Harm and 1.3: Be Honest. Due to the nature of our project, users will likely ingest liquids which have interacted with our project. Therefore, we need to ensure our components are food safe and that we warn our users of any potential contamination. We will need to provide functions for the user to clean the dispenser and flush any potentially harmful substances out. We will also need to prevent misuse by labeling what liquids are allowed in the dispenser station.

Environmental Sensing for Firefighters

Andri Teneqexhi, Lauren White, Hyun Yi

Environmental Sensing for Firefighters

Featured Project

Hyun Yi, Lauren White, and Andri Teneqexhi earned the Instructor's Award in the Fall of 2013 for their work on the Environmental Sensing for Firefighters.

"Engineering is all about solving real life problems and using the solutions to improve the lives of others. ECE 445 allows you to actually delve deeper into what this really means by providing students the chance to undergo the engineering design process. This requires taking all of the theoretical knowledge, lab experiences, and ultimately, everything that you have ever learned in life, and applying it to your project. Though, there is structure to the course and deadlines in place to measure your team's progress, the actual design, implementation, and success of your project is all determined by you. Unlike any other course that I have taken, I've gained an appreciation for the utilization and benefits of external resources, unforeseen scheduling delays, delegating tasks, and most importantly, teamwork. I consider ECE 445 to be a crash course into real life engineering and a guide to become a successful engineer." -- Lauren White