Physical Computing

Term 1 Final Project: Mandrake - Project Plan

Overview and Inspiration

I want to make a mandrake root that lights up and screams when you pull it out of the ground or touch it. There is a myth that this hallucinogenic plant only grows where dead men have hung and has mystical powers. Quite a lot of people have jumped on this – there are knitted mandrake roots, ornaments, etc. I want to make quite a cartoony, fun-time one.

Electronics

I want to use an Arduino with durational conditionals to fire off a series of lighting patterns and then a sound. The sensor will be either capacitive touch or a lever or photoresistor depending on the time available. Using a combination of booleans with PWM, and the millis() function it should be possible to wire up a jolly sequence of LEDs to bring my demonic vegetable to life.

Enclosure

I want to 3D print or clay model an enclosure to give my mandrake root some personality. This is the last consideration – but I already have proof of concept from work at the Sex Tech Hack printing 3D sculpted objects from Sculptris à Cura OBJ files and then using them to make a mould. The idea is that the final art object will be in silicon as this is a relatively stable and self-supporting material and also has the potential to be used in capacitive sensing.

Term 1 Final Project: Mandrake - Project documentation

Concept

I've been interested in witches and folk medicine for many years, and thought it would be fun to make an interactive mandrake. The mandrake is a root with arcane connotations – the legend is that it screams when you pull it out of the ground, and that anyone who hears the scream. I wanted to make an organic-looking mandrake root that 'screamed' and lit up when you pulled it out of the ground.

Idea development

I had some silicon and blue dye left over from another project, so initially was interested in making something which looked and felt very organic, and that reacted to touch. However, the casing for this would have required 3D printing a box to place inside a more organic sculpture, plus the silicon casting process was likely to become too resource intensive for this project. It also left little room for error, and whilst I was developing the ideas for the interaction and circuit this seemed like too prescriptive an approach.

Quite late in development, I decided to switch to a simple wooden container – and to make this the basis for an organically-developed, root-like exterior – allowing more freedom to develop and trial different circuits.

The idea of capacitive sensing got thrown out when I decided to go with a harder container – and in any case, I started thinking about what it was that 'made' the mandrake scream. It was exposure to light, so I decided to use a photoresistor.

Playing around with configurations of LEDs led to me deciding on a matrix – I looked into multiplexing but decided on a smaller number of LEDs that could be directly controlled on a 1:1 basis from the Arduino Uno's pins.

The colour blue stuck from the earliest idea, and I got some glossy blue cord from a hardware store which I thought would have a pleasing organic feel to it – it would allow me to create knots and roots and to make patterns which reference organic material whilst also conferring a cute, craftsy presence to my little mandrake.

For the scream, I decided to go with a simple piezo buzzer. I sourced a few from an electronics store to try out. I'm aware of wave shields as used here: https://www.youtube.com/watch?v=tbR1wwDLnRg but decided to go with a piezo because I was still thinking about making an unpleasant 'screaming' sound and I wanted it to feel like an embodied circuit ghost / bionic mandrake thing.


Schematic

Technical details

The technical set up for this is very simple – a photoresistor is connected to the A0 sensor pin and ground through a 10 kilo-Ohm resistor. This sets a baseline, and then acts as a switch when the input goes above a threshold (trial and error set this at 2x baseline).

If the photoresistor's input crosses the threshold, a sequence of LEDs and a piezo tune (using the Arduino tone() library) plays through. At the end of each cycle, if the input is still high, the seuence replays. If not, it stops.

The LEDs are blue (to match the exterior) and so two LEDs are put through a shared 220 Ohm resistor on the way to Ground.

The code has been split up into functions for ease of organisation – but the program uses more memory than it should. Future improvements would include more abstracted thinking about the LED pins in order to sequence LEDs using for loops, and the use of binary, lower-level messaging to change multiple pins at once.