1. Got a question or need help troubleshooting? Post to the troubleshooting forum or Search the forums!

BarMixVah Plus

Discussion in 'Projects' started by mark tomlinson, Aug 21, 2014.

  1. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,906
    Likes Received:
    7,338
    Worst case you try to force them to DIO and they don't. It will not likely be fatal or catastrophic. It will just not work.
    So, like @Remco Wijbenga said -- just try it. Arduinos (and to a large extent the RPi) are pretty tough boards.
     
  2. Deynet

    Deynet New Member

    Joined:
    Dec 23, 2015
    Messages:
    10
    Likes Received:
    1
    Good News! With my code from post #158 I can use now all analog pins (A0-A5) as digital pins for 6 additional pumps. It's possible to have 18 pumps with Arduberry / Arduino Uno!

    D0 and D1 (TX and RX) can not used because they are only for serial communication.

    Unfortunately I have a rack with 20 pumps, the challenge right now is to get the other 2 pumps working. At the moment 18 pumps are also fine for me, but having 20 pumps would be really nice.
    My idea for that is using two Arduino Uno or one Arduino Mega 2560 (look at post #160). I will try this in the next few weeks.
     
  3. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,906
    Likes Received:
    7,338
  4. Remco Wijbenga

    Joined:
    Nov 7, 2014
    Messages:
    61
    Likes Received:
    18
    Super to hear! I am now expanding to 10 pumps... :) Just in time for tonight, Christmas. :)
     
  5. Deynet

    Deynet New Member

    Joined:
    Dec 23, 2015
    Messages:
    10
    Likes Received:
    1
    Arduino Mega 2560 R3 works!Now about 70 pumps should be possible :)
    I think every board listed here works: https://github.com/rwaldron/johnny-five/wiki/Board

    I changed "/dev/ttyACM0" (or something similar) to "/dev/ttyUSB0" in backend.js.
    Maybe "var board = new five.Board();" without port specification is enough if Arduino is autodetected by JohnnyFive. Not tested yet!

    Arduino Mega flashed with StandardFirmata.
     
    mark tomlinson likes this.
  6. Deynet

    Deynet New Member

    Joined:
    Dec 23, 2015
    Messages:
    10
    Likes Received:
    1
    How can I access drink database and edit drinks / delete drinks? Where are they saved?

    I already looked into "drinks.json", but on the webinterface are some other drinks not listed in this file.
     
  7. Remco Wijbenga

    Joined:
    Nov 7, 2014
    Messages:
    61
    Likes Received:
    18
    Super to hear that the Mega is working... :)

    The drinks are stored in the Mongo database, so you have to use some sort of client. I have seen some people connecting to the raspberry pi mongo database from a ubuntu computer. But I have not testes / used it myself..

    And if you want more ingredients you have to edit the public\javascripts\controllers\DrinkController.js
     
    mark tomlinson likes this.
  8. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,906
    Likes Received:
    7,338
    That is also a part of the reason I am rewriting this -- to give a full UI on top of it.
     
  9. farkyeah

    farkyeah New Member

    Joined:
    Sep 26, 2014
    Messages:
    1
    Likes Received:
    0
    Could you post a link to your project please?
     
  10. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,906
    Likes Received:
    7,338
    At long last this is done.
    I will post pictures tomorrow, but we still have to reprint some cases for the I/O bus and the pi itself.
    We included a 3" screen for the pi to run the GUI and then used a breadboard to build the motor I/O onto.

    Source code is in Java (AWT for the GUI). Currently storing the recipes and configuration totally in a property file, but the long term solution is a MySQL or NoSQL db on the Pi itself that you can sync with a desktop.

    We had one dead motor... so more are on the way. This is easily expandable to as many as 11 ingredients. The only reason that limit is there is that the screen uses up some of the I/O ports.

    https://www.amazon.com/gp/product/B01HXSFIH6/

    11 is a respectable number :) I will need to expand the chassis somewhat to even be able to mount the motors to go beyond the 5 and larger bottles are a problem. Longer tubing would help (more on order along with more motors).

    I will make the Raspberry Pi image available to any who want it. Running Raspbian, uses Java and autostarts the barbot software. Setup is all in the property file

    While we are using it on a Pi 3 I see no reason why it would not run on older ones.
     
    #170 mark tomlinson, Feb 11, 2017
    Last edited: Feb 11, 2017
  11. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,906
    Likes Received:
    7,338
    At least with 5 you can cover the basics... scotch, soda, gin, tonic, vodka :)
     
  12. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,906
    Likes Received:
    7,338
    Initially I was concerned about driving the motor circuit from the Pi and we were instead using the Ardubery to drive the motors with code on that we triggered from the Pi. However the TIP120 we used as the motor drivers can fully saturate on 2.25v so the 3.3 volt logic from the Pi is enough to do the trick. One large component eradicated. It is now just the TIP120 driving the motor triggered directly from the Raspberry Pi I/O bus and the code is then all on the Pi.

    We have a thread class that handles motor run cycles so when you need 3 (or however many ingredients) they each spawned off as a worker thread which delivers that ingredient and then dies. Makes mixing the drinks faster since those little pumps are not quick (100ml/min).

    I can provide the NetBeans project along with the image if you are interested.
     
  13. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,906
    Likes Received:
    7,338
    OK, I went ahead and loaded a couple. Clearly more printing is needed to tuck the electronics into boxes :)
    and secure the breadboard (hot glue does wonders for that sort of wiring). I'll post more when we are done.
    Meanwhile it is serving and I am consuming.

    20170211_233851.jpg
    20170211_233910.jpg
     
  14. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,906
    Likes Received:
    7,338
    We will use a rotating serving tray to pour multiple drinks and mount the bottles under the cabinet.
     
  15. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,906
    Likes Received:
    7,338
    As for the Basic UI, the list is populated from the properties at present. We are going to add more detail controls to allow you to control individual drinks (probably check boxes) and increase/decrease strength (i.e. make it a double), etc. This was the first roll out of the UI with only a few hours worth of effort. It was -- functional :)
     
  16. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    Hey @mark tomlinson you can get chromium-browser to run without the complete UI in kiosk mode and that will eliminate all the extra stuff the XWindows desktop adds. It is actually fairly easy and well documented. Getting chromium-browser to run without the desktop will also slim down your image.

    I am assuming your UI is browser-based, of course.
     
    mark tomlinson likes this.
  17. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,906
    Likes Received:
    7,338
    No, it is just a Java application (auto-launched at startup),
    We have spent very little time on it really and will work on it more over the next few days.

    We probably will want to make it an absolute full-screen once we add like .. an EXIT or QUIT button.
    Although... who would want to ?

    :)

    Now that we have the hardware all working and it is largely just code left (OK, a few printables still need finishing) it will (hopefully) go much faster.
     
    #177 mark tomlinson, Feb 12, 2017
    Last edited: Feb 12, 2017
  18. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,906
    Likes Received:
    7,338
    Things we have on the 'plate' for this:
    1) enhance the UI as discussed for more control/options
    2) put the recipes in a SQL db on the Pi (one of the small ones like SQLLite)
    3) allow drinks to be 'queued' then an entire order can be dispensed
    4) add a turn-table for dispensing multiple drinks (with sensors to know when a glass is present and empty or not)
    5) Android phone app to control it (already started spelunking with that)
    6) lastly an Alexa skill to control it (because telling Alexa to have the BarBot pour me a drink from anywhere is cool)
     
    Geof and WheresWaldo like this.
  19. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,906
    Likes Received:
    7,338
    Here is a sample of the new dialog (just a screenshot of the work in progress). Will be ready with this version pretty soon and at that point I will push this to GitHub and publish a pull'able build. From there we will update the repository as new features are dropped in (and if there are bugs you can fix/commit yourself or drop a request for a fix).

    Dialog.jpg
     
    #179 mark tomlinson, Feb 12, 2017
    Last edited: Feb 12, 2017
  20. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,906
    Likes Received:
    7,338
    Current screen.
    Selecting an ingredient will let you increase or decrease the "dosage"
    Last bit to setup is the order queue and then control the button enable states.
    I see a GitHub checkin coming soon :)
    I might add a property editor or an "ADD" / "DELETE" button for recipes. Screen space is tight.

    Capture.JPG
     

Share This Page