Technical Description

            The work consists of a computer, a television, an Arduino microcontroller and a coffee maker hacked open to operate the on/off switch internally using a solenoid actuator.  The monitor will display a scene from Woody Allen’s movie Deconstructing Harry in which Woody Allen’s character is at his analyst’s office discussing his inadequacies and neurotic behavior.  The coffee maker will be connected to the computer via the Arduino board and will operate based on the on/off commands being sent from the computer program.

Technical Process

            The first thing that I did after purchasing my coffee maker was that I opened it up, sawed off some unnecessary parts and installed a servo inside of it. The hope with using a servo was to utilize its side-to-side movement in order to manually pull the switch on and off from inside the machine.  I played around with the servo quite a bit trying to get it to follow the torrent of 1’s and 0’s being sent through the microcontroller, unfortunately the servo requires a delay between each pulsing in order for it to reset and accept the signal being sent.  The slowness with which the servo moved did not reflect the anxiety in the monologue.  It was suggested to me that a solenoid actuator might work better.  A solenoid is “a loop of wire, often wrapped around a metallic core, which produces a magnetic field when an electrical current is passed through it (wikipedia.org).”  The plan was that when the electrical current passed through, the solenoid would pull in and in the process pull the switch on, when the current stopped it would release and the switch would turn off.  In order to control the current flow a relay or transistor is necessary.  I spent a good amount of time trying to operate the solenoid off of a relay with no success.  In the graduate tutorial class with Katherine Moriwaki I wired the solenoid to a transistor to successfully operate the flow of electricity.  The other advantage to using the solenoid over the servo is that the servo required an elaborate program code that would operate the pulsing of the motor, with the solenoid all that was necessary was a simple code that would send a HIGH when receiving a 1 and a LOW when receiving a 0 (see attached code).  I uploaded the code unto the arduino and then ran the processing code to operate the microcontroller.

Programming

            I feel very strong about the choice of using binary code, but I must admit that part of the desire to use binary code came out of the naivete of not having a background in computer science or programming.  Binary code is computer language at its most basic.  Every function that the computer performs comes down to a set of 0’s and 1’s and so it seems most important that when translating neurotic behavior into a computer function that it should be broken down to its most basic element.  The binary code also has a direct relationship with embodied neurotic behavior; a neurotic person is often oscillating between action and inaction in the attempt to accomplish a task, much like the series of 0’s and 1’s that are sent through the computer hardware in detereming how and whether to perform a function.  Of course in the case of the computer, there is always a performance, a function being executed.  This is because that is the function of binary code in computer language, it is to relay a task to the hardware. 

            Here I saw the importance of binary code translating the neurotic behavior, the reversal of the self assured completion of a task that is inherent to computer language.  With a series of 0’s and 1’s being sent through the hardware of the computer without a clear task other than to be 0’s and 1’s at their basest, turning on and off, like a switch.  Whereas in computer language there is a very deliberate structure to the 0’s and 1’s that are translated into action, in the case of the neurotic program, the action is the relaying of the code itself.  There is no logic to the code, it is merely a direct translation of the neurotic text.  The only function that it can perform by virtue of it not making out coherent instructions is to turn on and off; To perform its own meaning. 

            The naivete comes in at this point.  With the above explanation, there was an assumption to the fixedness of the binary structure itself.  That the letter A for example will always assume the same binary code, regardless of how and where it is typed.  In early crits of the work, it was suggested that I utilize other formats of translation of the text, or even of the audio of the Woody Allen segment.  It was suggested that perhaps there could be a programmed neurotic scale that could pick up from the speech the varying degrees of neurosis and operate the switch in that manner.  Another suggestion was the volume that the switch could easily operate on a volume scale, turning on when about a certain volume and off when below.  I rejected these suggestions with a similar criticism that I think is offered in Eduardo Kac’s Genesis piece.  Kac translated a verse from the Bible to morse code which he then translated to genetic code.  The question that asked with Kac, is why the morse code.  It is seemingly such an arbitrary choice.  It is universal but outdated, it doesn’t have a direct relationship to either the biblical verse or the genetic code.  Kac writes that “Morse Code was chosen partly because, as first emplyed in radiotelegraphy, it represents the dawn of the information age-the genesis of global communication.“ (251)  He further elaborates about the connections drawn between the “imperialist ideology (of morse code) and the reductionistic view of genetics, both focused on suppressing the complexity of historic, political, economic, and environmental forces that make up social life.“(262)   The explanation offered is significant in that the artist is justifying an artistic/intellectual choice, not simply a scientific/logical choice. It is not important whether Kac chose Morse code initially for the ease which he may have felt it would allow him to transition between written text to genetic code, he offers an intellectual reasoning for its utiilization.   However, initially, in my choice of binary code I thought that I was exercising a logical choice: all computer language and function is broken down to 0’s and 1’s hence it is logical that the function of the neurotic program be broken down to it as well.  When it was pointed out to me that there is no fixed binary code for anything, the arbitranriness of my choice started to frustrate me.  The letter A is always interpreted as a different binary code, depending on its format, the program it is running in, it proximity or relationship to other characters.  In computer language there is never a clear fixed binary code.  At this point I toyed around with the idea of maybe switching the translation to a different one, since none could be defined as the most appropriate logically.  However in trying out different approaches I believe that binary code most directly translates the intellectual idea offered above; that neurotic behavior when translated to a physical dimension is an oscilliation between action and inaction.  A string of digits made up of 0’s and 1’s most literally convey the very same movement between action and inaction.

Inspiration

Some of the artists whose works I looked at for inspiration include:

  1. Norman White, Helpless Robot
  2. Nam June Paik, Robot K-456 and The First Catastrophe of the Twenty-First Century
  3. 5VoltCore, ShockBot
  4. Tom Shannon, Squat

 

Works Cited

Deleuze, Gilles, and Felix Guattari. Anti-Oedipus: Capitalism and Schizophrenia.             University of Minnesota Press, 1983.

Kac, Eduardo. Telepresence and Bio Art: Networking Humans, Rabbits and             Robots (Studies in Literature and Science). University of Michigan Press,             2005.

Resources

Processing Code:

import processing.serial.*;

Serial myPort;
 
void setup (){
  println(Serial.list());
  myPort = new Serial (this, Serial.list()[0], 9600);
  noLoop ();
  size(200, 200);
 }

void draw(){

  //this is where the first string of Woody Allen's monologue goes
  String b = "l'm on the roof. She's pointing a gun at me... we're out in the cold and l'm panicked. l tell her a story l wrote when l was younger... and she found it funny, thank God.  She laughed and relaxed and she puts the gun down.";
 

  //tells it to read each letter in the string individually
  for (int i=0;i<b.length();i++){
 
  //converts the letters to chars
    char c = b.charAt(i);
  
 //writes out the binary code to the serial port  
   myPort.write(binary(int(c)));
 
  }
 
 // a delay for the therapist to speak
  delay(2000);

 //this is where the second string of the monologue goes
  String d = "lt's amazing to me, you know? The interesting thing apart from the obvious sexual guilt... that l had when l was young in the story... is that nothing's changed. lt's years later. l had a shrink then and now... l'm six shrinks later... l'm three wives down the line.And l still can't get my love life in order. l still love whores. lt's ideal. You pay them, and they come to the house... and you don't have to discuss Proust or films or... ";

  //tells it to read each letter in the string individually
  for (int j=0;j<d.length();j++){
   
  //converts the letters to chars 
    char e = d.charAt(j);
   
 //writes out the binary code to the serial port
   myPort.write(binary(int(e)));
  
  }
 
 //a delay for the therapist to speak
  delay(2000);
 
 //the third string of the monologue
  String f = "l don't know what's happening to me. ";
 
 //tells it to read each letter in the string individually
  for (int k=0;k<f.length();k++){
   
 //converts the letters to chars 
    char l = f.charAt(k);
   
 //writes out the binary code to the serial port
   myPort.write(binary(int(l)));
  
  }

 //a delay for the therapist to speak
  delay(2000);
 
 //the fourth string of the monologue
  String m = "l just have not grown up and l feel... l see other guys my age. l see guys l know that are lawyers and doctors...with families and houses. They're not so... Does the U.S. President want to fuck every woman he meets?Bad example. l don't know. Take Raoul Wallenberg...Did he want to bang every cocktail waitress in Europe? Probably not.";

 //tells it to read each letter in the string individually
  for (int n=0;n<m.length();n++){
   
 //converts the letters to chars
    char p = m.charAt(n);

 //writes out the binary code to the serial port
   myPort.write(binary(int(p)));
 
  }

 //a delay for the therapist to speak
  delay(2000);
 
 //the fifth string of the monologue
  String q = "l don't know what's happening to me. ";
 
 //tells it to read each letter in the string individually
  for (int r=0;r<q.length();r++){
   
  //converts the letters to chars 
    char s = q.charAt(r);
   
 //writes out the binary code to the serial port
   myPort.write(binary(int(s)));
 
  }
 
 //a delay for the therapist to speak
  delay(2000);
 
 //the sixth string of the monologue
  String t = "That's bullshit.  The same school that threw me out years ago... now wants to honor me.";

 //tells it to read each letter in the string individually
  for (int u=0;u<t.length();u++){
   
 //converts the letters to chars 
    char v = t.charAt(u);
   
 //writes out the binary code to the serial port
   myPort.write(binary(int(v)));
  
  }

 //a delay for the therapist to speak
  delay(2000);
 
 //the seventh string in the monologue
  String a1 = "Because l was not interested in college. l wanted to be a writer. Writing was all l cared about. l did not care about the real world. l cared only about the world of fiction. Plus l tried to give… the dean's wife and enema. They didn't like that. The sad thing is... l've gotta drive way upstate to be honored... and l have to go alone.  l got nobody to go with...";
 
 //tells it to read each letter in the string individually
  for (int b1=0;b1<a1.length();b1++){
   
 //converts the letters to chars 
    char c1 = a1.charAt(b1);
   
 //writes out the binary code to the serial port
   myPort.write(binary(int(c1)));
 
  }

 //a delay for the therapist to speak
  delay(2000);
 
 //the eight string in the monolgue
  String d1 = "l can't. lt's not my visiting time. Joan is completely inflexible, so...";

 //tells it to read each letter in the string individually
  for (int e1=0;e1<d1.length();e1++){
   
 //converts the letters to chars  
    char f1 = d1.charAt(e1);
      
 //writes out the binary code to the serial port
   myPort.write(binary(int(f1)));
 
  }

 //a delay for the therapist to speak
  delay(2000);
 
 //the ninth string in the monologue
  String g1 = "l can't even get her on the phone. She hates me and... for the first time in my life l have writer's block. Now this, to me, is unheard of. l start these short stories and l can't finish them. l can't get into my novel... because l took an advance. l don't know. l find l'm taking more pills and medicine and...";
 
 //tells it to read each letter in the string individually
  for (int h1=0;h1<g1.length();h1++){
   
 //converts the letters to chars 
    char i1 = g1.charAt(h1);
   
 //writes out the binary code to the serial port
   myPort.write(binary(int(i1)));
 
  }
}

Arduino Code:

/* the following program simply sends to the arduino a digital write HIGH when it receives a 1
  and sends a digital write LOW when it receives a 0.
*/
int solenoidpin = 11; // solenoid pin
int val = 0;

 

void setup() {
  pinMode(solenoidpin, OUTPUT);
  Serial.begin(9600);        // connect to the serial port
}

void loop ()
{
  val = Serial.read();
  if (val != -1) {

    {
      if (val == '1') {
        digitalWrite(solenoidpin, HIGH);
          Serial.println("on");}
        else if(val=='0'){
          digitalWrite(solenoidpin, LOW);
        Serial.println("off");
      }

  }
  delay(100);
  }

}