Introduction: The Glow Cloud

About: I make things, sometimes they break

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

Step 1: Solder the Neopixel Ring to Gemma

The connections from the Neopixel ring to the Gemma are as follows:

VCC: VOUT

IN: A1

GND: GND

Step 2: 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.

Step 3: 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.

Step 4: 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 !

Step 5: 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!

Step 6: Upload Your Code to the Cloud :)

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

Step 7: 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 !

Lights Contest 2017

Participated in the
Lights Contest 2017