I just realized that I wrote this post a month ago and never published it for some reason. I must have forgotten about it after writing the post on the EMS web page.
Our group managed to finish our Red Bull Creation Challenge entry on Tuesday night (7/3/2012) just before the deadline. We had to have our video submitted by 12:00AM and we submitted it at 11:50PM with ten minutes to spare. We cut it close but we managed to succeed in the end. The experience was incredibly fun and incredibly challenging. There were so many systems involved in our build and most of us had very limited experience in any of them. I found that our team worked really well together though, and we were able to pull through in the end.
I wrote a detailed blog post on the Eugene Maker Space website that explains in detail how our creation was build and how each mechanism works. You can see a lot of photos, test videos, and read about it here. I won’t re-post everything on my blog too, but I will give some more details as to the components I actually had a hand in.
I personally worked on the following pieces of the creation:
- Fog sprayer
- Pneumatic system
- Can lifter
- Can magazine
- Barcode scanner
The Fog sprayer was pretty much all me and it was the first mechanism we really had fully completed. I managed to spend a night and a day at the shop getting that piece working. Then it sat on the shelf for over a week until we needed to add it to the frame on the final night.
Ben was really leading the charge on the pneumatic platform system. He had some good ideas for how he wanted to accomplish that goal and I just followed his lead. After we realized the PVC piston wasn’t going to work, I found a website online that mentioned you could use a bicycle pump as a piston. I thought that idea was brilliant since a bike pump is basically already a perfectly fitting piston. Ben scored an old but from Bring Recycling and we got to work on it to modify it into a working piston.
The can lifter was made mostly from parts of Kassie’s DLP 3D printer. The main pieces of it were already printed by her for that other project. The part that really needed more work was the bed that would hold the can and eventually dump the full can onto the platform. That part ended up being really tricky. Even now we still don’t get 100% success rates when dumping the can. It’s a delicate balance of friction on the platform combined with the height of the drop. We get a high enough success rate though that it worked out for our project in the end.
The can lifter magazine was build out of wood by Kassie. I designed the basic concept for the single can loader mechanism at the bottom. Kevin ended up taking that idea and beefing it up a bit. He used some flat aluminum stock to build the entire thing, just using nuts and bolts as hinges. I took that piece and mounted it into the can magazine, using a bungee cord to apply downward force on the back side. This makes it so no cans can escape the magazine until the can lifter comes down and presses down on the front side. We ended up having to decrease the angle of the can dropper so they wouldn’t fly over the gates, and we ended up replacing the bungee cord with a piece of fishing line attached to springs. The bungee cord was just a little bit too stiff.
James really lead the way in terms of the barcode scanner. He spent at least a few days trying to get it interfaced to his computer, and then to an Arduino. We kept having problems with the Arduino though, because the Arduino uses TTL serial levels but the barcode scanner uses RS232 levels. You can’t just hook it straight up or it will fry the Arduino pin and you won’t get a read. I spent some time trying to make it work with a TTL to RS232 converter board but I had no luck with it. Weston ended up saving the day by providing us with a simple two diode circuit that lowers the voltage from the scanner enough so that the Arduino can read serial data coming from it. We weren’t able to get the actual barcode values out of it (with more time we could have made it work properly) but we did get consistent garbage characters for different barcodes so that was good enough for our needs.
I put together a good portion of the electronics on the final machine. We used a four-relay board that Kassie provided to control the air valves, air compressors, and the can kicker. There are actually two other unused relays inside that we included in case there were any last minute additions we wanted to include. James provided us with an Arduino prototyping shield and soldered up a 25-pin ribbon cable to it to make interfacing the electronics to the Bullduino a breeze. The shield really ended up saving the day in the end. Without it, it would have taken too long to move everything over from our Arduino Uno we were using for testing, to the Bullduino which was required for the competition. The ribbon cable went down into a bread board that was stuck to the inside of the case. Pretty much everything interfaced to the Bullduino through the breadboard. It was pretty messy but we didn’t have enough time to make an actual PCB. And it worked in the end so who cares, right?
Another difficult problem with the electronics was the different voltage levels required. The valves needed 24 volts, the compressors, can kicker, and stepper motor drivers needed 12 volts, and the Bullduino and relay input needed 5 volts. We needed a way to get all of these different voltage levels but we didn’t want to spend a bunch of time coming up with a complicated circuit to do it all for us. We ended up using something like five different wall power supplies to get what we needed. It was messier and way less efficient but it was the fastest way to get what we needed. It also had the byproduct of turning our refrigerator into something of a heater with all of the wall warts crammed inside. The whole thing looks ridiculous and is probably dangerous but it worked.
Ellery was the primary coder for most of the project. He put together all of the main functions and the main loop, but there were some nights that he couldn’t be there and we had to keep moving forward. I ended up taking on the roll of the secondary coder for those times when he was unavailable to assist in testing. This worked well because we could get more ideas into the machine and we were able to help fix each others bugs when we just couldn’t figure them out on our own. The code isn’t incredibly complicated, although Ellery did program in a pretty complex timer routine so we could do some PWM fading effects with EL-wire. It was a shame that we couldn’t get the electronics for that working in time to use his code. Most of the code is just “turn this on now, then turn this other thing on, now turn them both off” stuff like that. It’s just all switching for the most part, and reading serial data from the barcode scanner.
All in all, this project was incredibly fun. Although it kind of sucked that I couldn’t really spend any free time doing anything else (read: spending time with my girlfriend) I did have a blast doing this and I would definitely do it again next year if we could put together another great team. I’m really hoping we are one of the 12 teams chosen to move on to the final round, but at the same time I’m a bit nervous because we will only have 72 hours this next round and we’ll want to make sure our next project is as incredible as our first!