The Project Vending Machine 2 is a machine for distributing source code and other digital details for open-source projects. The user inserts their USB key, pulls knobs to select the projects they want to download, hits a big button, and the details are copied to their USB key. It’s based on an embedded Linux machine – a Raspberry Pi, in this case – and runs on a Python script.
This is an updated version that was meant to be smaller, more feature-filled, using more capable and more available parts.
- Cost – We funded this project ourselves, and didn’t want to break the bank.
- Ease of construction – Part of the general idea of this project was to let other people build it too. That meant it had to be repeatable and fairly straightforward to make.
- Time – We didn’t have a lot of time to put this together. The whole thing came together in a little over two weeks of actual (part time) development.
- Size – I wanted this model to be about half the size of the old one.
- Features – 8 projects in V1 didn’t seem like enough, so I wanted to go with 16. Further, more colour possibilities on the front panel – 24-bit colour rather than 8-colour – and a video display of some sort seemed like a good idea, too.
- Fun – The project had to look cool so that people would want to try it out.
- Concept. My friend Rudie and I came up with the idea for the project and figured out the whole overall approach, last year for the first version.
- Parts Selection. I expanded on last year’s by using a better button, a nicer USB jack and a Raspberry Pi. We kept the IR modules, but rather than the Sparkfun modules that had no mounting holes, I designed my own. I had WS2801-based LED module boards made, and built them to get full-range PWM RGB LEDs. I also added a composite LCD for video display.
Due to supply issues with the Raspberry Pi, I made the original design use an Arduino for reading the sensors and controlling the LEDs. This meant that if the Raspberry Pi didn’t arrive in time, I would be able to use my notebook computer to take its place. That didn’t turn out to be necessary.
- Physical Construction. I worked with my dad to build the vending machine, and managed to keep it small and fairly easy to build.
- Programming. I was on my own for software this year, and whipped up a quick Python script that ran the whole show.
- Exhibition. For two days at Maker Faire Detroit 2012, I stood in the booth and explained to all interested parties how it worked, along with a ton of digital clocks and other projects I’d brought. It was tons of fun, and I received another Editor’s Choice award.
- Construction – I had a better plan for building it this year, and the new method was much easier, smaller and lighter.
- Preparedness – Between covering my bases with the Raspberry Pi and ordering my circuit boards and parts months in advance, there wound up being no major issues in getting the system up and running. That said, the software was written 36 hours before the Faire started – however, I did get a full night’s sleep the night before the show this time.
- Working with new systems – My experiences with getting the Arduino working with the Raspberry Pi was… harrowing. Apparently the older FT232 chip on the Arduino I was using has major issues with the Linux driver on ARM architectures – system hanging issues. I was able to use a small FT232RL board to handle the interfacing without crashing.