Sensing Ceiling



In the Heart Speed version of the Sensing Ceiling we have mapped the heart rate of the participants in the nearby performance piece to the recoil speed of our EMF detecting vines.   If the participants heart rate is elevated, the vines will recoil at a greater speed in an attempt to alleviate one of the many environmental stresses.  This mapping adds creates a visual and spatial indicator of the heart rates in addition an existing audio indicator.


Technical Aspects

In the revision of the sensing ceiling we switched from hacked servos to stepper motors.  With the stepper motors we achieved finer control of the movement.  We preferred the look and sound of the stepper motors in their new acrylic housings.  The steppers were driven direct drive and not geared like a servo so there was a large reduction in sound.  When driving the steppers fast we ran into problems with the library we were using, the amount or processing power with the arduino, and the mid band resonant frequencies of the motors we were using.  To solve some of the vibration problems we ran the easy driver boards in 1/8 step mode.

Unfortunately this 1/8 mode coupled with the motors we were using 200steps/inch = 1600 steps per revolution and thus the ardunio needed to pulse each digital step pin(8) total 1600 times a second to achieve the rather limited speed of 60 rpm.  The max step rate of the library we used was 1000 steps per second as it relied on milis to calculate step timing.  This lowered our max speed to around 37.5 rpm

Even with these limitations we decided the accelstep library 1.3 was the best choice.

Because we used a library to control the stepper motors instead of generating the 1000’s of pulses per seconds ourselves we could utilize simultaneous stepper movement in the background while the arduino code still continued to manage control statements.  The library also allowed us to keep easy readings of all of our steppers’ positions on the fly and used absolute positioning.

It became obvious the arduino was running out of processing power when we attempted to oscillate our motors and we could only move a few of them at a time reliably or they would begin missing steps, becoming more and more inaccurate as time went on, this behavior only showed itself when using lots of steps per second on all motors in different directions.

A solution that would have avoided these problems would have increased cost quite drastically.  This would be a stepper driver that generates pulses itself from a digital high or low signal.  In this case the arduino would only need to pull the step and direction pins low or high, and not generate the steps necessary to control the motors on it’s own.

Circuit Diagram


8 stepper motors

8 easy driver stepper driver boards

1 Arduino Mega

1 variable power supply (approx requirements during operation, 3.5 amps, 10 volts )

80′  22 gauge, clear plastic braided copper stereo cable

8 acrylic housings ( laser cut from1/8″ acryclic sheet)

16  lead free 1 ounce slip fishing weights

1/2″ birch ply panel 48″ x 30″

4 turnbuckle attachments to ceiling for leveling



.txt file here


Accel Stepper library by Mike McCauley

The sensing ceiling seeks to create a dialogue between the occupants of the room and space overhead by reacting to the electromagnetic fields generated by the human and machine actors within a space.  Sinous weighted wires emerge from each ceiling panel and begin to oscillate.  Sound and motion draw attention to the  marginalized space overhead.  By interacting with the weighted wires, users can learn to control their behavior and manipulate the space willfully.

Several basic behaviors were considered and experimented with through the 3 physical iterations of the project.


Throughout the course of this project we experimented with 3 physical variations.  Initially we constructed a rough prototype employing a stepper motor.  This functioned well individually after some tweaking to properly read and filter the variable EMF readings.   Based on the success of the inital model we decided to scale up to a field condition.  The use of stepper was cost prohibitive so we order DC  motors and H bridges.  Find the motor lacking in control, we switched to stepper which we hacked to allow 360 degree rotation.  After spending too much time hacking, mounting and connecting the servos, we realized that we had not paid sufficient attention to the physical spooling and unspooling.  Stepping back we constructed a larger spool and added sliding weights to rectify our physical issues.  This made the sovling of our coding issues much simpler.

An early video of troubleshooting the stepper prototype


The in class video of the field condition ceiling panel

The revised hacked servo model, interrupted unreeling

The revised hacked servo model, oscillation speed variation


Parts List

21 miniservos, hacked

24 guage speaker cable

steel sinkers

laser cut cardboard and acrylic frames

470 micro farad capacitor

arduino mega

variable power supply



Over the course of three iterations we developed arduino code for two different reactive behaviors.  In the first he wire unspools until it detects an EMF then retracts.  In the second the weigted wire oscillates at a greater speed when it detects EMF.