The foobar is an automated drink delivery system developed on top of the Spark framework (www.spark.io). With a Spark Core as the brains on-board, the foobar can deliver you drinks with the touch of a button, over wifi.
Over the course of the summer, I've been lucky enough to work with the folks at Spark Devices. I've created a couple of projects, the others are also residing on hackster.io. However, for my main project, I built the foobar: an automated cocktail machine powered by a Spark Core. My personal calendar aligned well with this project, as my 21st birthday being at the end of the summer served as an extra incentive to pursue automated drink dispensing with a concrete deadline in sight.
The foobar has two components: the hardware and the web interface.
The hardware is enclosed in the body of an old Mr. Coffee machine. The power goes in to an additional on-board enclosure where the brains of the operations lie. A board with the Spark Core connected to a motor driver serve as these brains. The liquid ingredients are transported from separate inputs into a central funnel via four DC 12V peristaltic pumps, when commanded by the Core. Peristaltic pumps are nice because they not only provide accurate metering, but also because the liquid only ever touches the tubing, thus the tubing is all that needs to be food grade. When the Core receives instructions from the web, it will write a HIGH or LOW to the pin connected to a pump (via the motor driver) to turn it on or off. The firmware, titled "drinkVend.ino", that runs on the Core was written in the Spark web IDE and is below, as well as in the Github repo.
The web interface is where one can personalize and order their drink. Under the setup button, enter the Core ID, access token, and ingredients connected to the foobar and it's ready to go. Select a size for the drink, and slide the ingredient specific range-sliders for the desired number of parts. Once one is satisfied, hit "mix" and the Spark.function() is called on the Core via the Spark Cloud. The function is called with a string of four comma separated integers e.g. "12,0,6,24" that represent how long each pump should be turned on for (in seconds) to mix the desired drink. The firmware handles the rest, and a drink is dispensed.
The web interface can be viewed here: http://www.maxeusterbrock.com/Vending/foobar.html
Fortunately I was able to complete the foobar in time for my birthday; it served its role as a bartender quite well.
One issue that was realized post-production is that the peristaltic pumps seem, at least so-far, to be taking some of the carbonation out of any pop inputs (Coke and Ginger Ale have been tested).
I would like to shout-out the whole team at Spark Devices for their great support throughout the entire process, Jeremy Press for designing the foobar logo, and Leland Nordin for both the setup drop-down panel and getting me oriented with Bootstrap.