The Glow Cloud

by NemesisC in Circuits > Arduino

7023 Views, 74 Favorites, 0 Comments

The Glow Cloud

20170401_213559.jpg

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

Screen Shot 2017-04-03 at 10.08.43 AM.png

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

20170401_072812_001.jpg

Cut a dent that fits Gemma and the Neopixel ring comfortably into the styrofoam ball to glue down.

Stab Sticks Into the Styrofoam Ball

20170401_074026.jpg
20170401_073427.jpg
20170401_073944.jpg

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

20170401_075424.jpg

Secure the batteries into the styrofoam ball then use adhesive velcro to lock them in !

Begin to Form the Shape of Your Cloud!

20170401_080350.jpg

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 :)

20170401_085831.jpg

Add the Adafruit Neopixel Library to the Arduino IDE from here:

Adafruit Library Installation

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);
}

Hang Up the Glow Cloud

17634562_1739878769637372_4692990059734002665_n.jpg

Tie the fishing line to one of the sticks and secure the knot with hot glue.

Get a thumbtack and hang it up wherever !