Gestalttoy is an interaction design project developed as an exercise in the multimedia design course. Starting from the Arduino code assembled with a potentiometer, I took advantage of the gestures of approaching and moving away to let the user experience the rules of gestalt. By clicking with the mouse the user will choose a rule and apparently nothing will change on the screen only once the potentiometer is activated the user will notice a change and will always experience a new law.

PROCESSING CODE
//MENU PLAY
int rectX, rectY;     
int rectSize = 50;     
boolean rectOver1 = false;
boolean rectOver2 = false;
boolean rectOver3 = false;
boolean rectOver4 = false;
boolean rectOver5 = false;
boolean rectOver6 = false;
boolean GameStart = true;
PFont font;
float g0=2000;//Start
//SONG
import processing.sound.*;
SoundFile file;

//ARDUINO
import processing.serial.*; //importing serial lib
Serial arduino;
int serialIn;
//VARIABILI ATTIVAZIONE
float g1=0;//Good Form
float g2=0;//Closure
float g3=0;//Good Form
float g4=0;//Good Form
float g5=0;//Good Form
float g6=0;//Good Form
//VARIABILI TESTO
float shp=0;
//VARIABILI GOOD FORM-----------------------
float val=0;
float x1=0;
float sato=0;
//VARIABILI CLOSURE-----------------------
int valclos=0;
int vale1=0;
int vale2=0;
int valr1=0;
int valr2=0;
int valr3=0;
float sat=0;
//VARIABILI COMMON REGION-----------------------
float scr=0;
float scr2=0;
//VARIABILI CONTINUITY-------------------------------
float rape=0;
float angle = 0;
//VARIABILI PROXIMITY------------------------------------
float p1=0;
float p2=0;
float p3=0;
float p4=0;
float p5=0;
float p6=0;
float p7=0;
//VARIABILI SIMILARITY------------------------------------
int sim=0;
float satsim=0;
//|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
void setup() {
  //fullScreen();
  size(1920, 1080);
  //Arduino---------------------
  printArray(Serial.list());
  arduino = new Serial(this, "COM3", 115200);
  //SONG----------
  file = new SoundFile(this, "sky.mp3");
  file.loop();
  //Menu PLAY-----------------------------------
  rectX = 602;
  rectY = 932;
  font = loadFont("FutT.vlw");
  textFont(font);
  ellipseMode(CENTER);
  rectMode(CORNER);
  }
//||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
void draw() {
  background(0);
  strokeWeight(3);
  //PULSANTI ----------------------------------------------------
  //Start
  pushMatrix();
  translate(2000-g0,0);
  fill(190);
  textSize(150);
    text("GESTALTOY",548,470);
    popMatrix();
     //P1-------------------------------------------
  if (rectOver1) {
    fill(255);
  } else {
    fill(20);
  }
  stroke(100);
  rect(rectX, rectY, rectSize, rectSize);
  //P2-------------------------------------------------
  if (rectOver2) {
    fill(255);
  } else {
    fill(20);
  }
  stroke(100);
  rect(rectX+133, rectY, rectSize, rectSize);
  //P3-----------------------------------------
   if (rectOver3) {
    fill(255);
  } else {
    fill(20);
  }
  stroke(100);
  rect(rectX+266, rectY, rectSize, rectSize);
  //P4------------------------------------------
   if (rectOver4) {
    fill(255);
  } else {
    fill(20);
  }
  stroke(100);
  rect(rectX+399, rectY, rectSize, rectSize);
  //P5---------------------------------------
   if (rectOver5) {
    fill(255);
  } else {
    fill(20);
  }
  stroke(100);
  rect(rectX+532, rectY, rectSize, rectSize);
  //P6-----------------------------------
   if (rectOver6) {
    fill(255);
  } else {
    fill(20);
  }
  stroke(100);
  rect(rectX+665, rectY, rectSize, rectSize);
    
//ARDUINO VARIABLE---------------------------------------------
      if (arduino.available()>0)
  {
    serialIn=arduino.read();
    println(serialIn);
  }
  // Text-----------------------------------------
  shp=map(serialIn,0,50,190,0);
    if (serialIn>10||serialIn<=0){ shp=0;};
    
      //Good Form---------------------------------------
    val=int(map(serialIn, 0, 50, 40, 20)); //mappa dell'imput
  x1=int(map(serialIn, 0, 50, 120, 0)); //mappa dell'imput
  sato=map(serialIn, 0, 50, 255, 0); //mappa dell'imput
    if (serialIn<=0)
  {     x1=0;
    val=20;
  };
  if (serialIn>10 || serialIn<=0) {
    sato=0;
  }
  if (x1>108 ) {
    x1=107;
  }
      //Closure---------------------------------------
      valclos=int(map(serialIn, 0, 50, 40, 20)); //mappa dell'imput
   vale1=int(map(serialIn, 0, 50, 350, 0)); //mappa dell'imput
   vale2=int(map(serialIn, 0, 50, 226, 0)); //mappa dell'imput
   valr1=int(map(serialIn, 0, 50, 226, 0)); //mappa dell'imput
   valr2=int(map(serialIn, 0, 50, 324, 0)); //mappa dell'imput
   valr3=int(map(serialIn, 0, 50, 452, 0));
  sat=map(serialIn, 0, 50, 0, 255); //mappa dell'imput
  sato=map(serialIn, 0, 50, 255, 0); //mappa dell'imput
  if (serialIn<=0)
  {
    valclos=20;    vale1=0;    valr1=0;    vale2=0;    valr2=0;
    valr3=0;    sat=255;   
  };
   if (serialIn>20||serialIn<=0){
   sato=0;};
   
    //Common Region---------------------------------------
   scr=map(serialIn, 0, 50, 20, 0); //mappa dell'imput
  scr2=map(serialIn, 0, 50, 255, 0); //mappa dell'imput
 
  if (serialIn<=0)
  {  scr=0;
  scr2=0;
      };
      
      //Continuity---------------------------------------
       rape=int(map(serialIn, 0, 50, 400, 0)); //mappa dell'imput
  if (serialIn<=0)
  {
    rape=0;
     };
  float d1 = 200+ (sin(angle) * rape/2) ;
  float d1y = 200+ (sin(angle) * -rape/2) ;
  float d2 = 313+ (sin(angle) * rape/2)+2;
float d2y = 313+ (sin(angle) * -rape/2)+2;
  float d3 = 426+ (sin(angle) * rape/2);
  float d3y = 426+ (sin(angle) * -rape/2);
  float d4 = 539+ (sin(angle) * rape/2);
    float d4y = 539+ (sin(angle) * -rape/2);
  float d5 = 652+ (sin(angle) * rape/2);
    float d5y = 652+ (sin(angle) * -rape/2);
  float d6 = 767+ (sin(angle) * rape/2);
    float d6y = 767+ (sin(angle) * -rape/2);
  float d7 = 878+ (sin(angle) * rape/2);
   float d7y = 878 +(sin(angle) * -rape/2);
   
 //Proximity-------------------------------------------------------------  
 p1=int(map(serialIn, 0, 50, 51, 0)); //mappa dell'imput
 p2=int(map(serialIn, 0, 50, 101, 0)); //mappa dell'imput
 p3=int(map(serialIn, 0, 50, 152, 0)); //mappa dell'imput
 p4=int(map(serialIn, 0, 50, 202, 0)); //mappa dell'imput
 p5=int(map(serialIn, 0, 50, 253, 0)); //mappa dell'imput
 p6=int(map(serialIn, 0, 50, 303, 0)); //mappa dell'imput
 p7=int(map(serialIn, 0, 50, 353, 0)); //mappa dell'imput
   if (serialIn<=0)
  {
    p1=0;
    p2=0;
    p3=0;
    p4=0;
    p5=0;
    p6=0;
    p7=0;
      };
 //Similarity-----------------------------------------------     
   sim=int(map(serialIn, 0, 50, 70, 20)); //mappa dell'imput
  satsim=map(serialIn, 0, 50, 0, 255); //mappa dell'imput
    if (serialIn<=0)
  {
    sim=20;
    satsim=255;
  };    
    
 //BOOLEANE|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 //P1---------------------
if (mouseX >= rectX && mouseX <= rectSize+rectX &&
      mouseY >= rectY && mouseY <= rectSize+rectY)
    {      
      GameStart=false;
      rectOver1 = true;
           rectOver2 = false;
           rectOver3 = false;
           rectOver4 = false;
           rectOver5 = false;
           rectOver6 = false;
  }
  else {
 rectOver1 = false;
  }
  //P2---------------------
  if ( mouseX >= rectX+133 && mouseX <= rectSize+rectX+133 &&
      mouseY >= rectY && mouseY <= rectSize+rectY ) {
           GameStart=false;
        rectOver1 = false;
           rectOver2 = true;
           rectOver4 = false;
           rectOver5 = false;
           rectOver6 = false;
  } else {
 rectOver2 = false;
  }
  //P3---------------------
  if ( mouseX >= rectX+266 && mouseX <= rectSize+rectX+266 &&
      mouseY >= rectY && mouseY <= rectSize+rectY ) {
        GameStart=false;
           rectOver1 = false;
           rectOver2 = false;
           rectOver3 = true;
           rectOver4 = false;
           rectOver5 = false;
           rectOver6 = false;
  } else {
 rectOver3 = false;
  }
   //P4---------------------
  if ( mouseX >= rectX+399 && mouseX <= rectSize+rectX+399 &&
      mouseY >= rectY && mouseY <= rectSize+rectY ) {
        GameStart=false;
           rectOver1 = false;
           rectOver2 = false;
           rectOver3 = false;
           rectOver4 = true;
           rectOver5 = false;
           rectOver6 = false;
  } else {
 rectOver4 = false;
  }
 
   //P5---------------------
  if ( mouseX >= rectX+532 && mouseX <= rectSize+rectX+532 &&
      mouseY >= rectY && mouseY <= rectSize+rectY ) {
        GameStart=false;
           rectOver1 = false;
           rectOver2 = false;
           rectOver3 = false;
           rectOver4 = false;
           rectOver5 = true;
           rectOver6 = false;
  } else {
 rectOver5 = false;
  }
 
   //P6---------------------
  if ( mouseX >= rectX+665 && mouseX <= rectSize+rectX+665 &&
      mouseY >= rectY && mouseY <= rectSize+rectY ) {
        GameStart=false;
           rectOver1 = false;
           rectOver2 = false;
           rectOver3 = false;
           rectOver4 = false;
           rectOver5 = false;
           rectOver6 = true;
  } else {
 rectOver6 = false;
  }
 
 
  //TESTO //--------------------------------------------------------
//Good Form--------------------------------
 pushMatrix();
  translate(2000-g1,0);
  fill(shp);
  textSize(50);
    text("GOOD FORM",518,170);
    popMatrix();
//Similarity--------------------------------
 pushMatrix();
  translate(2000-g6,0);
  fill(shp);
  textSize(50);
    text("SIMILARITY",1550,90);
    popMatrix();
//Porximity--------------------------------
 pushMatrix();
  translate(2000-g5,0);
  fill(shp);
  textSize(50);
    text("PROXIMITY",830,510);
    popMatrix();
//Closure--------------------------------GUARDA SOTTO!!!!
// pushMatrix();
 // translate(2000-g2,0);
 // fill(shp);
 // textSize(50);
 //   text("CLOSURE",500,400);
 //   popMatrix();
//Continuity--------------------------------
 pushMatrix();
  translate(2000-g4,0);
  fill(shp);
  textSize(50);
    text("CONTINUITY",1288,700);
    popMatrix();
//Common Region--------------------------------
 pushMatrix();
 translate(2000-g3,0);
 fill(shp);
 textSize(50);
 text("COMMON REGION",100,940);
 popMatrix();
 
  //GRUPPO GOOD FORM______________________________________________________________________________
  pushMatrix();
  translate(2000-g1,-50);
 fill(255);
 noStroke();
 //line
  ellipse(150+x1*7, 200, 20, 20);  ellipse(258+x1*6, 200, 20, 20);  ellipse(366+x1*5, 200, 20, 20);  ellipse(474+x1*4, 200, 20, 20);
  ellipse(582+x1*3, 200, 20, 20);  ellipse(690+x1*2, 200, 20, 20);  ellipse(798+x1, 200, 20, 20);  ellipse(906, 200, val, val);
  //line 2
  ellipse(150+x1*6, 313, 20, 20);  ellipse(258+x1*5, 313, 20, 20);  ellipse(366+x1*4, 313, 20, 20);  ellipse(474+x1*3, 313, 20, 20);
  ellipse(582+x1*2, 313, 20, 20);  ellipse(690+x1, 313, 20, 20);  ellipse(798, 313, val, val);  ellipse(906, 313, val, val);
  //line 3
  ellipse(150+x1*5, 426, 20, 20);  ellipse(258+x1*4, 426, 20, 20);  ellipse(366+x1*3, 426, 20, 20);  ellipse(474+x1*2, 426, 20, 20);
  ellipse(582+x1, 426, 20, 20);  ellipse(690, 426, val, val);  ellipse(798, 426, val, val);  ellipse(906, 426, val, val);
  //line 4
  ellipse(150+x1*4, 539, 20, 20);  ellipse(258+x1*3, 539, 20, 20);  ellipse(366+x1*2, 539, 20, 20);  ellipse(474+x1, 539, 20, 20);
  ellipse(582, 539, val, val);  ellipse(690, 539, val, val);  ellipse(798, 539, val, val);  ellipse(906, 539, val, val);
  //line 5
  ellipse(150+x1*5, 652, 20, 20);  ellipse(258+x1*4, 652, 20, 20);  ellipse(366+x1*3, 652, 20, 20);  ellipse(474+x1*2, 652, 20, 20);
  ellipse(582+x1, 652, 20, 20);  ellipse(690, 652, val, val);  ellipse(798, 652, val, val);  ellipse(906, 652, val, val);
  //line 6
  ellipse(150+x1*6, 767, 20, 20);  ellipse(258+x1*5, 767, 20, 20);  ellipse(366+x1*4, 767, 20, 20);  ellipse(474+x1*3, 767, 20, 20);
  ellipse(582+x1*2, 767, 20, 20);  ellipse(690+x1, 767, 20, 20);  ellipse(798, 767, val, val);  ellipse(906, 767, val, val);
  //line 7
  ellipse(150+x1*7, 878, 20, 20);  ellipse(258+x1*6, 878, 20, 20);  ellipse(366+x1*5, 878, 20, 20);  ellipse(474+x1*4, 878, 20, 20);
  ellipse(582+x1*3, 878, 20, 20);  ellipse(690+x1*2, 878, 20, 20);  ellipse(798+x1, 878, 20, 20);  ellipse(906, 878, val, val);
  //line
  ellipse(1004, 200, val, val);  ellipse(1112-x1, 200, 20, 20);  ellipse(1220-x1*2, 200, 20, 20);  ellipse(1328-x1*3, 200, 20, 20);
  ellipse(1436-x1*4, 200, 20, 20);  ellipse(1540-x1*5, 200, 20, 20);  ellipse(1652-x1*6, 200, 20, 20);  ellipse(1760-x1*7, 200, 20, 20);
  //line 2
  ellipse(1004, 313, val, val);  ellipse(1112, 313, val, val);  ellipse(1220-x1, 313, 20, 20);  ellipse(1328-x1*2, 313, 20, 20);
  ellipse(1436-x1*3, 313, 20, 20);  ellipse(1540-x1*4, 313, 20, 20);  ellipse(1652-x1*5, 313, 20, 20);  ellipse(1760-x1*6, 313, 20, 20);
  //line 3
  ellipse(1004, 426, val, val);  ellipse(1112, 426, val, val);  ellipse(1220, 426, val, val);  ellipse(1328-x1, 426, 20, 20);
  ellipse(1436-x1*2, 426, 20, 20);  ellipse(1540-x1*3, 426, 20, 20);  ellipse(1652-x1*4, 426, 20, 20);  ellipse(1760-x1*5, 426, 20, 20);
  //line 4
  ellipse(1004, 539, val, val);  ellipse(1112, 539, val, val);  ellipse(1220, 539, val, val);  ellipse(1328, 539, val, val);
  ellipse(1436-x1, 539, 20, 20);  ellipse(1540-x1*2, 539, 20, 20);   ellipse(1652-x1*3, 539, 20, 20);  ellipse(1760-x1*4, 539, 20, 20);
  //line 5
  ellipse(1004, 652, val, val);  ellipse(1112, 652, val, val);  ellipse(1220, 652, val, val);  ellipse(1328-x1, 652, 20, 20);
  ellipse(1436-x1*2, 652, 20, 20);  ellipse(1540-x1*3, 652, 20, 20);  ellipse(1652-x1*4, 652, 20, 20);  ellipse(1760-x1*5, 652, 20, 20);
  //line 6
  ellipse(1004, 767, val, val);  ellipse(1112, 767, val, val);  ellipse(1220-x1, 767, 20, 20);  ellipse(1328-x1*2, 767, 20, 20);
  ellipse(1436-x1*3, 767, 20, 20);  ellipse(1540-x1*4, 767, 20, 20);  ellipse(1652-x1*5, 767, 20, 20);  ellipse(1760-x1*6, 767, 20, 20);
  //line 7
  ellipse(1004, 878, val, val);  ellipse(1112-x1, 878, 20, 20);    ellipse(1220-x1*2, 878, 20, 20);  ellipse(1328-x1*3, 878, 20, 20);
  ellipse(1436-x1*4, 878, 20, 20);  ellipse(1540-x1*5, 878, 20, 20);  ellipse(1652-x1*6, 878, 20, 20);  ellipse(1760-x1*7, 878, 20, 20);
  popMatrix();
 
 //GRUPPO CLOSURE______________________________________________________________________________
  pushMatrix();
  translate(2000-g2,-50);
   noStroke();
 //line
  ellipse(150, 200, valclos, valclos);  ellipse(258, 200, valclos, valclos);  ellipse(366, 200, valclos, valclos);  ellipse(474, 200, valclos, valclos);
  ellipse(582, 200, valclos, valclos);  ellipse(690, 200, valclos, valclos);  ellipse(798, 200, valclos, valclos);  ellipse(906, 200, valclos, valclos);
  //line 2
  ellipse(150, 313, valclos, valclos);  ellipse(258, 313, valclos, valclos);  ellipse(366, 313, valclos, valclos);  ellipse(474, 313, valclos, valclos);
  ellipse(582, 313, valclos, valclos);  ellipse(690, 313, valclos, valclos);  ellipse(798, 313, valclos, valclos);  ellipse(906, 313, valclos, valclos);
  //line 3
  ellipse(150, 426, valclos, valclos);  ellipse(258, 426, valclos, valclos);  ellipse(366, 426, valclos, valclos);  ellipse(474, 426, valclos, valclos);
  ellipse(582, 426, valclos, valclos);  ellipse(690, 426, valclos, valclos);  ellipse(798, 426, valclos, valclos);  ellipse(906, 426, valclos, valclos);
  //line 4
  ellipse(150, 539, valclos, valclos);  ellipse(258, 539, valclos, valclos);  ellipse(366, 539, valclos, valclos);  ellipse(474, 539, valclos, valclos);
  ellipse(582, 539, valclos, valclos);  ellipse(690, 539, valclos, valclos);  ellipse(798, 539, valclos, valclos);  ellipse(906, 539, valclos, valclos);
  //line 5
  ellipse(150, 652, valclos, valclos);  ellipse(258, 652, valclos, valclos);  ellipse(366, 652, valclos, valclos);  ellipse(474, 652, valclos, valclos);
  ellipse(582, 652, valclos, valclos);  ellipse(690, 652, valclos, valclos);  ellipse(798, 652, valclos, valclos);  ellipse(906, 652, valclos, valclos);
  //line 6
  ellipse(150, 767, valclos, valclos);  ellipse(258, 767, valclos, valclos);  ellipse(366, 767, valclos, valclos);  ellipse(474, 767, valclos, valclos);
  ellipse(582, 767, valclos, valclos);  ellipse(690, 767, valclos, valclos);  ellipse(798, 767, valclos, valclos);  ellipse(906, 767, valclos, valclos);
  //line 7
  ellipse(150, 878, valclos, valclos);  ellipse(258, 878, valclos, valclos);  ellipse(366, 878, valclos, valclos);  ellipse(474, 878, valclos, valclos);
  ellipse(582, 878, valclos, valclos); ellipse(690, 878, valclos, valclos);  ellipse(798, 878, valclos, valclos);  ellipse(906, 878, valclos, valclos);
  //line
  ellipse(1004, 200, valclos, valclos);  ellipse(1112, 200, valclos, valclos);  ellipse(1220, 200, valclos, valclos);  ellipse(1328, 200, valclos, valclos);
  ellipse(1436, 200, valclos, valclos);  ellipse(1540, 200, valclos, valclos);  ellipse(1652, 200, valclos, valclos);  ellipse(1760, 200, valclos, valclos);
  //line 2
  ellipse(1004, 313, valclos, valclos);  ellipse(1112, 313, valclos, valclos);  ellipse(1220, 313, valclos, valclos);  ellipse(1328, 313, valclos, valclos);
  ellipse(1436, 313, valclos, valclos);  ellipse(1540, 313, valclos, valclos);  ellipse(1652, 313, valclos, valclos);  ellipse(1760, 313, valclos, valclos);
  //line 3
  ellipse(1004, 426, valclos, valclos);  ellipse(1112, 426, valclos, valclos);  ellipse(1220, 426, valclos, valclos);  ellipse(1328, 426, valclos, valclos);
  ellipse(1436, 426, valclos, valclos);  ellipse(1540, 426, valclos, valclos);  ellipse(1652, 426, valclos, valclos);  ellipse(1760, 426, valclos, valclos);
  //line 4
  ellipse(1004, 539, valclos, valclos);  ellipse(1112, 539, valclos, valclos);  ellipse(1220, 539, valclos, valclos);  ellipse(1328, 539, valclos, valclos);
  ellipse(1436, 539, valclos, valclos);  ellipse(1540, 539, valclos, valclos);  ellipse(1652, 539, valclos, valclos);  ellipse(1760, 539, valclos, valclos);
  //line 5
  ellipse(1004, 652, valclos, valclos);  ellipse(1112, 652, valclos, valclos);  ellipse(1220, 652, valclos, valclos);  ellipse(1328, 652, valclos, valclos);
  ellipse(1436, 652, valclos, valclos);  ellipse(1540, 652, valclos, valclos);  ellipse(1652, 652, valclos, valclos);  ellipse(1760, 652, valclos, valclos);
  //line 6
  ellipse(1004, 767, valclos, valclos);  ellipse(1112, 767, valclos, valclos);  ellipse(1220, 767, valclos, valclos);  ellipse(1328, 767, valclos, valclos);
  ellipse(1436, 767, valclos, valclos);  ellipse(1540, 767, valclos, valclos);  ellipse(1652, 767, valclos, valclos);  ellipse(1760, 767, valclos, valclos);
  //line 7
  ellipse(1004, 878, valclos, valclos);  ellipse(1112, 878, valclos, valclos);   ellipse(1220, 878, valclos, valclos);  ellipse(1328, 878, valclos, valclos);
  ellipse(1436, 878, valclos, valclos);  ellipse(1540, 878, valclos, valclos);  ellipse(1652, 878, valclos, valclos);  ellipse(1760, 878, valclos, valclos);
 //BLACK SHAPE
rectMode(CENTER);
 fill(0);
  noStroke();
 ellipse(528,369,vale1,vale1);
 ellipse(1652,652,vale2,vale2);
 rect(366,767,valr1,valr1);
 rect(690,767,valr1,valr1);
 rect(1284,539,valr2,valr3);
 
  popMatrix();
  rectMode(CORNER);
  //Closure--------------------------------
 pushMatrix();
  translate(2000-g2,0);
  fill(shp);
  textSize(50);
    text("CLOSURE",420,340);
    popMatrix();

//GRUPPO COMMON REGION______________________________________________________________________________
  pushMatrix();
  translate(2000-g3,-50);
 
  noStroke();
  fill(255);
   //line
  ellipse(150, 200, 20, 20);  ellipse(258, 200, 20, 20);  ellipse(366, 200, 20, 20);  ellipse(474, 200, 20, 20);
  ellipse(582, 200, 20, 20);  ellipse(690, 200, 20, 20);  ellipse(798, 200, 20, 20);  ellipse(906, 200, 20, 20);
  //line 2
  ellipse(150, 313, 20, 20);  ellipse(258, 313, 20, 20);  ellipse(366, 313, 20, 20);  ellipse(474, 313, 20, 20);
  ellipse(582, 313, 20, 20);  ellipse(690, 313, 20, 20);  ellipse(798, 313, 20, 20);  ellipse(906, 313, 20, 20);
  //line 3
  ellipse(150, 426, 20, 20);  ellipse(258, 426, 20, 20);  ellipse(366, 426, 20, 20);  ellipse(474, 426, 20, 20);
  ellipse(582, 426, 20, 20);  ellipse(690, 426, 20, 20);  ellipse(798, 426, 20, 20);  ellipse(906, 426, 20, 20);
  //line 4
  ellipse(150, 539, 20, 20);  ellipse(258, 539, 20, 20);  ellipse(366, 539, 20, 20);  ellipse(474, 539, 20, 20);
  ellipse(582, 539, 20, 20);  ellipse(690, 539, 20, 20);  ellipse(798, 539, 20, 20);  ellipse(906, 539, 20, 20);
  //line 5
  ellipse(150, 652, 20, 20);  ellipse(258, 652, 20, 20);  ellipse(366, 652, 20, 20);  ellipse(474, 652, 20, 20);
  ellipse(582, 652, 20, 20);  ellipse(690, 652, 20, 20);  ellipse(798, 652, 20, 20);  ellipse(906, 652, 20, 20);
  //line 6
  ellipse(150, 767, 20, 20);  ellipse(258, 767, 20, 20);  ellipse(366, 767, 20, 20);  ellipse(474, 767, 20, 20);
  ellipse(582, 767, 20, 20);  ellipse(690, 767, 20, 20);  ellipse(798, 767, 20, 20);  ellipse(906, 767, 20, 20);
  //line 7
  ellipse(150, 878, 20, 20);  ellipse(258, 878, 20, 20);  ellipse(366, 878, 20, 20);  ellipse(474, 878, 20, 20);
  ellipse(582, 878, 20, 20);  ellipse(690, 878, 20, 20);  ellipse(798, 878, 20, 20);  ellipse(906, 878, 20, 20);
//GRUPPO  CHANGE
 //line
  ellipse(1004, 200, 20, 20);  ellipse(1112, 200, 20, 20);  ellipse(1220, 200, 20, 20);  ellipse(1328, 200, 20, 20);
  ellipse(1436, 200, 20, 20);  ellipse(1540, 200, 20, 20);  ellipse(1652, 200, 20, 20);  ellipse(1760, 200, 20, 20);
  //line 2
  ellipse(1004, 313, 20, 20);  ellipse(1112, 313, 20, 20);  ellipse(1220, 313, 20, 20);  ellipse(1328, 313, 20, 20);
  ellipse(1436, 313, 20, 20);  ellipse(1540, 313, 20, 20);  ellipse(1652, 313, 20, 20);  ellipse(1760, 313, 20, 20);
  //line 3
  ellipse(1004, 426, 20, 20);  ellipse(1112, 426, 20, 20);  ellipse(1220, 426, 20, 20);  ellipse(1328, 426, 20, 20);
  ellipse(1436, 426, 20, 20);  ellipse(1540, 426, 20, 20);  ellipse(1652, 426, 20, 20);  ellipse(1760, 426, 20, 20);
  //line 4
  ellipse(1004, 539, 20, 20);  ellipse(1112, 539, 20, 20);  ellipse(1220, 539, 20, 20);  ellipse(1328, 539, 20, 20);
  ellipse(1436, 539, 20, 20);  ellipse(1540, 539, 20, 20);  ellipse(1652, 539, 20, 20);  ellipse(1760, 539, 20, 20);
  //line 5
  ellipse(1004, 652, 20, 20);  ellipse(1112, 652, 20, 20);  ellipse(1220, 652, 20, 20);  ellipse(1328, 652, 20, 20);
  ellipse(1436, 652, 20, 20);  ellipse(1540, 652, 20, 20);  ellipse(1652, 652, 20, 20);  ellipse(1760, 652, 20, 20);
  //line 6
  ellipse(1004, 767, 20, 20);  ellipse(1112, 767, 20, 20);  ellipse(1220, 767, 20, 20);  ellipse(1328, 767, 20, 20);
  ellipse(1436, 767, 20, 20);  ellipse(1540, 767, 20, 20);  ellipse(1652, 767, 20, 20);  ellipse(1760, 767, 20, 20);
  //line 7
  ellipse(1004, 878, 20, 20);  ellipse(1112, 878, 20, 20);  ellipse(1220, 878, 20, 20);  ellipse(1328, 878, 20, 20);
  ellipse(1436, 878, 20, 20);  ellipse(1540, 878, 20, 20);  ellipse(1652, 878, 20, 20);  ellipse(1760, 878, 20, 20);
    
 //BLACK SHAPE
stroke(scr2);
strokeWeight(scr);
noFill();
rectMode(CENTER);
rect(474,426,737,539); rect(474,426+395,737,196);
rect(1328+5,649-395,924,196); rect(1328+5,650,924,539);
popMatrix();
rectMode(CORNER);
//GRUPPO CONTINUITY______________________________________________________________________________
pushMatrix();
fill(255);
noStroke();
  translate(2000-g4,-50);
   angle += 0.02;
  //line
  ellipse(150, d1, 20, 20);  ellipse(258, d1y, 20, 20);  ellipse(366, d1, 20, 20);  ellipse(474, d1y, 20, 20);
  ellipse(582, d1, 20, 20);  ellipse(690, d1y, 20, 20);  ellipse(798, d1, 20, 20);  ellipse(906, d1y, 20, 20);
  //line 2
  ellipse(150, d2, 20, 20);  ellipse(258, d2y, 20, 20);  ellipse(366, d2, 20, 20);  ellipse(474, d2y, 20, 20);
  ellipse(582, d2, 20, 20);  ellipse(690, d2y, 20, 20);  ellipse(798, d2, 20, 20);  ellipse(906, d2y, 20, 20);
  //line 3
  ellipse(150, d3, 20, 20);  ellipse(258, d3y, 20, 20);  ellipse(366, d3, 20, 20);  ellipse(474, d3y, 20, 20);
  ellipse(582, d3, 20, 20);  ellipse(690, d3y, 20, 20);  ellipse(798, d3, 20, 20);  ellipse(906, d3y, 20, 20);
  //line 4
  ellipse(150, d4, 20, 20);  ellipse(258, d4y, 20, 20);  ellipse(366, d4, 20, 20);  ellipse(474, d4y, 20, 20);
  ellipse(582, d4, 20, 20);  ellipse(690, d4y, 20, 20);  ellipse(798, d4, 20, 20);  ellipse(906, d4y, 20, 20);
  //line 5
  ellipse(150, d5, 20, 20);  ellipse(258, d5y, 20, 20);  ellipse(366, d5, 20, 20);  ellipse(474, d5y, 20, 20);
  ellipse(582, d5, 20, 20);  ellipse(690, d5y, 20, 20);  ellipse(798, d5, 20, 20);  ellipse(906, d5y, 20, 20);
  //line 6
  ellipse(150, d6, 20, 20);  ellipse(258, d6y, 20, 20);  ellipse(366, d6, 20, 20);  ellipse(474, d6y, 20, 20);
  ellipse(582, d6, 20, 20);  ellipse(690, d6y, 20, 20);  ellipse(798, d6, 20, 20);  ellipse(906, d6y, 20, 20);
  //line 7
  ellipse(150, d7, 20, 20);  ellipse(258, d7y, 20, 20);  ellipse(366, d7, 20, 20);  ellipse(474, d7y, 20, 20);
  ellipse(582, d7, 20, 20);  ellipse(690, d7y, 20, 20);  ellipse(798, d7, 20, 20);  ellipse(906, d7y, 20, 20);
  //line
  ellipse(1004, d1, 20, 20);  ellipse(1112, d1y, 20, 20);  ellipse(1220, d1, 20, 20);  ellipse(1328, d1y, 20, 20);
  ellipse(1436, d1, 20, 20);  ellipse(1540, d1y, 20, 20);  ellipse(1652, d1, 20, 20);  ellipse(1760, d1y, 20, 20);
  //line 2
  ellipse(1004, d2, 20, 20);  ellipse(1112, d2y, 20, 20);  ellipse(1220, d2, 20, 20);  ellipse(1328, d2y, 20, 20);
  ellipse(1436, d2, 20, 20);  ellipse(1540, d2y, 20, 20);  ellipse(1652, d2, 20, 20);  ellipse(1760, d2y, 20, 20);
  //line 3
  ellipse(1004, d3, 20, 20);  ellipse(1112, d3y, 20, 20);  ellipse(1220, d3, 20, 20);  ellipse(1328, d3y, 20, 20);
  ellipse(1436, d3, 20, 20);  ellipse(1540, d3y, 20, 20);  ellipse(1652, d3, 20, 20);  ellipse(1760, d3y, 20, 20);
  //line 4
  ellipse(1004, d4, 20, 20);  ellipse(1112, d4y, 20, 20);  ellipse(1220, d4, 20, 20);  ellipse(1328, d4y, 20, 20);
  ellipse(1436, d4, 20, 20);  ellipse(1540, d4y, 20, 20);  ellipse(1652, d4, 20, 20);  ellipse(1760, d4y, 20, 20);
  //line 5
  ellipse(1004, d5, 20, 20);  ellipse(1112, d5y, 20, 20);  ellipse(1220, d5, 20, 20);  ellipse(1328, d5y, 20, 20);
  ellipse(1436, d5, 20, 20);  ellipse(1540, d5y, 20, 20);  ellipse(1652, d5, 20, 20);  ellipse(1760, d5y, 20, 20);
  //line 6
  ellipse(1004, d6, 20, 20);  ellipse(1112, d6y, 20, 20);  ellipse(1220, d6, 20, 20);  ellipse(1328, d6y, 20, 20);
  ellipse(1436, d6, 20, 20);  ellipse(1540, d6y, 20, 20);  ellipse(1652, d6, 20, 20);  ellipse(1760, d6y, 20, 20);
  //line 7
  ellipse(1004, d7, 20, 20);  ellipse(1112, d7y, 20, 20);    ellipse(1220, d7, 20, 20);  ellipse(1328, d7y, 20, 20);
  ellipse(1436, d7, 20, 20);  ellipse(1540, d7y, 20, 20);  ellipse(1652, d7, 20, 20);  ellipse(1760, d7y, 20, 20);
popMatrix();

// GRUPPO PROXIMITY----------------------------------------------------------------
pushMatrix();
translate(2000-g5,-50);
noStroke();
  ellipseMode(CENTER)  ;
  fill(255);
   //line
  ellipse(150, 200, 20, 20);  ellipse(258-p1, 200, 20, 20);  ellipse(366-p2, 200, 20, 20);  ellipse(474-p3, 200, 20, 20);
  ellipse(582-p4, 200, 20, 20);  ellipse(690-p5, 200, 20, 20);  ellipse(798-p6, 200, 20, 20);  ellipse(906-p7, 200, 20, 20);
  //line 2
  ellipse(150, 313, 20, 20);  ellipse(258-p1, 313, 20, 20);  ellipse(366-p2, 313, 20, 20);  ellipse(474-p3, 313, 20, 20);
  ellipse(582-p4, 313, 20, 20);  ellipse(690-p5, 313, 20, 20);  ellipse(798-p6, 313, 20, 20);  ellipse(906-p7, 313, 20, 20);
  //line 3
  ellipse(150, 426, 20, 20);  ellipse(258-p1, 426, 20, 20);  ellipse(366-p2, 426, 20, 20);  ellipse(474-p3, 426, 20, 20);
  ellipse(582-p4, 426, 20, 20);  ellipse(690-p5, 426, 20, 20);  ellipse(798-p6, 426, 20, 20);  ellipse(906-p7, 426, 20, 20);
  //line 4
  ellipse(150, 539, 20, 20);  ellipse(258-p1, 539, 20, 20);  ellipse(366-p2, 539, 20, 20);  ellipse(474-p3, 539, 20, 20);
  ellipse(582-p4, 539, 20, 20);  ellipse(690-p5, 539, 20, 20);  ellipse(798-p6, 539, 20, 20);  ellipse(906-p7, 539, 20, 20);
  //line 5
  ellipse(150, 652, 20, 20);  ellipse(258-p1, 652, 20, 20);  ellipse(366-p2, 652, 20, 20);  ellipse(474-p3, 652, 20, 20);
  ellipse(582-p4, 652, 20, 20);  ellipse(690-p5, 652, 20, 20);  ellipse(798-p6, 652, 20, 20);  ellipse(906-p7, 652, 20, 20);
  //line 6
  ellipse(150, 767, 20, 20);  ellipse(258-p1, 767, 20, 20);  ellipse(366-p2, 767, 20, 20);  ellipse(474-p3, 767, 20, 20);
  ellipse(582-p4, 767, 20, 20);  ellipse(690-p5, 767, 20, 20);  ellipse(798-p6, 767, 20, 20);  ellipse(906-p7, 767, 20, 20);
  //line 7
  ellipse(150, 878, 20, 20);  ellipse(258-p1, 878, 20, 20);  ellipse(366-p2, 878, 20, 20);  ellipse(474-p3, 878, 20, 20);
  ellipse(582-p4, 878, 20, 20);  ellipse(690-p5, 878, 20, 20);  ellipse(798-p6, 878, 20, 20);  ellipse(906-p7, 878, 20, 20);
  //line
  ellipse(1004+p7, 200, 20, 20);  ellipse(1112+p6, 200, 20, 20);  ellipse(1220+p5, 200, 20, 20);  ellipse(1328+p4, 200, 20, 20);
  ellipse(1436+p3, 200, 20, 20);  ellipse(1540+p2, 200, 20, 20);  ellipse(1652+p1, 200, 20, 20);  ellipse(1760, 200, 20, 20);
  //line 2
  ellipse(1004+p7, 313, 20, 20);  ellipse(1112+p6, 313, 20, 20);  ellipse(1220+p5, 313, 20, 20);  ellipse(1328+p4, 313, 20, 20);
  ellipse(1436+p3, 313, 20, 20);  ellipse(1540+p2, 313, 20, 20);  ellipse(1652+p1, 313, 20, 20); ellipse(1760, 313, 20, 20);
  //line 3
  ellipse(1004+p7, 426, 20, 20);  ellipse(1112+p6, 426, 20, 20);  ellipse(1220+p5, 426, 20, 20);  ellipse(1328+p4, 426, 20, 20);
  ellipse(1436+p3, 426, 20, 20);  ellipse(1540+p2, 426, 20, 20);  ellipse(1652+p1, 426, 20, 20);  ellipse(1760, 426, 20, 20);
  //line 4
  ellipse(1004+p7, 539, 20, 20);  ellipse(1112+p6, 539, 20, 20);  ellipse(1220+p5, 539, 20, 20);  ellipse(1328+p4, 539, 20, 20);
  ellipse(1436+p3, 539, 20, 20);  ellipse(1540+p2, 539, 20, 20);  ellipse(1652+p1, 539, 20, 20);  ellipse(1760, 539, 20, 20);
  //line 5
  ellipse(1004+p7, 652, 20, 20);  ellipse(1112+p6, 652, 20, 20);  ellipse(1220+p5, 652, 20, 20);  ellipse(1328+p4, 652, 20, 20);
  ellipse(1436+p3, 652, 20, 20);  ellipse(1540+p2, 652, 20, 20);  ellipse(1652+p1, 652, 20, 20);  ellipse(1760, 652, 20, 20);
  //line 6
  ellipse(1004+p7, 767, 20, 20);  ellipse(1112+p6, 767, 20, 20);  ellipse(1220+p5, 767, 20, 20);  ellipse(1328+p4, 767, 20, 20);
  ellipse(1436+p3, 767, 20, 20);  ellipse(1540+p2, 767, 20, 20);  ellipse(1652+p1, 767, 20, 20);  ellipse(1760, 767, 20, 20);
  //line 7
  ellipse(1004+p7, 878, 20, 20);  ellipse(1112+p6, 878, 20, 20);    ellipse(1220+p5, 878, 20, 20);  ellipse(1328+p4, 878, 20, 20);
  ellipse(1436+p3, 878, 20, 20);  ellipse(1540+p2, 878, 20, 20);  ellipse(1652+p1, 878, 20, 20);  ellipse(1760, 878, 20, 20);
  popMatrix();
 
 //GRUPPO SIMILARITY----------------------------------------------------------------
  pushMatrix();
  translate(2000-g6,-50);
    noStroke();
    strokeWeight(1);
  fill(255);
   //line
  ellipse(150, 200, sim, sim);  ellipse(258, 200, sim, sim);  ellipse(366, 200, sim, sim);  ellipse(474, 200, sim, sim);
  ellipse(582, 200, sim, sim);  ellipse(690, 200, sim, sim);  ellipse(798, 200, sim, sim);  ellipse(906, 200, sim, sim);
  //line 2
  ellipse(150, 313, sim, sim);  ellipse(258, 313, sim, sim);  ellipse(366, 313, sim, sim);  ellipse(474, 313, sim, sim);
  ellipse(582, 313, sim, sim);  ellipse(690, 313, sim, sim);  ellipse(798, 313, sim, sim);  ellipse(906, 313, sim, sim);
  //line 3
  ellipse(150, 426, sim, sim);  ellipse(258, 426, sim, sim);  ellipse(366, 426, sim, sim);  ellipse(474, 426, sim, sim);
  ellipse(582, 426, sim, sim);  ellipse(690, 426, sim, sim);  ellipse(798, 426, sim, sim);  ellipse(906, 426, sim, sim);
  //line 4
  ellipse(150, 539, sim, sim);  ellipse(258, 539, sim, sim);  ellipse(366, 539, sim, sim);  ellipse(474, 539, sim, sim);
  ellipse(582, 539, sim, sim);  ellipse(690, 539, sim, sim);  ellipse(798, 539, sim, sim);  ellipse(906, 539, sim, sim);
  //line 5
  ellipse(150, 652, sim, sim);  ellipse(258, 652, sim, sim);  ellipse(366, 652, sim, sim);  ellipse(474, 652, sim, sim);
  ellipse(582, 652, sim, sim);  ellipse(690, 652, sim, sim);  ellipse(798, 652, sim, sim);  ellipse(906, 652, sim, sim);
  //line 6
  ellipse(150, 767, sim, sim);  ellipse(258, 767, sim, sim);  ellipse(366, 767, sim, sim);  ellipse(474, 767, sim, sim);
  ellipse(582, 767, sim, sim);  ellipse(690, 767, sim, sim);  ellipse(798, 767, sim, sim);  ellipse(906, 767, sim, sim);
  //line 7
  ellipse(150, 878, sim, sim);  ellipse(258, 878, sim, sim);  ellipse(366, 878, sim, sim);  ellipse(474, 878, sim, sim);
  ellipse(582, 878, sim, sim);  ellipse(690, 878, sim, sim);  ellipse(798, 878, sim, sim);  ellipse(906, 878, sim, sim);
fill(satsim);
stroke(255);
  //line
  ellipse(1004, 200, sim, sim);  ellipse(1112, 200, sim, sim);  ellipse(1220, 200, sim, sim);  ellipse(1328, 200, sim, sim);
  ellipse(1436, 200, sim, sim);  ellipse(1540, 200, sim, sim);  ellipse(1652, 200, sim, sim);  ellipse(1760, 200, sim, sim);
  //line 2
  ellipse(1004, 313, sim, sim);  ellipse(1112, 313, sim, sim);  ellipse(1220, 313, sim, sim);  ellipse(1328, 313, sim, sim);
  ellipse(1436, 313, sim, sim);  ellipse(1540, 313, sim, sim);  ellipse(1652, 313, sim, sim);  ellipse(1760, 313, sim, sim);
  //line 3
  ellipse(1004, 426, sim, sim);  ellipse(1112, 426, sim, sim);  ellipse(1220, 426, sim, sim);  ellipse(1328, 426, sim, sim);
  ellipse(1436, 426, sim, sim);  ellipse(1540, 426, sim, sim);  ellipse(1652, 426, sim, sim);  ellipse(1760, 426, sim, sim);
  //line 4
  ellipse(1004, 539, sim, sim);  ellipse(1112, 539, sim, sim);  ellipse(1220, 539, sim, sim);  ellipse(1328, 539, sim, sim);
  ellipse(1436, 539, sim, sim);  ellipse(1540, 539, sim, sim);  ellipse(1652, 539, sim, sim);  ellipse(1760, 539, sim, sim);
  //line 5
  ellipse(1004, 652, sim, sim);  ellipse(1112, 652, sim, sim);  ellipse(1220, 652, sim, sim);  ellipse(1328, 652, sim, sim);
  ellipse(1436, 652, sim, sim);  ellipse(1540, 652, sim, sim);  ellipse(1652, 652, sim, sim);  ellipse(1760, 652, sim, sim);
  //line 6
  ellipse(1004, 767, sim, sim);  ellipse(1112, 767, sim, sim);  ellipse(1220, 767, sim, sim);  ellipse(1328, 767, sim, sim);
  ellipse(1436, 767, sim, sim);  ellipse(1540, 767, sim, sim);  ellipse(1652, 767, sim, sim);  ellipse(1760, 767, sim, sim);
  //line 7
  ellipse(1004, 878, sim, sim);  ellipse(1112, 878, sim, sim);    ellipse(1220, 878, sim, sim);  ellipse(1328, 878, sim, sim);
  ellipse(1436, 878, sim, sim);  ellipse(1540, 878, sim, sim);  ellipse(1652, 878, sim, sim);  ellipse(1760, 878, sim, sim);
  popMatrix();
}



//||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
void mousePressed() {
  //TASTO 1---------------------
  if (rectOver1) {
    g0=0;
    g1 = 2000;
    g2= 0;
    g3= 0;
    g4= 0;
    g5= 0;
    g6= 0;
     }
  //TASTO 2----------------------
  if (rectOver2) {
     g0=0;
    g1 = 0;
    g2= 2000;
    g3= 0;
    g4= 0;
    g5= 0;
    g6= 0;
     }
  //TASTO 3------------------
  if (rectOver3) {
     g0=0;
    g1 = 0;
    g2= 0;
    g3= 2000;
    g4= 0;
    g5= 0;
    g6= 0;
     }
      //TASTO 4---------------------
  if (rectOver4) {
     g0=0;
    g1 = 0;
    g2= 0;
    g3= 0;
    g4= 2000;
    g5= 0;
    g6= 0;
     }
      //TASTO 5----------------------------
  if (rectOver5) {
     g0=0;
    g1 = 0;
    g2= 0;
    g3= 0;
    g4= 0;
    g5= 2000;
    g6= 0;
     }
      //TASTO 6----------------------------
  if (rectOver6) {
     g0=0;
    g1 = 0;
    g2= 0;
    g3= 0;
    g4= 0;
    g5= 0;
    g6= 2000;
     }
}
ARDUINO CODE
#include <NewPing.h>
#define TRIGGER_PIN  12  // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN     11  // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 50 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.
void setup() {
  Serial.begin(115200); // leggere il monitor seriale a 115200 baud (velocita di connessione grafica
}
void loop() {
  delay(100);                     // deley 50 ms
  //Serial.print("Ping: ");
  Serial.write(sonar.ping_cm()); // ricevere i ping dalla seriale
  //Serial.println("cm");

}
GESTALTOY
Published:

Owner

GESTALTOY

Published: