Archive

Archive for the ‘Lazy Bartender’ Category

Lazy Bartender v0.1

August 31st, 2008

Coop is over I finally have a chance to get back to the bartender project. Now that some progress has been made on the programming end, I feel its fit to start discussing the project on this blog.

The bartender project is the biggest hardware project I’ve undertaken to date. It was inspired by the Virtual Bartender by Digital Beverages. I read an article on the product a few months back on Wired (or maybe it was Popular Science…) and was enthralled by the idea. As a person who loves his alcohol (as evident in my participation as a developer on Urbandrinks.com), I too wanted one of these machines, but was immediately turned off by the price – $2,575!!!

And thus the lazy bartender was born. The goal was to make a simple version of the virtual bartender for under $300. The idea was to take out all the heavy hardware responsible for controlling the robot, and use a multimedia computer to control it instead. Now days everybody seems to have a computer in their living rooms or kitchens. Either as HTPCs (Windows Media Centre, MythTV) or a kitchen PC, these computers are becoming increasingly popular for extensive feature list and cheap price. We decided that we would build software that would run on top of these computers that would be responsible for controlling our lazy bartender.

So here is where we are at currently, out V0.1:

Hardware:
The hardware is currently very simple. A relay board is connected to the parallel port. Having worked with the parallel port before, I decided to use it again for its ease of use and reliability. The relay board has 4 relays on it, that can be turned on or off by the parallel port. Each relay is attached to a gravity based solenoid valve. In an order to save money and decrease the complexity of the project, we used gravity to push the drinks instead of a pump. Both the solenoids and the relay board use 12V.

Software:
Deciding the programming language was a much debated topic. I wanted to choose a language that would allow me to prototype quickly and worked cross platform. Initially I was thinking of using Python with PythonCard as a graphics library. However, I finally decided on Visual Basic 6 (didn’t have .NET on me). I absolutely hate Basic as a programming language, but you can’t argue with its ease of use.

The fact that Visual Basic 6 runs on Windows only pretty much crossed the language off the list during an earlier decision process. However, faced with the fact that I would have to create separate programs for Windows and Linux (Macs don’t even have a parallel port) since the parallel port operates differently in each system anyway, Visual Basic came back in to the foray due to the ease with which one can prototype a functional graphical program.

Hell, if this project really takes off, we’ll look into switching to a more “sophisticated” programming language.

So what can the bartender do now??
I can use my program to turn the solenoids on and off and pour my self a drink!! Pretty cool huh!!

Things to do for v1.0:

Hardware:
I need to design containers to hold the various alcohols and mixers. A lot of questions here since gravity is used. How do I design a container that won’t spill any liquid on to the electronics when opened?? I also need to procure or design a cabinet to house all my hardware.

Right now the user has to use the software provided to calibrate a shot. Essentially when the user clicks a button once the machines starts pouring. When the button is clicked a second time, the machines stops. The user can use this method and a shot glass to calibrate a shot. This technique (Bucket and Stopwatch technique), works but isn’t the most efficient. The user will have to do this for every type of alcohol and mixer because of their different viscosities. A flow meter of sorts would be a better solution. Due to the low cost of the project it might be better to pursue a hardware based design, like an indexer, or a modified toilet bowl float valve.

Software:
Right now the software can turn on and off the solenoid valves. It can also allow the user to calibrate the solenoid valves to pour a shot. For v1.0 a data storage has to be chosen – text files (currently used) or database (probably MySQL)?? There has to be a database of recipes. Once the user has been calibrated the solenoid valves to pour a shot, the software should be able to use this information to pout a drink as outlined by a recipe.

The software shouldn’t take too long. A good weekend should suffice. Its the hardware I am worried about. For some reason I can’t wrap my head around the design of a container. How do I design a container that will be easy to load and unload without any spillage? Right now I am envisioning something with Tupperware…

Anyway, all these developments are quite exciting, and working on this project has been a lot of fun!!

Darius Gai Lazy Bartender