Separation Engine

IMG_8143

The Separation Engine is a machine that types pre-determined messages onto a keyboard, indirectly interfacing with a computer to write these messages for the viewer.

I originally intended for this machine to be able to type any character on the top row of a qwerty keyboard. However, the Arduino Mega I needed to make this happen never shipped, so I was ham-stringed to 6 servos, 2 of which were needed for the space bar and the enter key.

Since this piece is so much about communication, I decided to limit myself to the words ‘i’ and ‘you’, using these as a basis for morse code. Currently, the piece types the following, looping forever:

Screen Shot 2014-11-10 at 12.49.59

this translates to ‘I don’t want this.’ I recently ended a relationship, and this ended up guiding the subject matter of the piece.

IMG_8144

IMG_8145

I’m ultimately dissatisfied with the piece, since I wanted it to originally be so much more than what it currently is. There’s also a lot more I would like to do with this technology. There are a lot of different designs I’ve been considering for ways to hit the keys that would be more engaging and faster than this setup. I also want to change the subject matter. something that I discovered while making this (with the help of Luca) was that it would be entirely feasible to make a machine that could re-write the code that programs it, and then upload that code to the machine itself.

Tyro_bb

#include <Servo.h> 
 
Servo ent;  // create servo object to control a servo 
Servo o;                // twelve servo objects can be created on most boards
Servo i;
Servo u;
Servo spc;
Servo y;
 
int d = 100;
 
void setup() 
{ 
  ent.attach(3);  // attaches the servo on pin 9 to the servo object 
  o.attach(5);
  i.attach(6);
  u.attach(9);
  spc.attach(10);
  y.attach(11);
} 


void hitent(){
  ent.write(30);
    delay(d);
  ent.write(45);
    delay(d);
}

void hito(){
  o.write(25); 
    delay(d);
  o.write(40); 
    delay(d);
}

void hiti(){
  i.write(152);
    delay(d); 
  i.write(135); 
    delay(d);
}

void hitu(){
  u.write(15); 
    delay(d);
  u.write(30); 
    delay(d);
}

void hitspc(){
    spc.write(140);
    delay(d); 
  spc.write(130); 
    delay(d);
}

void hity(){
    y.write(145); 
    delay(d);
  y.write(130); 
    delay(d);
}


void hityou(){
  hity();
  hito();
  hitu();
  hitspc();
}  

void hitI(){
 hiti();
 hitspc(); 
}

 
void loop() 
{ 
  hitI();  //i
  hitI();
  hitent();
  hitent();
  
  hityou();//dont
  hitI();
  hitI();
  hitent();
  hityou();
  hityou();
  hityou();
  hitent();
  hityou();
  hitI();
  hityou();
  hitent();
  hityou();
  hitent();
  hitent();
  
  hitI();  //want
  hityou(); 
  hityou(); 
  hitent();
  hitI(); 
  hityou(); 
  hitent();
  hityou();
  hitI(); 
  hitent();
  hityou(); 
  hitent();
  hitent();

  hityou();//this
  hitent();
  hitI(); 
  hitI(); 
  hitI(); 
  hitI(); 
  hitent();
  hitI(); 
  hitI(); 
  hitent();
  hitI(); 
  hitI(); 
  hitI(); 
  hitent();
  hitent();
  hitent();
}

 

Comments are closed.