We wanted to make a interactive display of the fun that can be had with DIY projects to take to Sydney Mini Maker Faire. We decided to do so by utilising the TinkerKit Braccio from Arduino.org, alongside some 3D Printing ingenuity, for an engaging display for all ages.
Enter the Hipster Coaster in all its glory.
All the parts were printed seperately on our family of Lulzbot 3D Printers, later stuck together using a mixture of design, glue and dowel supports! Once a person had placed a ball in the entry point, the Braccio's would take turns in picking up the ball, placing it on the roller coasters spiral (the track start point). The arms would return home, waiting until the ball finished its journey through the track. They then used some basic logic to either loop the ball back through the track once or return it to the human collection point. Check out below to see how we went about it!
We designed all of the printed parts for the Coaster using Fusion 360. The process we followed was creating a sketch profile that would fit a golf/squash ball. We then made use of the extrude, sweep and revolve functions to make a few different parts that we could use as building blocks for our Coaster.
The parts we decided upon were:
- Straight rails of various lengths
- Left and Right-hand quarter turns
- A multi-level spiral (printed in different colored quarters for smooth looking support-less prints)
- Start/finish points with mounting holes for our LDR based sensors
- A raised entry point for human interaction
- A ball drop off point that allowed multiple balls to do in without having them bounce out!
After an estimated, combined 150 hours of ABS 3D printing on our Taz 5, Taz 6 and Lulzbot Mini; we had a broad range of colorful pieces ready for assembly.
The platform we decided on for coaster mounting needed to be modifiable and sturdy, so we decided on a sheet of 1200mm x 600mm 19mm Plywood from Bunnings Warehouse. First, we secured the Braccios to the board through the laser cut, acrylic mounting pads they ship with. As the Coaster was set to be erected around the Braccios, we chose some sensible mounting positions for each arm, equidistant from each long edge of the board as well as the (rough) center of the board. The Braccios were fixed down using some 3mm decking screws straight into the plywood.
Essentially we made it so that each Braccio could reach both the start and end point of the coaster easy enough. We then chose a start and end location, central to the two Braccio's.
Moving onto the post-printing work, we used Selley's Plastic Fix to glue together an alternating pattern of purple and yellow quarter turns until we had an impressive looking, multi-levelled spiral as the coaster's featured start point. Next, we used some guestimations to determine rough starting height calculations. As we were angling our track such that the balls momentum would carry it through unassisted; ensuring it would be able to twist around all the corners and make it reliably to the end point was entirely reliant on the starting height.
To set the height of the individual track pieces, we picked up some 9mm Dowel from Bunnings and printed up some brackets that would hold the dowel and track. We then armed ourselves with a Hot Glue Gun and piece by piece went about gluing the entire track system together!
Once the track was set, we used some sandpaper and files to smooth out the joints between track pieces so that a rubber squash ball could make its way through the track. As this roughed up most of our ABS prints and didn't look quite as polished as we would've liked, we grabbed some Acetone and paper towel and wiped down the track system. The shiny acetone smoothed finish came up quite nice on our track!
Once we were comfortable with the track and balls travel, the programming of our 2 Arduino Unos began. These would be attached to the Tinkerkit Servo Shield and control the Braccios' pick-up, loop and ball exit movements (with a master/slave system setup so that they didn't destroy each other in a robot arm-wrestle!).
We went ahead and connected some discrete signals from the Digital I/O Pins seven and eight on each Arduino, along with an LDR sensor mounted underneath the start and end condition connected to our Analog Inputs and a shared ground. We then used the Arduino IDE to create some 'simple' logic that allowed the braccios to take turns in starting, looping and exiting balls from the track.
As with all DIY projects, we ran into a couple of small issues in the pick-up step in particular. It seemed the stock standard Braccio arms had a lot of difficulty picking up golf/squash balls! After a quick draft, Lulzbot and Fusion 360 came to the rescue and we whipped up a couple of 'hands' for each braccio that were designed to cup each side of the ball. Not only that, but they were designed to slide over the top of the Braccio arms! After a few close calls during subsequent programming steps (The Braccio's would sometimes initialise at the same time causing each of them to go for a ball pickup at the same time), we ended up with a awesome looking Hipster Coaster!
And it didn't disappoint at the Mini Maker Faire either, having crowds of children surrounding the coaster trying to figure out how they could trick our coaster into failure, with their parents equally amused behind them. It was an all round success and there are whispers of a bigger and better version of the Hipster Coaster at the Core warehouse.
If you are interested in using Braccio's in a project pick them up here. You might even look at making your own version of the Hipster Coaster, in which case we have uploaded the STL files to Thingiverse. Thanks for checking it out!