Virginia’s NYC FORTUNE INSTALLATION

Fortune Machine Instructable

The Fortune Machine was created to bring a bit of mystery and magic into the day to day.

Let your fortune take you on an adventure.

This NYC Fortune installation uses a touch sensor to trigger a thermal printer that reveals out your destiny. What awaits is a magical tour around New York City.

In the future, I would like to have the inlay light up and take it out for its first installation in a park.

Virginia’s Final Project Ideas

A sunrise and sunset lamp will mirror the glow of the sun.
An adventure machine that will print out a destination across New York City or a museum that it is positioned and you have to find the location. This will require a receipt printer, hand sensors, and lights.
This is a mirror that literally mirrors what is in front of it. However, you cannot see your reflection as soon as you step in front the mirror turns into a distorted material.

Virginia’s Halloween Costume

For my halloween costume I created a fortune teller outfit. I crafted a crystal ball out of a glass orb, brass fixture, wooden base, and vinyl printed sorcery material. The crystal ball cycled between blue and green, when the button below the base was selected a color was selected depending on where it was in the cycle. This process had a feeling of fate, which is how I helped to tell fortunes. Wearing this costume felt powerful and mystical, holding all of the world’s fate in my hands. If I had to do this again I would make my headpiece glow.

Process photos:

https://photos.app.goo.gl/eePKZB1qpPHLZb6n8

Inspiration Links:

List of Materials:

  • Wooden base
  • Vinyl prints of ouija board and tarot cards
  • glass globe
  • NeoPixel strip of 8 LEDs
  • button
  • headband
  • cardboard
  • spray paint
  • cape

Final Photo:

https://photos.app.goo.gl/BQVUYj47283Vxzor5

#include;

#define PIN 1

#define NUM_LEDS 8

#define BRIGHTNESS 50

// Parameter 1 = number of pixels in strip
// Parameter 2 = pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
// NEO_RGB Pixels are wired for RGB bitstream
// NEO_GRB Pixels are wired for GRB bitstream, correct if colors are swapped upon testing
// NEO_RGBW Pixels are wired for RGBW bitstream
// NEO_KHZ400 400 KHz bitstream (e.g. FLORA pixels)
// NEO_KHZ800 800 KHz bitstream (e.g. High Density LED strip), correct for neopixel stick
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRBW + NEO_KHZ800);

void setup() {
strip.setBrightness(BRIGHTNESS);
strip.begin();
strip.show(); // Initialize all pixels to ‘off’
}

// my first NeoPixel animation
void loop() {
// Modified procedures showing how to display to the pixels:

// turn LED on:
Serial.print("HIGH");

colorWipe(strip.Color(0, 0, 255), 50); // Green
colorWipe(strip.Color(0, 255,0), 50); // Green

}

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

Virginia’s Fortune Teller Costume

For my halloween costume I am creating a mystic fortune teller look where I carry around an all seeing crystal ball. This ball lights up green and blue and when the button is pressed the colors stop switching, this action will tell your fortune.

The base of the crystal ball is covered with a ouija board and tarot cards. My head and tights adorn stars and moons.

Continue reading “Virginia’s Fortune Teller Costume”

Virginia’s Week 5 HW

include

define PIN 6

define NUM_LEDS 4

define BRIGHTNESS 50

// Parameter 1 = number of pixels in strip
// Parameter 2 = pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
// NEO_RGB Pixels are wired for RGB bitstream
// NEO_GRB Pixels are wired for GRB bitstream, correct if colors are swapped upon testing
// NEO_RGBW Pixels are wired for RGBW bitstream
// NEO_KHZ400 400 KHz bitstream (e.g. FLORA pixels)
// NEO_KHZ800 800 KHz bitstream (e.g. High Density LED strip), correct for neopixel stick
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRBW + NEO_KHZ800);

void setup() {

strip.setBrightness(BRIGHTNESS);
strip.begin();
strip.show(); // Initialize all pixels to ‘off’
}

void loop() {
// Some example procedures showing how to display to the pixels:
colorWipe(strip.Color(255, 0, 0), 50); // Red
colorWipe(strip.Color(0, 255, 0), 50); // Green
colorWipe(strip.Color(0, 0, 255), 50); // Blue
colorWipe(strip.Color(0, 0, 0, 255), 50); // White

}
void animationExperiment(uint32_t c, uint8_t wait) {
for(uint16_t i=0; i < strip.numPixels(); i++) {
strip.setPixelColor(i, c);
strip.show();
delay(wait);
}
}

// 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 pulseWhite(uint8_t wait) {
for(int j = 0; j < 256 ; j++){
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, strip.Color(0,0,0, j ) );
}
delay(wait);
strip.show();
}

for(int j = 255; j >= 0 ; j–){
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, strip.Color(0,0,0, j ) );
}
delay(wait);
strip.show();
}
}

void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {
float fadeMax = 100.0;
int fadeVal = 0;
uint32_t wheelVal;
int redVal, greenVal, blueVal;

for(int k = 0 ; k < rainbowLoops ; k ++){

for(int j=0; j<256; j++) { // 5 cycles of all colors on wheel

  for(int i=0; i< strip.numPixels(); i++) {

    wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) & 255);

    redVal = red(wheelVal) * float(fadeVal/fadeMax);
    greenVal = green(wheelVal) * float(fadeVal/fadeMax);
    blueVal = blue(wheelVal) * float(fadeVal/fadeMax);

    strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );

  }

  //First loop, fade in!
  if(k == 0 && fadeVal < fadeMax-1) {
      fadeVal++;
  }

  //Last loop, fade out!
  else if(k == rainbowLoops - 1 && j > 255 - fadeMax ){
      fadeVal--;
  }

    strip.show();
    delay(wait);
}

}

delay(500);

for(int k = 0 ; k < whiteLoops ; k ++){

for(int j = 0; j < 256 ; j++){

    for(uint16_t i=0; i < strip.numPixels(); i++) {
        strip.setPixelColor(i, strip.Color(0,0,0, j ) );
      }
      strip.show();
    }

    delay(2000);
for(int j = 255; j >= 0 ; j--){

    for(uint16_t i=0; i < strip.numPixels(); i++) {
        strip.setPixelColor(i, strip.Color(0,0,0, j ) );
      }
      strip.show();
    }

}

delay(500);

}

void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {

if(whiteLength >= strip.numPixels()) whiteLength = strip.numPixels() – 1;

int head = whiteLength – 1;
int tail = 0;

int loops = 3;
int loopNum = 0;

static unsigned long lastTime = 0;

while(true){
for(int j=0; j<256; j++) { for(uint16_t i=0; i= tail && i <= head) || (tail > head && i >= tail) || (tail > head && i <= head) ){
strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );
}
else{
strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
}

  }

  if(millis() - lastTime > whiteSpeed) {
    head++;
    tail++;
    if(head == strip.numPixels()){
      loopNum++;
    }
    lastTime = millis();
  }

  if(loopNum == loops) return;

  head%=strip.numPixels();
  tail%=strip.numPixels();
    strip.show();
    delay(wait);
}

}

}
void fullWhite() {

for(uint16_t i=0; i<strip.numPixels(); i++) {
    strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );
}
  strip.show();

}

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

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

// 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,0);
}
if(WheelPos < 170) {
WheelPos -= 85;
return strip.Color(0, WheelPos * 3, 255 – WheelPos * 3,0);
}
WheelPos -= 170;
return strip.Color(WheelPos * 3, 255 – WheelPos * 3, 0,0);
}

uint8_t red(uint32_t c) {
return (c >> 8);
}
uint8_t green(uint32_t c) {
return (c >> 16);
}
uint8_t blue(uint32_t c) {
return (c);
}

Greek Urn (Plush Light)

Get connected to your godly past with this magical urn. The waters of eternal youth pour from this urn. This plump, plush urn can be adorned on fainting couches to book shelfs.

The light represents the mystic in all of us, the bearer can feel as though they have a connection to ancient times.

Editing Group: Wen and Shuyi