Version 2.0? Yeah that’s right!!!
Order a few test parts but the biggest change will be shifting over to Raspberry Pi from Arduino! I have a lot of things I learned and a few new ideas to mix into this version. The Limited GPIO pins will be a problem, so I’ll likely have to use some shift registers or the like to get the extra IO pins.
Version 1.5 is now Complete!
Octabar 1.5 is better than ever!!! It’s debut party was a huge success!!! All the user feedback incorporated into Version 1.5 worked perfectly!
Based Version 1.5 in progress…
Based on “customer” feedback. Version 1.5 has removed the web based control and replaced it with an LCD and Buttons (Next,Previous, Details and Select). This allows people without a phone to walk up and order a drink! Additionally it allows you to see the Ingredients in a drink before you make it! I have also added a pressure sensor to control the PSI in the bottles.
Decided to make an adjustment in the design: I am now using an aquarium air pump to pressurize the bottles with a few psi and pump the liquids up and out instead of gravity feeding the liquids. After a few test I learned that the gravity feed is to unpredictable. Some times it works, some times the cup is not full enough. I knew the fullness of the bottle would have an effect but there is more than just that going on… So to KISS I am adding an aquarium pump and flipping the bottles right side up.
So, how did this come about? A challenge from a friend to make a machine that makes the perfect rum & coke – well that was too easy, so I decided to design a machine that made more than just a rum & coke. It may have gotten a little out of control, it now makes 47 different drinks! I wanted to keep things straight forward and uncomplicated. I wanted to make it with out spending a lot of cash by using what I had around the house, for example 2 liter soda bottles…
My next set of thoughts were focused on the approach. A mechanical arm? Move a cup around under the bottles? And many other possibilities. I stuck to a simple philosophy here – KISS Keep It Simple Stupid! The goal was to make drinks controlled by a computer not to add the complexities of moving parts unless needed. So instead of bringing the cup to the bottles I am bringing the bottles to the cup via some plastic tubing.
Next up, how would you interact, order or request your drink? I toyed with the idea of an LCD and some cursor controls to navigate a menu…but something hit me. At my 4th of July party last year I was completely shocked at what a hit the Apple DJ was at the party! Everyone seemed to have an iphone! Out of nearly 100 guests (yeah it’s party!) there were at least a dozen and a half people connected with their phones requesting songs. So reflecting on that, I decided that Octabar simply had to be accessible from the iphone and in this case anything with a web browser.
Since my machine did not have a cool moving arm, I still wanted it to have some kind of cool factor – So I decided to find a way to make it talk and inform you as to what it was doing while it completed your request.
The next challenge was the how? What components do I choose? What was my budget? What could I find for ideas? This is certainly not the first robot or computer controlled bar tender i wondered what has worked and what hasn’t. – simply put a lot of research and time – thanks again google. I quickly landed on the arduino platform – this was my intent all along but I still wanted to be sure it provided all the features I wanted to deliver and I quickly was able to find some great examples on Sparkfun.com and in Arduino.cc. My goals were to keep it cheap ( that ended up kind of being a FAIL!) and use common items around the house as much as possible. In the components list below you will see where I landed…
Again, there could simply be no end to this project I have a bunch of future enhancements that I may or may never do and i’ll review a few of those thoughts later on.
Now on to the components…..
8 – 2 liter soda bottles (gathered over a few weeks as I assembled the Arduino, Shields and did the programing)
8 – Solenoids 12v DC 400ma (eBay)
8 – TIP102 Transistors TO-220 Package
8 – LEDs 3-5 volt
8 – 2.2k resistors
8 – 1k resistors
8 – diodes
8 – JST 2 position connectors
1 – TTS SpeakJet chip (sparkfun)
16 – 1/2″ to 1/4″ barbed adapters – (Local hardware store – ebay was a fail for me – tried twice and got the wrong items)
A bunch of hookup wires
8′ – 1/4″ ID Nylon hose (not OD!)
2 – 8′ 1″x4″ I used maple wood trim that I had laying around
1 – Solderable perf board (eBay – bought and assortment)
1 – Arduino Uno(AdaFruit)
1 – Voiceb=Box Sheild (sparkfun)
1 – WiFly shield
4 – 6 Pin Stackable Headers
4 – 8 Pin Stackable Headers
12 volt 400ma power supply (found one in my electronics junk pile!)
12volt AGM battery incase I decide I don’t want to plug it in
1 9 volt battery pack for Arduino (AdaFruit)
1 Aquarium air pump (capable of a 2-5psi)
8 dual hole #4 rubber stops for the soda bottles
Coat hanger to create a loop over the cup area to place all nylon hoses thru and over the cup
Paint, nylon zip ties, screws, glue and other misc. items
Arduino Uno or Arduino Duemilanove – nothing special to do with this…
VoiceBox Shield – solder 2 8 pin and 2 6 pin stackable headers to the board
Follow this tutorial on Spakfun.com to attach the TTS256 Chip to the Voicebox Sheild – http://www.sparkfun.com/tutorials/166 – be very careful soldering to the chips. Set your iron to roughly 650 degrees, tint your wires and then when soldering do not hold the iron to the chip for more than 2 – 3 seconds. If you have the Surface Mount package on the VoiceBox Shield the same technique applies, you just have less space to work with. The pinouts for the surface mount version of SpeakJet chip are the same as the DIP package. You could also use solder paste and a hot air soldering iron.
WiFly Shield – solder 2 8 pin and 2 6 pin stackable headers to board
Now for the solid state “relays”
I recommend you build one on a bread board to be sure you understand
how to set it all up
Eagle board design coming soon…
Connect a 2.2k Resistor to the Base (Left or 1st Pin) of the TIP102 Transistor
Connect the Emitter (Right or 3rd Pin) to ground
Connect the Collector (Center or 2nd Pin) to one side of your solenoid and
to the side of the Diode with the strip (Cathode or Positive)
Connect the other end of the Solenoid and the diode (Anode or Negative)
to 12 volts positive
…… more to come ……
* Viscosity of Kahlua, Peachtree and Baileys had to be adjusted in each recipe
* Gravity feed created a vacum of air as the liquid left the bottle and it eventually stopped flowing* Simply where to get all the stuff!
* Items in “quotes” take up Variable space
* Only 1k of “variable” space on a Arduino Uno – needed to flash the “web page” to the EEPROM to save variable space
* Needed to have the webpage return 1, 2, 5, etc instead of drink=”rumandcoke” to save space!
* Used GET instead of POST so it is easier to parse
- Nylon hoses pour the liquid much smoother with no splashing if the hoses from the solenoids to the cup are equal or smaller than the hoses from the bottle to solenoid
- Concurrency problem with more than one user — 🙁
- No way to have multi-dimension String Arrays in PROGMEM
- Used simple String object on PROGMEM and then built a parser to pull the Name and Details apart… I’m sure there is a better way…. but it works…
New Future in Version 1.5:
- Added pressure sensor to auto-magically turn the air pump on and off
- Add LEDs under each bottle so it lights up the bottle that is active
- Add an LCD to list drinks instead of using web browsers
- Add “cursor” keys to navigate and select LCD menu
- Remove WiFly – won’t need it if I move to an LCD based system
- Rewrite the code for the LCD instead of being browser based
- I might remove the Speech – most people have a hard time understanding it anyway…
- Refrigeration of drinks — Icebox approach and/or Electronically using a Peltier device
- Put it all on wheels for fun and have it follow people around… 😉
- I might replace the PeachTree – I forgot how Sweet it is and don’t really like it that much!
- Add bracket on the side to hold an ice bucket & cups
- Add cup size switch instead of having to change the code to select cup size
- Add drip tray integrate into Octabar
- Use shift registers or Arduino Mega to add more IO pins for the features above…
- Make the drink menu SD Card based so you do not have to know how to program to enjoy Octabar
- Maybe design a Quadrobar to have a cheaper model???
- Offer this as a kit???
- Sell competed versions???