Introduction
The creative goal of this project was an attempt to tie together a number of themes that are of interest to me, and to use some of the physical computing skills that I have been learning to create an installation that would hopefully be beautiful and engaging.
The main theme in this project relates to an ongoing interest of mine into the nature of time, and it’s connection to the ancient Chinese system of divination the I Ching. A strongly interrelated theme here is an interest in systems which mimic the functioning of autotrophic organisms. These are organisms which nourish themselves, thus systems which mimic their functioning will involve some sort of iterative feedback loop to form a sort of auto-catalytic, self-reinforcing process. I became interested in this idea after seeing ‘Talysis II, Autotrophs’ by Paul Prudence in the book ‘Generative Design’ by Bohnacker et al. (page 104-107).
To understand how autotrophism relates to theories of time, or more specifically non-western theories of time where time is considered to be cyclical, consider the picture below of the Ouroboros.

“The Ouroboros often symbolizes self-reflexivity or cyclicality, especially in the sense of something constantly re-creating itself, the eternal return…” Source; wikipedia.org)
The western scientific view of time as a smooth surface, where this moment is just like the one before it, and just like the one about to occur, is an idea that this project aims to challenge.
The System
Overview

My explanation of how the system works will begin with the electromagnetic interference (EMI) detector. EMI is a form of electromagnetic radiation, this is a combination of electrical and magnetic waves travelling outward from anywhere that an electrical power signal is changing or being turned off and on rapidly. The antenna for detecting EMI here is simply a 3 foot length of solid core wire, connected to an analogue pin of Arduino 1, via an LM386 amplifier chip circuit.


The system is listening for electromagnetic energy being emitted from various electronic devices in the local environment. Sometimes, an electrical device that has the potential to give off EMI is shielded to prevent interference from escaping; however a great many devices that emit EMI are shielded very lightly or not at all.
One unexpected autotrophic element of this system became apparent when I later added a servo motor right next to the wire antenna of the EMI detector. The values being read by the EMI detector determine whether or not the servo should move, and if so where. But every time the servo motor moves this creates a clearly perceptible change in the EMI detected, this was apparent by either looking at the values being read by the analogue pin on Arduino 1, or just listening to the tone being generated out of digital pin 11 on Arduino 1 (see figures 5 and 6), using the code below;
void loop() {
int analIP = analogRead(aPiNoise);
showDiag=0;
if (minNoise>analIP) { minNoise=analIP; showDiag=0; }
if (maxNoise<analIP) { maxNoise=analIP; showDiag=0; }
if (opct < 1050 && showDiag) { Serial.print(" no: "); Serial.print(minNoise); Serial.print(" "); Serial.print(maxNoise); if (++opct % 12 != 0) Serial.print(" "); else Serial.println(""); } if (abs(currAnal-analIP)>10) {
currAnal=analIP;
totAnal += currAnal;
if (muteState)
noTone(spkrPin);
else
tone(spkrPin, map(currAnal, minNoise, maxNoise, 30, 10000), 200); // pin, Hz, mS
}


The EMI values being read by Arduino 1 on analogue pin 5 are used to generate the lines (or yao) of an I Ching hexagram. Before I explain how this is done, I will first describe one of the traditional methods for casting the I Ching; the throwing of three coins. The lines of an I Ching hexagram are either;
- Old Yin (—X—)
- Young Yang (———)
- Young Yin (— —)
- Old Yang (—θ—)
For the three coins method, we give the lines the following values;
- 6 = Old Yin (—X—)
- 7 = Young Yang (———)
- 8 = Young Yin (— —)
- 9 = Old Yang (—θ—)
And we say that a tails = 2, and heads = 3. Then when throwing three coins;
- Three tails = 6 = Old Yin (—X—)
- Two tails and one head = 7 = Young Yang (———)
- Two heads and one tail = 8 = Young Yin (— —)
- Three heads = 9 = Old Yang (—θ—)
Thus there is a 1/8 chance of throwing a 6, a 1/8 chance of throwing a 9, a 3/8 chance of throwing a 7, and a 3/8 chance of throwing an 8.
What we have streaming from our EMI detector is a constant flow of noise data (values between 0 and 1023). To replicate the throwing of three coins we take the values being read by the EMI detector and sum them every time the value changes by 10 or more.





The great work continues…
Source Code
- Arduino sketch running on Arduino 1 is found here.
- Arduino sketch running on Arduino 2 is found here.
- Processing sketch running on Beagleboard xM is found here.
- Processing sketch running on PC is found here.
References and Acknowledgements
- ‘Talysis II, Autotrophs’ by Paul Prudence taken from the book ‘Generative Design’ by Bohnacker et al. (page 104-107).
- EMI detector idea taken from ‘Environmental Monitoring with Arduino: Building Simple Devices to Collect Data About the World Around Us’ by Gertz et al. (Chapter 4.)
- Values for Temporal Flux taken from ‘The Invisible Landscape’ by Terence McKenna (pages 162-163), a full derivation of these values is explained in Chapter 10.
- Idea for homemade opto-isolator taken from ‘Handmade Electronic Music’ by Nicolas Collins. Page 181. (My favourite book at the moment!).
- Fractal idea adapted from; http://glsl.heroku.com/e#16063.0, and inspired by http://www.fractalforums.com/new-theories-and-research/very-simple-formula-for-fractal-patterns/
- Breadboard diagrams created using Fritzing.
- Project title from ‘Finnegans Wake’ by James Joyce.