Sonntag, 27. Februar 2011

RaibowCoat - ShadowCoat with some Color :-)

Take a look :-D

And some stills:

And my arduino and breadbord, which powers all of this:

More Experiments with Nitinol Paper

We are accustomed to objects behaving the same way not matter what our mood or how we treat an object. A book behaves the same to someone who loves it and treats it as gentle as possible as it would to another person who hates the book, almost tearing out the pages while reading it. What if that where to be changed?

Take a look at what we are trying to do with paper:

We want to create paper, which moves depending on inputs it receives. It may shy away or close up altogether if you reach for it to fast. It may open and revile its message if left alone, or if soothed. The content of the paper itself will be projected on the inside of it. The projection will be of very graphic nature, playing with the phenomenon that one often is drawn to gruesome content and cannot look away. Here, one may be forced to look away because the paper my physically prevent you from seeing its content.

Animating the Paper

We animate the paper using Nitinol Memory wire. Memory wire has two phases, the Martensite phase at room temperature and the Austenite phase at temperatures greater than 70° Celsius. When in the Martensite phase the shape of the wire is freely deformable, when however heated, in the Austenite phase, it returns to its original shape. The shape it returns to in its Austenite phase can be set by heating the Memory Wire to over 540° Celsius.

When heated the memory wire has enough force to bend a second memory wire. This enables counteracting actuators and is the basic principle of our animated paper. We heat individual strands of memory wire by connecting them to a high powered battery for a brief moment. As we do not add resistors to this circuit, the power spike and, more specifically, the heat which is created in the process induces the phase shift in the memory wire. This setup can easily fold and unfold a piece of paper as can be seen in the above video or in the following picture: 

This mechanism can be used to create paper which can autonomously fold and unfold into simple shapes, reminiscent of folding origami.

Input for interaction

The folding and unfolding will be initiated by various different inputs. We have a variety of sensors available, microphones for measuring sound intensity and frequency, photo resistors which would react to shadows, Sharp IR range-sensors (as seen in the Theremin demo which we brought to class) or kinect for proximity sensing.  Using a combination of these sensors we will attempt to create an intuitive way of interacting with the paper. Proximity and sound amplitude may set off a folding motion when a certain threshold is reached, however it may be interesting to have interaction between the dominant frequency of the sound and the threshold levels. This may enable ‘talking’ to the paper to change its reaction to proximity, volume levels or light levels. If threshold levels have not been surpassed over a certain amount of time, the paper will unfold again. The sensors will not be physically placed on the paper, as the paper needs to be as light as possible and will most likely be prone to interfere with readings due to the temperature changes and the high amount of mA which will be sent through the circuitry on the paper.

A demo of IR range-sensors as Input can be found here:


 All sensors (except, if we use it, the kinect) will be connected to an arduino which in turn will communicate to Max/MSP/Jitter via serial connection.  The computer-vision aspects will also be handled in Max using cv.jitt.

Power supply

As the paper will be animated using a very high power circuit, we do not want to directly connect any microcontroller to it. All sensor readings will be done using an arduino, powered by a secondary electrical circuit.  The memory wire will then be activated by transistors or possibly even by relays. The primary circuit for animating the Paper is currently using a 9.6v DC power supply intended for RC cars; however for the final installation we will use a laptop power supply.  The sensors and Arduino will be powered by USB.

Tracking Projection Area

For projecting onto the paper we will use an active approach. Surface mount infrared LEDs combined with an IR webcam will be used to track the projection area. Surface mount LEDs are optimal due to their small form factor and can be placed directly onto the paper.  This is similar to the setup used by David Holman on his paper computer project. (

Set up & Miscellaneous

As the memory wire can only support paper up to a certain size, we are limited in how large our animated paper can be. It may be interesting creating a whole array or series of small objects instead of one large object. For displaying it most effectively a high contrast setting will be essential. Also, the input which activates the motion of the paper should also activate sounds, creating an ambient atmosphere.

Mittwoch, 23. Februar 2011

ShadowCoat v 0.02

Before I start rambling, take a look at this video. It’s a demonstration of how the prototype I built can be used as an interface device. I am here demonstrating how it could be used as a mouse. It’s sort of cool, though it sort of takes something really cool and turns it into something banal. While this works, and I know I can get it to work a lot better still, I am hoping to find more intuitive and natural ways of interfacing with computers using this type of technology. (ah, I have already started rambling. Whatever. Watch the video-clip.)(and hear some more rambling)

While my original demo worked quite well, it didn’t have any cable management, so you can spend quite some time figuring out which cable leads where etc. Also the material was quite flimsy and I mounted the Velcro upside down which isn’t helping the material either... also, the pressure fitting was sort of annoying etc. etc. Lots of little things which could be improved.

So on my week off of university, I decided to build a new prototype. Things I wanted to include/change where

- Feedback
- Cable Management
- Tilt of wrist
- Smarter positioning of Velcro
- Sturdier material 

Halfway through my work my sewing machine died on me. Well. It didn’t really die. It just sort of protested against sewing cables and electrical equipment to clothing. Guess this isn’t the future it envisioned. But it still is pretty, have a look:

Also I realized that by sheer luck I did a really good job on my first prototype. I had to figure out, often by trial and error, lots of little things which I, by pure coincidence, got right the first time I did it.

But I prevailed :-D. And while I got about half of what I wanted done, it’s a good start and I can definitely build on it, it is much more expandable/upgradeable than my first attempt.

The white thing you se protruding from my arm is an LED strip, so I can have color feedback to my movements.

One of the things which really baffled me was the voltage divider. First time round it just worked, so I didn’t spend much thought or time on it. This time I was not so lucky. So, here is how it should be done:

It is my experience, that the resolution is best when the resistance of R2 is as close as possible to the nominal resistance of the corresponding sensor. I think it might help this project to include opamps for better resolution. I hope to be testing that soon.

I also rewrote all of my code. For the first time in my life I found myself actually appreciating how powerful object oriented programming is. It improves the simplicity of my code drastically, makes it much easier to add sensors, to scale and map them and to just generally have some useful signal flow.

I also figured out that timing is really crucial. I have never really worried about how long it takes to execute a function, but I realized that this is the reason to 90% of errors and bugs I had in my programming, as it can go haywire when the timing between serial and java as well as the communication between objects is out of sync.

Anyway, for the first time I have some code which actually works well enough, that I feel like sharing it. I will figure out the proper format of doing so as soon as I get around to it. In the meantime feel free to contact me at paul dot strohmeier at if you would like a look at it.


OK, some more random pictures, just because I took them :-D

4 Voltage dividers (schematic of individual one can be found in a pic further up)

Stretch Sensor material from Images

I did this at my grandparents place. This is my gradfather workshop, where I did some soldering.

It’s hard to see, but in case you are interested in how I connected the sensor material with the wired, this sort of gives a clue. I basically just wrap the wire ends around the sensor. If I had a working sewing machine I would pin this to the canvas using criss-cross stitches. As my sewing machine preferred not to support this line of work, I just put electrical tape around it, before sewing it to the shirt by hand.

Anyway - that’s it for now. I really hope I will have time to incorporate the leds and other stuff, but I am afraid it might take a while before I find time to continue work again...

Montag, 14. Februar 2011

Arduino & Max/Msp/Jitter - Serial Communication

Ok, I recently put together a small project trying together my Arduino and Max by Cycling 74. While sending serial information from Max to Arduino is amazingly trivial, doing it the other way is not.

If you want to send information from Max to arduino, its sufficinat to just create a serial object and set the correct boud rate (for me I type in [serial c 9600] where c is port 3 and 9600 is the boud rate). Then you could connect i.e. a slider, and *magic* your sanding information. In arduino all you have to do is initilazie the serial and then use

Ok, the other way round proved to be a bit more tricky (though possibly, once I had figured it out, possibly easyer than serial communication with processing, and thats quite easy)

I made to template files. One for Arduino and one for Max. If you load the .pde file into arduino and open the Maxpatcher, you should be able to send date the other way round. There are instructions in the .pde file on how to set things up

click here to download

(this works on a p.c. running windows 7 it should work on any other operating system as well, but honestly I have no idea.)

I used this here

Hope someone out there finds this helpful.



Samstag, 12. Februar 2011

Active Paper

So, I had a birthday. And the plan was to come up with some cool things, and then have some drinks. The drinks sort of predominated the hacking and building, but we did end up doing this:

This is basically just another proof of concept, I hope to expiriment with this a lot more...

Donnerstag, 10. Februar 2011

--> off topic: Kingston

My House

My Street

Mr. Newmanns House :-D

Johnson Street

University Ave. / Camputs

The Library