Wednesday, November 19, 2014

Post #8 - Web Page Finished

We have decided to go with an online version of the ordering system. This online website can be accessed from anywhere in the world, allowing people to 'order' drinks wherever they are with their mobile phones. The Raspberry Pi will then read the database from this external server and handle the orders accordingly.

The webpage can be found here:

http://zonbandit.com/order.php

This page will be seen by the customer. It allows them to order a drink that goes into the queue.


http://zonbandit.com/admin.php

This page asks for all the liquids currently set up in the robot.


http://zonbandit.com/admin2.php

This page asks how they would make the drink by selecting the combination of liquids from the previous page.


Time spent: 12 hours (learning PHP and serverside coding)

Monday, November 17, 2014

Post #7 - WiFi Fixed (Finally) and Webpage Beginnings

After countless (15+) hours of trying to find a solution to the WiFi intermittent connection, I stumbled across an idea from someone - the Raspberry Pi wasn't able to give enough power to the WiFi adapter. Supposedly, these adapters take quite a bit of bower (over 500 mA), and the Pi can only give a max of 500 mA through its USB ports. This was all theory, but I as I researched I found similar recommendations.

Thus, my quest to find a powered USB hub was on. I tried finding a simple, cheap, one, but there were NO recommendations that I could find that were suited for the Pi (so that it didn't fry it). After searching long enough, I settled on a little more expensive solution - PiHub (http://shop.pimoroni.com/products/pihub).

Once I plugged the powered hub in, everything was working perfectly! WiFi was no longer dropping, and I could now power all my USB gadgets through this hub instead of the Pi. What a relief!

----

Next up this week was getting our database set up. We have decided that since the whole system must be connected to a WiFi network in order to be controlled via user's phones, then we had no reason to keep the database locally on the Pi. Therefore, we will be hosting the database and webpage on our own server which will allow people to access it from ANYWHERE, and off the WiFi network.

The beginnings of a great webpage:

http://roqetmarketing.com/drinkmixer/hey.php

Saturday, November 8, 2014

Post #6 - More Wifi Issues

Wifi is becoming a bit of a pain. It seems that when the internet/router goes down at my home, the DHCP is having troubles renewing the lease (even after I set the time to only 10 seconds to renew). Anyways, manually running some commands got it up and working for me (below). I suspect I may have to have some detection in the program that if the wifi is down, try to run these commands via a shell script.

Link to post that solved my issue:

http://www.raspberrypi.org/forums/viewtopic.php?t=72282&p=521088


1. sudo dhclient -v -r wlan0
2. ifconfig
3. sudo dhclient -v wlan0

Will update this post if I find another, simpler, way to get around this.

Update 1:

After hours and hours of research, this appears to not work. I finally came across a possible lead:

iwlist wlan0 scan

Returns my wifi connection sometimes, and sometimes not. This gave me some extra search terms to try and figure out a possible fix. After coming across a post about power issues, I have determined (for now) that the wifi adapter I am using requires too much power. The Raspberry Pi only outputs a certain amount of volts/amps, which wasn't enough, causing intermittent connection problems.

I have ordered a powered USB hub (http://shop.pimoroni.com/products/pihub) to ideally fix the issue.

Thursday, October 30, 2014

Post #5 - Raspberry Pi Setup

As I am the one working with the majority of the programming for this project, I have began setting up the Raspberry Pi.

Issues:

1.

WIFI!! - I got it connected originally using this article:

http://raspberrypihq.com/how-to-add-wifi-to-the-raspberry-pi/


Worked fine for a week solid. Then our router at home got reset and things got all messed up. After debugging for 2 hours I still had no resolve. The next day I checked up on it and it was working again. I BELIEVE the issue was caused by the DHCP lease not renewing (the default lease renewal is 36000 seconds, or 10 hours!), so I changed that to 600 seconds for any future problems. (see next post -- NOT WORKING)



Installations:

1. Arduino IDE

Followed this guide to install and connect Arduino:

http://razzpisampler.oreilly.com/ch10.html


2. Raspberry Pi to Arduino connection:

http://blog.oscarliang.net/connect-raspberry-pi-and-arduino-usb-cable/


3. MySql was needed (simple installation). All MySql is done locally right now. We may move to online servers later on.

4. Adafruit IDE - probably the best find of this entire project. I was having problems figuring out how to program efficiently, timely, and making sure it would work on the Pi. I tried setting up a similar environment on my Windows (tried a VMWare box, all on Windows, etc) and my first conclusion was to use TightVNC which is a remote controller to the Raspberry Pi. This allowed me to work on my PC that I was comfortable using, while working directly on the Pi. However, the Pi has minimal hardware so the speeds that I could program at were drastically reduced. ALSO, I couldn't find any Python IDE to work on the Pi, so I was just coding in a simple notepad file. Not good!

Then, I came across the wonderful Adafruit IDE. Wow is it incredible! This allows me to program on my desktop computer all via my BROWSER. The code I change in the browser is automatically pushed to a Bitbucket repository, which is then automatically pushed onto the Pi. Talk about cool!

http://raspberrypihq.com/how-to-add-wifi-to-the-raspberry-pi/

6. Apache and PHP5 installed


7. Other miscellaneous things were installed. Not much importance.


Edit: Through a lot of pain, I've found out that you should install the WebIDE LAST before anything else. It's caused a lot of problems with other installations and is done best when it's installed last.

Sunday, October 19, 2014

Post #4 - Parts Are In!

We received the parts this week! Seeing everything in our hands makes for a very exciting week ahead. It's like Christmas opening up all our gadgets and toys!

Once we received the parts Taylor immediately began discussing ideas for the build of the robot with his neighbor (who is in construction). I took home the Arduino and unpackaged my Raspberry Pi. The Pi is now setup to work on my TV, so the next steps for me will be to start getting some test scenarios setup with Python.

First test case: getting a connection between the Arduino and the Pi. I hope to string a small ethernet cord between the two mini-computers and use a LAN connection for getting messages sent to each other.

For example:

1. The Raspberyy Pi will see that there is a new drink order. It grabs the details.
2. It will send a command to the Arduino indicating what motor to spin and for how long. I.e. - if it needs to get to the bottom 180 degrees from the 'home' position, it would tell it to spin the motor for that long.
3. The Arduino will send a command back saying that it has moved there and has dispensed the liquid.
4. Raspberry Pi will send the next item (next liquid to be dispensed) in the queue to the Arduino.
5. Repeat.

Sunday, October 12, 2014

Post #3 - Initial Design Started

More formal sketches were hand-drawn this week. Other than that, we're just waiting for our parts to come in and doing more research on the best possible way to make it as efficient as possible.

One thing we came to the conclusion of is that we will have to rotate the bottom base, rather than the bottles up top. Two reasons:

1. Future considerations - if we ever refrigerate the top part, then the coils would twist
2. Solenoid Valves - The wires for the valves (that are attached to the opening of the bottles) would twist up since all our electrical will be sitting at the base.

Sunday, October 5, 2014

Post #2 - Materials Ordered

The link below details all the hardware we ordered from using our student fees for this class:

http://banditim.com/Supply%20list.xlsx

We will be purchasing the materials (the entire stand to hold everything and such) from our own pockets so that we can keep it after this semester. Everything will be trial and error, so having the student fees as a cushion really helps the wallet.

All items are expected to be in by October 31. Taylor and I have agreed to split up our two tasks to be completed by that date into:

Taylor: Build the entire functional stand
Neil (me) : Program Raspberry Pi and Arduino to work together and send 'theoretical' commands to make 'theoretical' motors move