Processing y Arduino

Buenas chicos, soy nueva tanto en Arduino como en Processing. Lo que necesito es que Processing interactúe con Arduino de forma que cuando un sensor ultrasónico detecte una distancia de 100 cm, suene un buzzer. A su vez que el buzzer, deje de sonar cuando se descuelga un teléfono analógico( que el interruptor no esté presionado). Por último cuando se descuelga el teléfono (interruptor no presionado) debe suceder algo en Processing (conjunto de líneas y formas). No tengo ni idea de comunicación serial. Si alguien me puede ayudar.
Tengo los siguientes códigos que funcionan por separado.

ARDUINO (SENSOR E INTERRUPTOR)

const int Trigger=5;
const int Echo= 12;
int timbre=10;
int interruptor=8;


void setup() {

Serial.begin(9600);
pinMode(Trigger,OUTPUT);
pinMode(Echo,INPUT);
pinMode(timbre,OUTPUT);
pinMode(interruptor,INPUT);
}
void loop() {
long tiempo, distancia;
digitalWrite(Trigger,LOW);
delayMicroseconds(2);
digitalWrite(Trigger,HIGH);
delayMicroseconds(10);
digitalWrite(Trigger,LOW);
digitalWrite(timbre,LOW);
digitalWrite(interruptor,HIGH);

tiempo=pulseIn(Echo, HIGH);
distancia= (tiempo/2) /29;

Serial.print(distancia);
Serial.println("cn");
delay(500);

int tlf=digitalRead(interruptor);

if((distancia<100 && tlf==1)){
timbre==HIGH;
tone(timbre,600);
delay(100);
tone(timbre,300);
delay(100);
tone(timbre,600);
delay(100);
tone(timbre,300);
delay(100);
tone(timbre,600);
delay(100);
tone(timbre,400);
delay(300);
noTone(timbre);
delay(1000);
}
else{
digitalWrite(timbre,LOW);
}


}



PROCESSING (CONJUNTO DE FORMAS)






float angulo=0;
float angle=0;
float a=0;
float b=0;

void setup(){
 size(1000,1000);
 background(0);
}

void draw(){
fill(0,70);
 noStroke();
 rect(0,0,height,width);
 noFill();
 stroke(255);
translate(300,300);

 
   if(mousePressed){



 for(float i=0; i<width; i=i+10){
stroke(255);
translate(500,500);
angulo=angulo+0.000005;
rotate(angulo+0.000005);
ellipse(i,0,3,3);
line(i,0,0,0);

 }
 resetMatrix();


for(float a=0; a<height; a=a+10){
 translate(600,600);
angle=angle-0.000005;
rotate(angle-0.000005);
ellipse(a,0,3,3);
line(a,0,0,0);
}

 resetMatrix();
 
 for(float t=0; t<height; t=t+10){
 translate(500,500);
angle=angle-0.000006;
rotate(angle-0.000006);
stroke(255,133,78);
ellipse(t,0,3,3);
line(t,0,0,0);
 }
 
 }
}