2. LOCATION
Staircase in Arenberg Kasteel in Heverlee, Belgium.
A kinetic installation needs space. For the action
to be properly experienced, there should be a
certain distance between the installation, the user
and the surrounding objects.
Therefore this space is suitable since only the basic
and relevant elements are visible while the fillings
are white.
The primary function of a staircase is to give
a person the possibility to move comfortably to
another story. It is a tool to make the vertical
transportation of people possible. Thus, a staircase
is directly connected to the concept of kinetic
archictecture, as it naturally implies a movement.
When the kinetic installation reacts to movement,
using the stairs will cause a PASSIVE INTERACTION.
4. ORIGAMI TESSELLATIONS
“Origami (ori meaning folding and kami meaning
paper) is the art or process, originating in Japan,
of folding paper into a variety of forms.“
- www.dictionary.com
“Origami tessellations is a branch of origami.
A tessellation is a collection of figures filling a
plane with no gaps or overlaps.“
- origamiusa.org
Following these definitions, origami tessellations have
“movement“ and “flexibility“ as a natural property.
Folding the paper in a certain way will transform
regular paper into a three dimensional form which
can change its shape when a movement in applied.
It is a very clean and simple way to make a
kinetic surface.
6. INTERACTION
The passive interaction will attract the attention
of the passer-by. The user will be curious to
understand what just happened and will take a
closer look at the installation. In this way, ACTIVE
INTERACTION is induced.
By giving the user the choice to make a movement
to make the installation react, a game of interactions
will occur. This relationship between the user and
the origami will create a certain personification of
the origami as if it would have a human character.
The tactile aspect of the paper and its shape
enhances this consequence of wanting to touch the
installation.
10. Storyline
Someone wants to use the stairs. The movement is registered
by the installation.
PASSIVE INTERACTION
When that person takes a step, the motorised units of the
origami will close. When he passed by, the origami opens up
again.
ACTIVE INTERACTION
This movement is noticed by the user and it triggers his
curiosity. He turns around and looks at the wall. It was
moving before, but now it is standing still. .
Trying to understand what happened, he tries to touch the
wall. Suddenly the origami closes when his hand comes closer.
Caught by surprise, he pulls back his hand and he sees the
origami opening again as he moves further away. He starts
to understand the relationship between him and the origami
wall and starts to play. A game of interactions arises.
When he decides to continue his trip, the moving origami will
follow him until he has reached the end of the staircase.
SCENARIO
Is somebody standing on a step?
YES
Close all the units
YES
Close this unit according to
the distance to the sensor
NO
Is somebody trying to
touch one unit?
NO
Open this unit
11. NOBODY IN THE HALL
USER ON A STEP
USER TRIES TO TOUCH
All units open and LED's on
All units closed and LED's off
Unit closes and LED fades ragarding distance
12. Notes
This code is written in Arduino.
The code is built upon the scenario shown above
using if structures for the yes/no questions.
CODE
The values chosen for “minDist1“ and “minDist2“
are dependant on the general sensor and the Sharp
sensor, respectively.
“minDist1“ should be chosen regarding the location
of the installation since it detects the nearest
object. In this case, it is the opposite wall of the
staircase, so this value should be reduced to the
chosen one in the code.
“minDist2“ is chosen to reduce noise when no
movement is detected in the sensor.
The extreme value for “starClosed“ should be 180,
but to correct some imperfections in the servo, it
is reduced to 170.
A serial monitor is activated when there is a need
to check the measured or transformed values.
For the individual units, the range of the measured
values is adapted to reduce noise by the map
command.
13. #include <TinkerKit.h>
#include <Servo.h>
else if (analogRead(A0) > minDist1){
//When nobody is in front of the general sharp sensor
//UNIT 1
TKLed led1(O0);
TKLed led2(O1);
//LED Output0
//LED Output1
TKAnalog sharpGen(I0);
TKAnalog sharp1(I1);
TKAnalog sharp2(I2);
//Distance Sensor Input0
//Distance Sensor Input1
//Distance Sensor Input2
//Serial.print(“sharp1: “);
//Serial.println(sharp1.read());
//delay(200);
Servo stepper1;
Servo stepper2;
//Define the first Servo stepper
//Define the second Servo stepper
stepper1.write(starOpen);
led1.brightness(ledOn);
int starClosed = 170;
int starOpen = 0;
int ledOff = 0;
int ledOn = 1023;
//Define extrema
}
int previousReadingGen = 0;
int currentReadingGen = 0;
int previousReading1 = 0;
int currentReading1 = 0;
int previousReading2 = 0;
int currentReading2 = 0;
//Value general sensor
//Value individual sharp 2
currentReading1 = map(sensor1a, stepMin, stepMax, starOpen, starClosed);
stepper1.write(currentReading1);
//Open the star according to the distance
int ledBrightness1 = ledOn;
int ledBrightness2 = ledOn;
//Startvalue LED 1
//Startvalue LED 2
sensor1b = sharp1.read();
sensor1b = min(ledMax, sensor1b);
sensor1b = max(ledMin, sensor1b);
int minDist1 = 50;
int minDist2 = 100;
//Define minimum distance general sensor
//Define minimum distance individual sharp sensor
ledBrightness1 = map(sensor1b, ledMax, ledMin, ledOff, ledOn);
led1.brightness(ledBrightness1);
//Fade the LED opposite to the distance
int sensor1a = 0;
int sensor1b = 0;
int sensor2a = 0;
int sensor2b = 0;
//Define startvalues
int stepMax = 600;
int stepMin = 30;
int ledMax = 600;
int ledMin = 400;
//Define range Stepper
//Serial.print(“sensor 1b: “);
//Serial.print(sensor1b);
//Serial.print(“ ledbrightness 1: “);
//Serial.print(ledBrightness1);
//delay(50);
int dataGen = 0;
//Variables general sensor
if (sharp1.read() < minDist2){
else if (sharp1.read() > minDist2){
sensor1a = sharp1.read();
sensor1a = min(stepMax, sensor1a);
sensor1a = max (stepMin, sensor1a);
//Value individual sharp 1
if (sharp2.read() < minDist2){
//General sensor in input A0
//Start stepper in Output3
stepper2.attach(O4);
stepper2.write(starOpen);
stepper2.write(starOpen);
led2.brightness(ledOn);
//Start serial monitor
stepper1.attach(O3);
stepper1.write(starOpen);
//Start stepper in Output4
else if (sharp2.read() > minDist2){
sensor2a = sharp2.read();
sensor2a = min(stepMax, sensor2a);
sensor2a = max (stepMin, sensor2a);
sensor2b = sharp2.read();
sensor2b = min(ledMax, sensor2b);
sensor2b = max(ledMin, sensor2b);
//When somebody is in front of the general sensor
//ALL UNITS
//When nobody is in front of the individual sharp sensor 2
//Open the star
//LED on
//When somebody is in front of the individual sharp sensor 2
//Adapt stepper range
//Adapt LED range
ledBrightness2 = map(sensor2b, ledMax, ledMin, ledOff, ledOn);
led2.brightness(ledBrightness2);
//Fade the LED opposite to the distance
//Serial.print(“algSensor: “);
//Serial.println(analogRead(A0));
//delay(100);
//Serial.print(“ sensor 2b: “);
//Serial.print(sensor2b);
//Serial.print(“ ledbrightness 2: “);
//Serial.print(ledBrightness2);
//delay(50);
currentReadingGen = starClosed;
stepper1.write(currentReadingGen); //Close all stars
stepper2.write(currentReadingGen);
delay(500); }
//Adapt LED range
currentReading2 = map(sensor2a, stepMin, stepMax, starOpen, starClosed);
stepper2.write(currentReading2);}
//Open the star according to the distance
void loop() {
led1.brightness(ledOff);
led2.brightness(ledOff);
//Adapt stepper range
}
}
if (analogRead(A0) <= minDist1) {
//When somebody is in front of the individual sharp sensor 1
//UNIT 2
void setup() {
pinMode(A0, INPUT);
//Open the star
//LED on
}
//Define range LED
Serial.begin(9600);
//When nobody is in front of the individual sharp sensor 1
//All LED's off
}
}
else if (sharp3.read() > minDist2){
//When somebody is in front of the individual sharp sensor 3
sensor3a = sharp3.read();
//Adapt stepper range
sensor3a = min(stepMax, sensor3a);
14. The rotation of the servo makes two railings slide over a central
plate. This horizontal movement is connected to two vertical frames
which are connected in a joint. These frames rotate around this
joint and are connected to the origami by “pin and hole“ connections
between the plexi and the paper.
HARDWARE: UNIT
Pins provided on top of the squares to connect it to the holes in the paper.
15. This drawing is cut out of 2mm plexi with a lasercutter.
The pieces are glued together and the joints are fixed
with screws.
The rotating frames are designed in order to easily
attach the sensors and LED's to it.
The two railings are fixed by the central piece which is
pushing them apart and the slits in the box around it.
16. Because “het Arenbergkasteel“ is a monument, it is not allowed
to make any changes to the existing structure. This means that
the project can not hang on the wall or the ceiling. For this,
the whole structure should fit in a specified box which has the
dimensions of one step of the stairs, so that it can simply stand
on it. This drawing is cut out of 5mm plexi with a lasercutter.
HARDWARE: FRAME
18. By folding the paper, the perforated squares pop upwards, creating a three dimensional
flexible surface.
This pattern shows a flat surface when it is completely closed. The squares move outward
when the unit opens up. The holes are designed to provide proper fixation to the hardware
unit by “pin and hole“ connections and it allows the Sharp sensor to be placed behind the
origami paper and still receive a good signal.
The paper is cut out in this way to build a prototype of eight blocks next to eich other
with the motorised units connected to the outermost squares. The idea is to have the wall
completely covered by origami, which means that the paper would be a certain repitition
of this example.
INE
ING L
CUTT
LD
EY FO
VALL
MOU
NTA
ORIGAMI
IN F
OLD
lasercutter: A3 paper 200g/m2
21. INSPIRATION
Tomohiro Tachi and “The science of origami“: http://www.tsg.ne.jp/TT/origami/
Eric Gjerde and “Origami Tessellations“: http://www.origamitessellations.com/
Kevin N. Andersen and “Kinetic Folds“: http://www.kevinandersen.dk/portfolio/#essense
DESIGN PROCESS
The challenge lies in finding the extrema of origami and its opportunities. Starting from a simple folded paper and connecting this to Arduino and
Tinkerkit exposes a lot of interesting difficulties and possibilities which were explored and tested throughout the process. Combining this with the
obtained concept, an intensive combination of programming and fabbing took place, resulting in a variety of testmodels, all with its own failures and
successes until the final result was reached.
FINAL THOUGHTS
It was the initial concept to have the whole wall covered with one piece of origami. When one unit is activated, the other units will follow the
movement. In the end it seems that this way of folding the paper makes the origami a bit too stiff to really have a significant movement in
the whole “wall“. Therefore, I suggest to make smaller clusters of units separated from the other clusters and secure these to the wall (or frame)
separately. In this way the movement will be better perceived. The most practical case would be to have these clusters in the same dimensions as
the steps of the stairs, as they can then simply be put on the floor. The general sensor should be located about 1.50m above the floor and few
centimeters in front of the origami to prevent it from interfering with the surrounding surfaces.
The “pin and hole“ connections are a bit too small. The lasercutter has some inperfections since a bit of the surrounding plexi melts, so most of the
pins that were cut out, were too deformed to be attached to the other plexi.
REFERENCES
Page 2 map: http://studioroma.be/wp-content/uploads/2011/05/Arenberg-13.jpg
Page 5 image: http://likethenoondaysun.blogspot.be/2012/10/origami-paper-tessellations.html
Page 15 image: http://www.tinkerkit.com/modules-2/
END NOTES & REFERENCES