In Baltimore, we have a few things we do well. Beer and activities as an excuse to drink beer are chief among them. Next to the Jones Falls, we have a fine craft brewery: Union Craft Brewing. They are a fun bunch, and hosted the 2017 Union Pinewood Derby this past March. A friend suggested I enter, and I pondered what would design would be a good excuse to learn a new skill or two. I decided on the famous (perhaps infamous, depending on your perspective) design of the Baltimore police cruiser as inspiration. I did this without their express permission, but imitation is the sincerest form of flattery as they say.
Let's get started!
Step 1: Procuring the Arduino and Neopixels and Wiring
Originally, I wanted to adapt a light bar from a police car model for use on my pinewood derby car. I quickly discovered these were either in the wrong scale or too expensive for a one-time use like this. Plus, I wanted to make it instead of buy it.
I had never programmed an Arduino (or in this case, Arduino-like object) before and wanted to figure out how to use Neopixels from Adafruit. I had lusted after many of the Adafruit products, but had no compelling reason to buy any of them until now. I figured I could re-use the components for future projects, and wanted to use a breadboard to minimize permanent soldering. I opted for the Adafruit Trinket for minimal size (remember, this has to fit inside a pinewood derby car) and low power requirements. The Neopixel stick with 8 LEDs is coincidentally the perfect scale for this application.
I ended up buying the following items:
- 1 x NeoPixel Stick - 8 x 5050 RGBW LEDs - Cool White - ~6000K[ID:2869] =$7.95
- 1 x Adafruit Trinket - Mini Microcontroller - 5V Logic[ID:1501] = $6.95
- 1 x Lithium Ion Polymer Battery - 3.7v 1200mAh[ID:258] = $9.95
- 1 x Tiny breadboard[ID:65] = $4.00
- 1 x USB LiIon/LiPoly charger (v1.2) [ID:259] = $12.50
- 1 x USB cable - A/MiniB (3ft) [ID:260] = $4.00
- 1 x Adafruit Push-button Power Switch Breakout[ID:1400] = $5.95
- Sub-Total: $51.30
The subtotal indicates something that often happens when I embark on a project...I opt to make instead of buy to maybe save money, but end up spending a bit more than I intended.
I wired up the components per this wiring diagram on the 'tiny' breadboard, and was ready to code!
Step 2: Programming the Arduino
I highly recommend following the fantastic walkthroughs at Adafruit (https://learn.adafruit.com/introducing-trinket/int... and https://learn.adafruit.com/adafruit-neopixel-uberg...) as I did. They will set you on the right path, can provide much more breadth and depth of the ins/outs of their particular products, and can open your eyes to the WIDE variety of highly sophisticated uses for programming and LEDs.
I downloaded the Arduino IDE (https://www.arduino.cc/en/Main/Software) and began to adopt bits and pieces of code from two major sources:
- a similar project by 'bigboystoys13' (which can be found at https://create.arduino.cc/projecthub/bigboystoys1... and
- the Neopixel 'strandtest' code by Adafruit
In broad terms (as described by a novice), the code for Neopixels will contain several major chunks:
- an identification zone for your arduino chip, including which pin is connected to the data wire for your Neopixels
- a brief bit about chip frequency if you're using a Trinket as I am
- a queue of your light actions
- code for each of your referenced light actions
In the spirit of Instructables and to save folks time and energy, I've shared my code on Github (https://github.com/marbisho/marbisho-PD). You can see the light effects in the photo and (sadly vertical) video attached.
Step 3: Shaping the Pine*
Now that I had a working light bar, I could start on the easy part.
A pinewood derby car has specifications to meet which vary depending on your race or governing body. Many of them--as Union did for me--will reference a basic version of the Boy Scouts of America rules. These include specifications for minimum weight, maximum width, minimum clearance, etc.
I picked up a basic kit from BSA, which includes a pine block, axels, and wheels. The basic kit is designed for the wheels to be outside the body, in an open-wheel racecar type orientation. This would have allowed for very little interior space for my electronic components, and wouldn't have allowed for a police cruiser shape. We need to go bigger...
Balsa wood would be sufficiently light to allow for the added weight of electronics along with the larger size of the body. You can source blocks of balsa from the internet for relatively cheap. I had recently inherited a scroll saw from a friend, and thought this would work as a miniature band saw. It almost did, but didn't have enough clearance for the entire block to fit through. I had to cut the block in half to perform all the profile cuts. I started with an outline for the new Chevrolet Caprice Police Interceptor, but needed to adapt a bit to accommodate the comically large wheels in relation to the body size.
Once I had a rough shape, I began shaping the wood with a mix of sandpaper and rotary tool bits until it resembled a car. I often gouged too much with the rotary tool, so Plastic Wood helped hide the crimes.
Finally, I drilled a hole where wiring would pass through the body for the Neopixel stick and bored out the interior of the body to make space for electronics and allow for added weights to meet minimum specs. This step was fraught with difficulty...you no longer have a flat surface to facilitate use of the drill press and I needed to take out as much as possible to allow for the non-permanent wiring on a breadboard. Just go slow.
Step 4: Paint
After a quick few coats of white spray paint, I was ready to add windows. I added masking tape on all the parts that needed to stay white and sprayed black for the windows (not pictured). I had to touch up a bit of the edges, as the tape couldn't stick effectively in some hand-shaped spaces.
Step 5: Graphics
But paint isn't enough to make a police cruiser (at least not in most municipalities)...we need graphics. I am lucky to be in close proximity to both Adobe Photoshop and a Cricut Air.
I adapted appropriate police cruiser-themed graphics to include on my car and printed on a sheet of white vinyl. Although the Cricut can do some cool stuff with a combination of printing and cutting, I opted to use an x-acto blade to turn my vinyl sheet into individual decals. I stuck these on the painted car and things were done!
Except, you always need a box or case for a cool project. I painted a spare headphones box and applied a Cricut print/cut logo for street cred (see here for more on the logo https://www.instructables.com/id/Shop-Sign-CNC-cut...).
We're ready to race!
Step 6: Victory
My car performed well in preliminary rounds, but ultimately lost to the overall winner for speed. Overall, it was a great learning experience and Union makes great beer. Cheers!