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. |