An Automated Bartender powered by Arduino
Based on the work of Lukas Šidlauskas:
https://create.arduino.cc/projecthub/sidlauskas/barbot-cocktail-mixing-robot-0318aa
https://github.com/sidlauskaslukas/barbot
For my BarBot I wanted to make sure it was rock-solid reliable in a crowded bar environment so eliminated the touchscreen menus and wireless connectivity present in other versions of this project. Nearly any error can be dealt with by simply power cycling the device. Since there is no Raspberry Pi or SBC there is no risk of corruption when this is done.
16 popular drinks (15 alcoholic and 1 non-alcoholic for non-drinkers and so that children can participate with supervision) are available from 16 arcade style buttons. A printed menu lists what button number corresponds to which drink.
Since the BarBot is designed for a working bar- and yes even in Shenzhen we are subject to surprise health inspections I had to do without pumps or difficult to clean feed lines. All of the components that require nightly cleaning are the same that bar staff are already accustomed to cleaning- spirit measures and bar mats. All drive components and bearings have been moved from under the pour spouts to well above or behind so there is no risk of an accumulation of sugar-rich liquids gumming up hard to clean moving parts of the machine or attracting vermin.
This BarBot is a functional novelty- it's something fun for visitors to play with. Perfect for my home city of Shenzhen where a large number of patrons are tech professionals. It is not secured for true commercial use- and with a bar full of half-drunk hardware engineers it would be pointless to try. In this case, it's better to rely on good faith then pretend you could stop them if challenged. Patrons could still manually press their cups to the spirit measures to manually dispense alcohol if they wanted to- but they could also reach over the bar and steal liquor while the bartender's back was turned. So far none have because why ruin the fun when there's no "hack" in doing so? If you really wanted to, a clear acrylic panel could be added to the front to prevent any manual dispensing, but it's really a lot less fun that way.
Portion control and payment is handled via an inexpensive arcade token acceptor. A customer can pay the bartender for a cup of ice and a token. When the correct token is inserted into the BarBot a contact is momentarily closed. The customer then has 60 seconds to press a drink selection button. That same contact can be closed with the key switch, in which case no tokens are needed for any orders while the switch is in that position.
Barbots of this configuration typically use either a servo or a stepper motor with a lead screw to depress the spirit measure spout depending on the type of dispenser it is. My code changes allow for either as RAMPS boards can control both steppers and a servo.
In the build and demonstration videos, you'll see that the full 25ml "shot" the spirit measure contains is usually only partially dispensed. This is because the actual shot size is defined in the code as a function of how long the spout is depressed. This allows for finer tuning of the drink flavor and portion size which would not be possible if only 25ml increments were used.
This BarBot was designed to be easy to build with off-the-shelf OpenBuilds components, V-Slot aluminum extrusion, and low-cost 3D printer parts. The heart of the BarBot is a standard Arduino Mega, RAMPS 1.4/1.5 and A4988 stepper driver combination as used in many 3D printers.
See Build Guide.
Guide and SolidWorks CAD drawings courtesy of Vexelius.
1x Arduino Mega 2560
1x RAMPS 1.4/1.5
2x A4988 Stepper Driver
Available as a kit
1x RAMPS 1.4/1.5 SD Card Reader
10x10 Drag Chain
2 Meters
V-Slot® 20x80 Linear Rail
3x1200mm (Two vertical risers and one horizontal carriage rail)
2x1160mm (Lower brace, shelf for bar mat)
V-Slot® 20x40 Linear Rail
1x 1200mm (Horizontal rail for drag chain)
2x 600mm (Horizontal legs)
1x V-Slot® NEMA 17 Linear Actuator Bundle
500mm (400mm is better if you can get it or make it yourself)
1x V-Slot Gantry Set
20mm - 80mm (Universal)
Delrin Solid V Wheels
1x Motor Mount Plate - NEMA 17 Stepper Motor
GT2-2M Timing Belt
3 Meters
1x GT2-2M Timing Pulley - 20 Tooth
30x Black Angle Corner Connector
Openbuilds Low Profile Screws
60x M5*8
4x M5*40
6x M5*25
4x M5*15
Aluminum Spacer
4x 3mm
4x 6mm
50x Tee Nuts
50x Drop In Tee Nuts
30x Nylon Insert Hex Locknut - M5
Slot Cover™ / Panel Holder
1250mm
2x Bar mat
V-Slot® 20x20 Linear Rail
530mm x 4
165mm x 5
130mm x 4
(All with 5mm threaded ends)
25x M5*15 Openbuilds Low Profile Screws
1x Coin Acceptor
(Or similar if you modify the lower lasercut panel to fit)
16x 27x27 Illuminated Arcade Buttons
1x 22mm Emergency Stop Push Button Switch 12V DC LED Illuminated (or similar)
1x Power Socket Switch IEC 320 C14
1x 12v Power Supply, 150w (Part No. MS-150-12 or similar)
1x Ribbon cable to 18 pin connector 40CM long (Optional but helpful)