Light and Interactivity · Maker's blog · Subtraction

Making Mountain Far

This is project that I made for Light and Interactivity, and using the skills of CNC from subtraction.

My previous project candle, I was using the paper as a shader, I realized that the shadow of the layers of paper looks like mountain. 

This reminds me using paper to create beautiful interactive mountain shaped light.

I love mountains, and I especially love the poems of the mountains.

Mountain can be home home, and mountain can be obstacles to our home.

Tang dynasty poet Su Shi wrote that

From the side, a whole range;  

from the end, a single peak:

Far, near, high, low, no two parts alike.

Why can’t I tell the true shape of Lu-shan?

Because I myself am in the mountain.

I see the poem as the indication of sometimes one can’t see the things clearly is because one is too much involve in the situation.

I would love to use the two status of the mountain “can’t tell the true shape” and “can tell the true shape”, which will be two status that the mountain can not be seen and mountains would appear.

Sketches

I want the shape to look like a window and a  silhouette . I would use silk as diffuser and shader material. As in the experiment that silk can cover the paper mountains really well to a degree that the paper will not be seen, and when it lits up silk allow the light to go through, the shape of the paper can easily be seen, however have a sense of vague-ish feeling, that create the “fog” for the light.

Silk in lighting design

The layers of mountains will be in between the plywood.

Circuit

I would love to use touch sensor, to put a touch pad on the side of the light. Since to touch is one of the most intuitive human nature, and there is something poetic about touching a light and it lits up.

/*
 This code is for Light and Interactivity midterm.
 Mountain Far 远山 (圆扇)
 Siman Li March.3 2017
 When touched once, one LED lights up, when touched twice, two LEDs lights up
 when touched three times, the LED turns off

4 March. 2017
 Siman Li
*/

const int buttonPin = 2; // the number of the pushbutton pin

const int ledPin = 3; // the number of the LED pin
const int ledPin2 = 6; // the number of the LED pin
const int ledPin3 = 5; // the number of the LED pin


int buttonPushCounter = 0; // counter for the number of button presses
int buttonState = 0; // current state of the button
int lastButtonState = 0; // previous state of the button


int brightness1 = 0;
int brightness2 = 0;
int brightness3 = 0;

int fadeAmount1 = 1; // how many points to fade the LED by
int fadeAmount2 = 1; // how many points to fade the LED by
int fadeAmount3 = 1; // how many points to fade the LED by

// variables will change:

void setup() {
 pinMode(buttonPin, INPUT);
 pinMode(ledPin, OUTPUT);
 pinMode(ledPin2, OUTPUT);
 pinMode(ledPin3, OUTPUT);
 Serial.begin(9600);
}

void loop() {
 // read the pushbutton input pin:
 buttonState = digitalRead(buttonPin);
// Serial.println(buttonState);
 // compare the buttonState to its previous state
 if (buttonState != lastButtonState && lastButtonState == 0) {
 buttonPushCounter += 1;

if (buttonPushCounter > 4) {
 buttonPushCounter = 0;
 }
 Serial.print("number of button pushes: ");
 Serial.println(buttonPushCounter);
// Serial.println(framerate);

// delay(3000);
 }

lastButtonState = buttonState;
 if (buttonPushCounter == 0) { // == is when you try to check
 fadeAmount1 = 1; // how many points to fade the LED by
 fadeAmount2 = 1; // how many points to fade the LED by
 fadeAmount3 = 1;
 }
 if (buttonPushCounter == 1) { // == is when you try to check
 sinLight1();
 brightness2 = 0;
 brightness3 = 0;
 analogWrite(ledPin, brightness1);
 analogWrite(ledPin2, brightness2);
 analogWrite(ledPin3, brightness3);

delay(50);
// Serial.print("brightness1: ");
// Serial.println(brightness1);
 }
 if (buttonPushCounter == 2) {
 sinLight1();
 sinLight2();
 brightness3 = 0;
 analogWrite(ledPin, brightness1);
 analogWrite(ledPin2, brightness2);
 analogWrite(ledPin3, brightness3);

delay(50);
// Serial.print("brightness2: ");
// Serial.println(brightness2);
 }
 if (buttonPushCounter == 3) {
 sinLight1();
 sinLight2();
 sinLight3();
 analogWrite(ledPin, brightness1);
 analogWrite(ledPin2, brightness2);
 analogWrite(ledPin3, brightness3);

delay(50);

}
 if (buttonPushCounter == 4) {
 turnOff();
 // brightness1 = 0;
 // brightness2 = 0;
 // brightness3 = 0;
 analogWrite(ledPin, brightness1);
 analogWrite(ledPin2, brightness2);
 analogWrite(ledPin3, brightness3);

delay(50);
 }
 // Serial.println(brightness);
// Serial.print("brightness1: ");
// Serial.println(brightness1);
}
void sinLight1() {
 // change the brightness for next time through the loop:
 brightness1 = brightness1 + fadeAmount1;

// reverse the direction of the fading at the ends of the fade:
 if ( brightness1 >= 255) {
 fadeAmount1 = 0;
 }
 // wait for 30 milliseconds to see the dimming effect
 delay(30);
// Serial.println( brightness1);

}
void sinLight2() {

// change the brightness for next time through the loop:
 brightness2 = brightness2 + fadeAmount2;

// reverse the direction of the fading at the ends of the fade:
 if ( brightness2 >= 255) {
 fadeAmount2 = 0;
 }
 // wait for 30 milliseconds to see the dimming effect
 delay(30);

}
void sinLight3() {

// change the brightness for next time through the loop:
 brightness3 = brightness3 + fadeAmount3;

// reverse the direction of the fading at the ends of the fade:
 if ( brightness3 >= 255) {
 fadeAmount3 = 0;
 }
 // wait for 30 milliseconds to see the dimming effect
 delay(30);
}
void turnOff() {
 brightness1 = brightness1 - fadeAmount1;
 if (brightness1 <= 0 ) {
 fadeAmount1 = 0;
 }
 brightness2 = brightness2 - fadeAmount2;
 if (brightness2 <= 0 ) {
 fadeAmount2 = 0;
 }
 brightness3 = brightness3 - fadeAmount3;
 if (brightness3 <= 0 ) {
 fadeAmount3 = 0;
 }

}

Fabrication

I chose to use the plywood, because they look like annual ring of the tree on the side. Those rings were cut on CNC.

 Draw the mountains!

For the lid I use the pocketed layer and to use screws to hold them together, as Ben suggested,  which holds so much stronger than my previous design of using mangentic.

 

Documentation

Video will be made soon!! The problem right is the flickering effect…

Leave a Reply

Your email address will not be published. Required fields are marked *