The Bartender

About the project

A voice-controlled bartending robot serving drinks in a visually pleasing way.

Project info

Difficulty: Moderate

Platforms: Everything ESPRaspberry Pi

Estimated time: 2 weeks

License: GNU General Public License, version 3 or later (GPL3+)

Items used in this project

Hardware components

12V Solenoid Valve - 1/2in 12V Solenoid Valve - 1/2in x 6
BUSIO RELAY BOARD BUSIO RELAY BOARD A board with at least 6 relays x 1
ESP32-C3-DevKitC-02 ESP32-C3-DevKitC-02 Any ESP32 will do x 1
DC-DC Buck Converter 7-24V to 5V 4A DC-DC Buck Converter 7-24V to 5V 4A x 1
Battery Holder 2AA 2 x AA Battery Holder 2AA 2 x AA Any combination that gets you to 12V x 1
Stepper Motor NEMA17 12V 350mA Stepper Motor NEMA17 12V 350mA 12V might be overkill but i like my electronics beefy x 1
TB6600 Stepper Motor Driver TB6600 Stepper Motor Driver x 1
SMD LED RGB WS2812B Strip of 10 SMD LED RGB WS2812B Strip of 10 I like the WS2812B cause they're generally super easy to setup and come with a lot of LED concentration x 1
IQaudIO Pi-DigiAMP+ IQaudIO Pi-DigiAMP+ To get that speaker going x 1
Full Range Speaker Full Range Speaker (I used a Jeep Wrangler speaker, don't ask why) x 1
USB 2.0 Mini Microphone Dongle USB 2.0 Mini Microphone Dongle For the Pi x 1
Weight Sensor (Load Cell) 0-3kg Weight Sensor (Load Cell) 0-3kg x 1
Bench Power Supply Bench Power Supply x 1
A whole lot of jumper wires A whole lot of jumper wires x 1
Ball bearing Ball bearing x 1
Empty metal tubing Empty metal tubing x 1
Shaft Coupler Shaft Coupler To couple that motor with the metal tubing x 1

View all

Software apps and online services

MacOS MacOS
PiOS PiOS
Arduino IDE Arduino IDE
Visual Studio Code Visual Studio Code
RVC Inference HF RVC Inference HF For that voice changer

Hand tools and fabrication machines

Any Drill Any Drill x 1

Story



This project came from the curiosity of automating procedural tasks done by humans. How hard can pouring different liquids in glass be? Well it turns out it's not that complicated with a few tubes, a few pumps and the right organisation. But that would be boring. So I decided to create a project that would combine mechanical action with coding to empty the liquids into a glass in the most theatrical way i could think of. Bottle rotating around a central axis.

This led to me playing with solenoid valves to find out how i wanted them to unload, discovering the vacuum effect that happens in bottles when they unload. Then, I needed to make those valves start their unloading with the presence of a glass so originally, I went for a proximity sensor which then evolved into a weight sensor (kind of like a Pokemon).

But the hardest was still to come. The mechanical action and its wireless triggering. For this, I decided on an ESP32 since it has onboard Wi-Fi and Bluetooth and enough ports to control 6 relays. I opted for simple network calls by pairing each relay to an endpoint.

For the mechanical action, I had to secure the motor in place at the foot of the base and create some sort of coupling for the top rotating part. The top rotating part is a steel round empty tubing forced through a ball bearing with the ball bearing itself attached to the base. I then stuffed a wooden round tube in the metal tubing all the way down to the motor and coupled it with an hexagonal screw piece.

Finally, I coded the API calls to Whisper and chat GPT to transform my voice into text and extract the cocktail recipe from the demand of the user. And recorded some voice acting lines to make the robot respond to the user (in Harry Styles' voice cause why not)

I then connected all the bottles to the rotating top piece and closed them with the solenoid valves. With the code in place it was time for a celebration :)

Code

The whole code base

Download

Credits

Leave your feedback...