For Spokane-based arts organization Terrain'sUncharted Territory event, Laboratory built some remote-control thunderclouds to accompany the Spokane Symphony and a host of local bands. These billowy beauties add a playful ambiance to a space, and thunder at the press of a button, and to make your own for under $100, keep on reading!
Inspiration from here: https://www.instructables.com/id/The-Listening-Cloud/
and our fabulous local Farm Chicks: http://thefarmchicks.com/2012/07/31/how-to-make-a-cloud/
Step 1: Ingredients
Clouds are easy to make. Just a bit of water vapor and.... no.
It's easy, though. We're gonna buy a bunch of stuff from Adafruit, since they're AWESOME. Then some stuff from the craft store.
The Adafruit stuff (electronics):
Simple RF M4 Receiver - 315MHz Momentary Type: https://www.adafruit.com/products/1096 ($4.95)
Two-button keyfob remote - 315MHz: https://www.adafruit.com/products/1391 ($6.95)
5v power supply - 10 amps is great if you'll have a bunch of clouds: https://www.adafruit.com/products/658 ($25),
or the 2 amp supply here should work. Don't use a cheap one; too much voltage will trash your NeoPixels
DC Power Adapter Jack: http://www.adafruit.com/products/1138 ($2)
2 wire female JST connector: http://www.adafruit.com/products/1138 ($0.75)
2 wire male JST connector: http://www.adafruit.com/products/1138 ($0.75)
(For more than one cloud) 3 wire male + female JST connectors: https://www.adafruit.com/products/1663 ($1.50)
Wire, ideally with 3 conductors - I would actually go to RadioShack for this one
Beefy capacitor: https://www.adafruit.com/products/1589 ($1.95)
300 or 500 ohm resistor - again, RadioShack.
The JST connectors are optional, but less optional than you think. Spend the time and money to make them, and your life will be a million times nicer.
The craft store stuff:
Clear storage box - 16qt size is nice and well suited to a half-meter length of LED strip, but any size works
Clear balloons - Clear is important so that the light can go through
Clear packing tape
Polyester pillow stuffing - look in the quilting section of your craft store.
Step 2: Adjust and Upload the Code
First things first - since we'll be doing some slightly sketchy stuff in terms of powering our Arduino directly from a 5 volt power source, we're going to upload the Arduino code for the lightning first. This way, we don't have to worry about screwing anything up later with weird voltages. You can, of course, do this step later, but it'll be important to remember to take the Arduino completely apart from the cloud, separating it from the 5 volt power supply and the LED NeoPixel strip.
Anyhow, download the attached code, adjusting three things to fit your installation purposes -
NUM_CLOUDS should be altered to reflect how many clouds you'll have in your installation
NUM_LEDS should be changed to reflect how long a piece of strip you're using, reflecting how many LEDs are in your installation
Then, the PixelDemarcations array should be changed to reflect where on the strip each cloud begins and ends, starting from 0.
Once you adjust that, upload the code to your Arduino and you should be good to go!
Step 3: Make the Circuit
We'll be using Adafruit's awesome NeoPixel LED strips - they're super versatile, individually addressable, and super awesome. However, you should also totally read their NeoPixel Uberguide to get an idea of how they work, and the precautions therein. The basics are going to be about using our beefy capacitor on our power supply, and using that 300 to 500 ohm resistor on the data line. Both of these precautions are there to help prevent voltage spikes from destroying our NeoPixels.
This will be pretty basic - we'll be connecting the power and ground of the NeoPixel to the power jack, our beefy capacitor to the power jack, the +5v from the power jack to the 5v connection on the Arduino, the ground on the NeoPixel strip to GND on the Arduino, and the data line from the NeoPixel strip to pin 6 on the Arduino.
We'll also be plugging the RF receiver module into the analog pins of the Arduino and driving it from there, as pictured, with GND going into A0, +5V going into A1, etc.
IMPORTANT: Disconnect the Arduino from the NeoPixel strip and the 5v power jack line when plugging it into your computer, and especially NEVER have the Arduino connected to your computer and the 5v power supply at the same time.
Step 4: Test the Circuit
This is a good time to test things out, before you actually put anything into the guts of a cloud. With the Arduino disconnected from your computer, plug the circuit in to the AC adapter. All the lights in the strip should turn on in order, then all turn off at once. Then, you should be able to press the remote, and things should flash! The 'A' button should randomly make one or two cloud segments fire, 'B' should make up to 4 fire, and 'A' and 'B' together should make them all flash.
Step 5: Build a Cloud!
Now let's make the actual cloud that will house things!
First, we'll make our boxes less boxy. Take some balloons, fill them partway with air, then tape them to your storage box.
Once you've got a shape that looks a bit more natural, we'll start adding the polyfill! Doing a section at a time, spray the box + balloons with the spray adhesive, and then mash a chunk of polyester stuffing to the adhesive, pressing and squishing it to get a good stick.
Do this for all the non-open sides.
Then, using the fishing line, tie a couple of lines around the box, both to hold the stuffing around the box better, and to provide an easy way to hang the clouds.
Finally, take the electronics and put them into the box! Use the masking tape to tack down the LED strip, facing outwards, and you should be good to go!
Step 6: Multiple Clouds
So you've got a sweet flashing cloud! Awesome! But what if we want more?
This is where those connectors come in. The LED strip can be cut into segments, and we can make more clouds, putting different segments into each and driving them from the same Arduino.
We'll cut the strip, then attach a 3-pin JST connector - this way you don't have to keep your clouds together when moving them place to place, and the polarized connector prevents you from plugging them in the wrong way and frying your LED strip.
We'll make some connector wires with the JST connectors like so (I only had 4 pin connectors, so I cut one wire short to easily ignore it)
Then we'll make each cloud and just tape in an additional section of NeoPixel strip inside. One thing to be aware of - as the wires get longer, you'll start to have some issues with voltage drop-off. You can get around this by having the power split up and go into different strips all at once - just make sure you only have one data line going into the strip, all the way at the start.