top of page

Automatic Latte Art Maker

ROS2, Python

Group of 4:  3/26/24 - 4/18/24

Overview

Our final project for my robotics class involved a group project with the entire class. We were tasked with creating an automatic latte maker that required no human interference to work. We also needed to incorporate aspects from all of our projects over the course of the semester into the final latte maker. We split into four different subteams: coffee, milk, art, and transportation. I joined the art team, which was responsible for dispensing art onto the latte before it was delivered to the customer. 

Latte Art Dispenser

We were able to successfully create a machine that used a stencil to dispense cinnamon art onto the latte. When the customer ordered their latte, they also picked which Super Mario Character they would like to have for their art. This information would be uploaded onto an API, which would tell our Raspberry Pi which stencil to choose when the latte arrived at our station!

Demo of Our Latte Art

Planning

Because this was a class-wide project, we set a few milestones and a general timeline. Importantly, we set dates for pitches, ordering parts, an integration deadline, and then the final run-through. The integration deadline was a deadline set that required all individual teams to have their parts working, so that we can try to integrate everything to communicate and work through one system.

Design

We first had a few brainstorming sessions where we ideated potential designs.

IMG-20240331-WA0004.jpg
IMG-20240331-WA0002.jpg
WhatsApp Image 2024-03-31 at 11.44.59_7ac6b085.jpg

Initial Sketches/Brainstorming

After discussing, we decided to go with a method that used a DC motor to use a sifter to dispense the cinnamon for our latte art. The DC motor would spin flaps that would mix the cinnamon inside the sifter, which would then dispense from the mesh. We planned on having the ability to pick from a few images for a latte art design, which would require a stepper motor. All of the stencil images would be on one circular sheet of acrylic.

Solenoid

Sifter/Shaker

Stencil Sheet

Electronics Box

Stationary Wall

Funnel and Cinnamon Catcher

Slot for Cinnamon to Fall Through

Final Design

This initial design idea didn't work well. The cinnamon would dispense unevenly and at a really slow rate. We changed our design to incorporate a solenoid, which would "tap" on the metal sifter to dispense the cinnamon. This was what we ended up going with in our final design!

​

We also wanted to guarantee that our system wouldn't get too messy with cinnamon everywhere! For an easy sweeping solution, we included a small slot on the acrylic with the stencils and a stationary wall with loose fabric that would push the cinnamon into the slot as the acrylic rotated. We had a small funnel that would go into a cup to store the excess cinnamon. The cleaning system is labeled in red above.

​

We also needed to keep in mind that our design had to be compatible with all of the other teams' systems. Specifically, the transport team was responsible for sending the latte from the coffee machine to the milk station to the latte art station (my team), and then to the customer. At this point, we had established that the transport team intended to use a Create3 robot which would solely use rotational motion to go between stations. Communication between systems, such as answering when the cup arrived at a station or a station finished its function, would be done through an API, which in this case we used AirTable.

Picking a Stencil: Machine Learning

Because we needed to incorporate something from every project throughout the semester into the latte system, our team decided to use machine learning for the customer to pick which stencil they would like to use. Keeping in the theme of Super Mario, we chose to pick three stencils from characters within the franchise.

Training the algorithm using Teachable Machine was easy. To make it easier for the model to differentiate between the stencils, we had each stencil be a different color to make them more distinctive.

3 Stencil Designs

When the customer chose which stencil they wanted, they would place it under the buttons (as shown in the photo on the right), where a Pi camera was positioned above it. Then, after picking which size espresso they wanted, they would click start. This start button initiated the Pi camera (along with all of the systems in the entire system), and it would take a photo of the stencil. Running this photo through the image recognition model, after determining which stencil the customer wanted it would update our API. The pi controlling the actual latte art would pull this data from the API to produce the correct latte art design.

Ordering Station

Results: Incorporation with the Entire System

Ultimately, our entire subsystem was successful in producing latte art that could be chosen using machine learning. A video of it working can be found in the overview section. 

Challenges/Areas of Improvement

  • The final product of our art was heavily dependent on how high the liquid/foamed milk was in the cup. if the level was too low, our design would disperse too much and look like a blob.

  • Incorporate a more aesthetic excess cinnamon catcher

bottom of page