Project

# Title Team Members TA Documents Sponsor
23 Drink Dispensing Robot
Andrew Jung
Ethan Cao
Megan Cheng
Frey Zhao design_document1.pdf
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.

Mushroom Growing Tent

Elizabeth Boyer, Cameron Fuller, Dylan Greenhagen

Mushroom Growing Tent

Featured Project

# Mushroom Growing Tent Project

Team Members:

- Elizabeth Boyer (eboyer2)

- Cameron Fuller (chf5)

- Dylan Greenhagen (dylancg2)

# Problem

Many people want to grow mushrooms in their own homes to experiment with safe cooking recipes, rather than relying on risky seasonal foraging, expensive trips to the store, or time and labor-intensive DIY growing methods. However, living in remote areas, specific environments, or not having the experience makes growing your own mushrooms difficult, as well as dangerous. Without proper conditions and set-up, there are fire, electrical, and health risks.

# Solution

We would like to build a mushroom tent with humidity and temperature sensors that could monitor the internal temperature and humidity, and heating, and humidity systems to match user settings continuously. There would be a visual interface to display the current temperature and humidity within the environment. It would be medium-sized (around 6 sq ft) and able to grow several batches at a time, with more success and less risk than relying on a DIY mushroom tent.

Some solutions to home-grown mushroom automation already exist. However, there is not yet a solution that encompasses all problems we have outlined. Some solutions are too small of a scale, so they don’t have the heating/cooling power for a larger scale solution. Therefore, it’s not enough to yield consistent batches. Additionally, there are solutions that give you a heater, a light set, and a humidifier, but it’s up to the user to juggle all of these modules. These can be difficult to balance and keep an eye on, but also dangerous if the user does not have experience. Spores can get released, heaters can overheat, and bacteria and mold can grow. Our solution offers an all-in-one, simple, user-friendly environment to bulk growing.

# Solution Components

## Control Unit and User Interface

The control unit and user interface are grouped together because the microcontroller is central to the design of both, and they are closely linked in function.

The user interface will involve a display that shows measured or set values for different conditions (temperature, humidity, etc) on a display, such as an LCD display, and the user will have buttons and/or knobs that allow the user to change values.

The control unit will be centered around a microcontroller on our PCB with circuitry to connect to the other subsystems.

Parts List:

1x Microcontroller

1x PCB, including small buttons and/or knobs, power circuitry

1x Display module

1x Power supply

## Temperature Sensing and Control

The temperature sensing and control components will ensure that the grow box stays at the desired temperature that promotes optimal growth. The system will include one temperature sensor that will record the current temperature of the box and feed a data output back into our PCB. From here, the microcontroller in our control unit will read the data received and send the necessary adjustments to a Peltier module. The Peltier module will be able to increase the temperature of the box according to the current temperature of the box and set temperature. Cooling will not be required, as maintaining a minimum temperature is more important than a maximum temperature for growth.

Parts List:

1x Temperature Sensor

1x Peltier module

## Humidity Sensing and Control

The humidity sensing and control system will work in a similar way to the temperature system, only with different ways to adjust the value. We will have one humidity sensor that will be continually sending data to our PCB. From here, the PCB will determine whether the current value is where it should be, or whether adjustments need to be made. If an increase in humidity is needed, the PCB will send a signal to our misting system which will activate. If a decrease is needed, a signal will be sent to our air cycling system to increase the rate of cycling, thereby decreasing the humidity within the box.

Parts List:

1x Humidity Sensor

4x Misting heads

Water tubing as needed

## Air Quality Control

The air filtration system is run constantly, as healthy mushroom growth (free of bacteria) needs clean, fresh air, and mycelium requires and uses up oxygen as it grows. Additionally, this unit is connected to the hydration sensing unit- external humidity is in most cases going to be lower than internal humidity, and cycling in new air can be used to decrease humidity. When high humidity is detected, the air filtration system will decrease the internal humidity by cycling in less humid air.

Parts List:

Flexible Air duct length as needed

1x Fan for promoting air cycling

# Criteria For Success

Our demo will show that each of our subsystems functions as expected and described below:

For the control unit and user interface, we will demonstrate that the user can change the set temperature and humidity values through buttons or knobs.

The humidity sensing and control system’s functionality will demonstrate that introducing dry air into the device activates the misting system, which requires functional sensors and a water pump.

The temperature sensing and control system demo will involve showing that the heater turns on when the measured temperature is below the set temperature.

The air quality control system’s success will be demonstrated as air movement coming from the fan enters the tent.

Project Videos