From Lahaag - Project wiki
Jump to: navigation, search


About the work

This installation was conceived as a site specific work for the performance space 2m3 in Brussels. Invited to do a performance, there were two things which I found inspiring about the space. The space has a lot of similarities with my own workspace : a ground level, dark space situated at the back of a building, with little daylight coming through the windows. And there was a plummet hanging from the ceiling, to mark the 2 cubic meters to which the name of the organization is referring to.

2m3 is an open space of 2 meters in 3 dimensions. It represents a platform for artists who like to surprise themselves and a small audience. A performance starts with 2 minutes of action in 3 minutes of silence. With each artist goes a special beer to keep us all company for the night. This experimental snapshot takes place at home, every last friday of the month.

As I'm personally not really a performer, my field is that of the fine arts, I decided that the focus should lay on the space, and the visitors being present in the space. Rather then me performing in it. So in stead of performing I created an installation using the space. I modified the plummet hanging from the ceiling so that it could function as a pendulum, like the Foucault pendulum. Using magnets and a coil I could set it of swinging permanently. Over time it slowly rotated it's path, functioning like a clock, making one rotation over the period of about a day. Outside at the back of the space, I installed a light source and on the first floor , so I could project light from above through the back window into the space.

The scenario for the performance went as followed:

The space was completely dark. Only the the pendulum, hanging motionless, was lit with a small point light.
I set of the pendulum to swing.
Once it was swinging nicely, I placed a small wooden cylinder next to the swinging pendulum.
Together with the audience I watched the path of the pendulum slowly change and the pendulum approaching the piece of wood.
After about 20 minutes the pendulum knocked over the piece of wood.
As the wood dropped lights turned off.
The space went completely black now.
Slowly a light faded in, coming from the back window, lighting up the space like the changing sunlight would do, fading in and fading out again.

The setup


The pendulum is made out of a plummet which I got in the local hardware store. It was cut in half and the inside was milled out to fit two powermagnets. It weighs about ?. And is suspended on a 3m60 steel wire cable. Swinging above a small wooden construction. Underneath the construction I installed a coil. This gets charged and thus creates a small magnetic force which pushes the pendulum every time it passes above the centre.



The whole thing works with an arduino. This controls a solid state relay to switch on the power for the coil. A hall effect sensor senses the plummet moving over and triggers everything. It goes like this :

- Plummet moves over hall effect,  
- Hall effect switches on because of magnetic field of the plummet
- A small delay of 100 ms 
- The coil is charged for a short while
- Hall effect switches off because the coil creates a magnetic field from underneath the hall effect 
- Coil is discharged
- Plummet moves over hall ...

With a piezo I detect the piece of wood being knocked over by the plummet. The code + circuit for this comes from one of the basic arduino examples

IMG 2774.JPG
I'm using a solid state relay instead of a tip 122 circuit.

Solid State Relay, 3.5 A 25VDC from Crydom

[Hall effect latch sensor] This hall effect sensor switches on whenever a postive magnetic force moves over. Stays on until a negative magnetic force is applied.


Here is the arduino code I wrote to drive the pendulum. It's something I came up with, tinkering about, it works for me, but possibly there are better ways to code it. Feel free to use it.

Code for driving a pendulum and detecting a small wooden block falling.
Digital pin 12 has a solid state relay attached to it. Whenever the pin 
goes high it allows current to flow to a coil giving the passing pendulum a push
Attached to interrupt pin 0(digital pin 2) is a hall effect sensor, which latches 
whenever the pendulum passes over. And so giving the pendulum a push
This example code is in the public domain.
int SolidState = 12; //pin to switch solid state
int Piezo = A0; //listen to piezo on Analog port 0 
int PiezoValue = 0;
const int thPiezo = 100; // threshold for piezo, if bigger then value switch of light
int HallState = 0; //Status of hall effect sensor
unsigned long timeON ; //moment of time that hall effect is triggered
unsigned long timeOF ; //moment of time that coil is activated
unsigned long currentTime;
long timeDON = 0; //time that has passed since hall effect was triggered
long timeDOF = 0; //time that has passed since coil was activated
int timeOFa = 0; //
long threshOn = 100; // milliseconds to pass before activating solid state relay to sending a push with coil
long threshOf = 100; // milliseconds to pass before deactivating solid state relay 
void setup() {
  // initialize serial communication at 9600 bits per second:
  pinMode(SolidState, OUTPUT); // make the SolidState's pin an output:
  digitalWrite(SolidState, LOW); // set SolidState pin LOW
    // adding attachInterrupt on digital pin 2, 
  // when this pin's state changes, the push function will be executed
  attachInterrupt(0, push, RISING); 
void loop() {
  unsigned long currentTime = millis(); //getting current time
  PiezoValue = analogRead(Piezo); //reading piezo value on analog pin 0
  if (PiezoValue > thPiezo){
  if (HallState == 0)
    timeDOF = currentTime - timeOF;
    if (timeDOF > threshOf && timeOFa == 1)
        digitalWrite(SolidState, LOW);
        Serial.println(2000);//2000 = solenoid off
        timeOFa = 0;
    timeDON = currentTime - timeON;
    if (timeDON > threshOn)
      HallState = 0;
      digitalWrite(SolidState, HIGH);
      Serial.println(3000);//3000 = solenoid on
      timeOF = currentTime;
      timeOFa = 1;
void push() {
  HallState = 1;
  timeON = currentTime;