The Glow Cloud
This is my take on the famous Pinterest light up cloud vamped up to be more colorful!
Materials used:
-Pillow Stuffing
-Thin sticks
-Adafruit Gemma (or microcontroller of your choice)
-Adafruit NeoPixel Ring - 16 x 5050 RGB LED with Integrated Drivers
-Adafruit 3xAAA Battery Holder w/ On/Off Switch
-Styrofoam ball
-Clear thread / fishing line
-Exacto Knife
-Hot glue sticks
-Hot glue gun
-Adhesive Velcro
- 22AWG solid core wire
-Soldering Iron/ Solder
Solder the Neopixel Ring to Gemma
The connections from the Neopixel ring to the Gemma are as follows:
VCC: VOUT
IN: A1
GND: GND
Secure Gemma and the Neopixel Ring in the Styrofoam Ball
Cut a dent that fits Gemma and the Neopixel ring comfortably into the styrofoam ball to glue down.
Stab Sticks Into the Styrofoam Ball
This will help stack cotton on the ball to give the cloud a "fluffy appearance".
Place glue at the intersection on the stick and the ball to ensure the sticks won't fall off later on.
Cut a Hole for the Batteries to Fit Snuggly Into
Secure the batteries into the styrofoam ball then use adhesive velcro to lock them in !
Begin to Form the Shape of Your Cloud!
Glue down the pillow stuffing onto the styrofoam ball until the sticks are fully covered.
This process of mostly trial and error!
Upload Your Code to the Cloud :)
Add the Adafruit Neopixel Library to the Arduino IDE from here:
Upload the flufflyCloudTiny Arduino file posted bellow to your Gemma for a nice rainbow effect to the lights.
*If the code does not compile try the file on my github: Click Here
#include <Adafruit_NeoPixel.h> #define PIN 1 // Parameter 1 = number of pixels in strip // Parameter 2 = Arduino pin number (most are valid) // Parameter 3 = pixel type flags, add together as needed: // NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products) Adafruit_NeoPixel strip = Adafruit_NeoPixel(16, PIN, NEO_GRB + NEO_KHZ800); void setup() { strip.begin(); strip.show(); // Initialize all pixels to 'off' } void loop() { // Some example procedures showing how to display to the pixels: colorWipe(strip.Color(100, 0, 0), 50); // Red colorWipe(strip.Color(0, 100, 0), 50); // Green colorWipe(strip.Color(0, 0, 100), 50); // Blue rainbow(20); rainbowCycle(20); } // Fill the dots one after the other with a color void colorWipe(uint32_t c, uint8_t wait) { for(uint16_t i=0; i<strip.numPixels(); i++) { strip.setPixelColor(i, c); strip.show(); delay(wait); } } void rainbow(uint8_t wait) { uint16_t i, j; for(j=0; j<256; j++) { for(i=0; i<strip.numPixels(); i++){ strip.setPixelColor(i,Wheel((i+j) & 255)); } strip.show(); delay(wait); } } // Slightly different, this makes the rainbow equally distributed throughout void rainbowCycle(uint8_t wait) { uint16_t i, j; for(j=0; j<256*5; j++) { // 5 cycles of all colors on wheel for(i=0; i< strip.numPixels(); i++) { strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255)); } strip.show(); delay(wait); } } // Input a value 0 to 255 to get a color value. // The colours are a transition r - g - b - back to r. uint32_t Wheel(byte WheelPos) { WheelPos = 255 - WheelPos; if(WheelPos < 85) { return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3); } if(WheelPos < 170) { WheelPos -= 85; return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0); }
Downloads
Hang Up the Glow Cloud
Tie the fishing line to one of the sticks and secure the knot with hot glue.
Get a thumbtack and hang it up wherever !