import processing.serial.*; int puncture; // data from serial port Serial port; // The serial port object int[] serialz = new int[2]; //a new array with 2 places, for serial int serialCount = 0; int var; //variable used to choose the image PImage[] images = new PImage[45]; //create image array with 45 images int randy; // the random number variable boolean entered = false; //intializes the needle insertion state as 'false' void setup() { size(1000,669); // images[0] = loadImage("initial.jpg"); //select 1st image images[1] = loadImage("liver.jpg"); //select 2nd image images[2] = loadImage("liver2.jpg"); //select 3rd image images[3] = loadImage("liver3.jpg"); images[4] = loadImage("gallblad.jpg"); images[5] = loadImage("gall2.jpg"); images[6] = loadImage("gall3.jpg"); images[7] = loadImage("gall4.jpg"); images[8] = loadImage("heart.jpg"); images[9] = loadImage("heart2.jpg"); images[10] = loadImage("heart3.jpg"); images[11] = loadImage("heart4.jpg"); images[12] = loadImage("smallint.jpg"); images[13] = loadImage("sint2.jpg"); images[14] = loadImage("sint3.jpg"); images[15] = loadImage("sint4.jpg"); images[16] = loadImage("pericard.jpg"); images[17] = loadImage("peri2.jpg"); images[18] = loadImage("peri3.jpg"); images[19] = loadImage("sanjiao.jpg"); images[20] = loadImage("sanj2.jpg"); images[21] = loadImage("sanj3.jpg"); images[22] = loadImage("spleen.jpg"); images[23] = loadImage("spleen2.jpg"); images[24] = loadImage("spleen3.jpg"); images[25] = loadImage("spleen4.jpg"); images[26] = loadImage("spleen5.jpg"); images[27] = loadImage("stomach.jpg"); images[28] = loadImage("stomach2.jpg"); images[29] = loadImage("lung.jpg"); images[30] = loadImage("lung2.jpg"); images[31] = loadImage("lung3.jpg"); images[32] = loadImage("largeint.jpg"); images[33] = loadImage("lint2.jpg"); images[34] = loadImage("lint3.jpg"); images[35] = loadImage("lint4.jpg"); images[36] = loadImage("lint5.jpg"); images[37] = loadImage("kidney.jpg"); images[38] = loadImage("kidney2.jpg"); images[39] = loadImage("kidney3.jpg"); images[40] = loadImage("kidney4.jpg"); images[41] = loadImage("bladder.jpg"); // Using the first available port port = new Serial(this, Serial.list()[0], 9600); } void serialEvent(Serial port) { puncture = port.read(); // make the puncture variable read the serial serialz[serialCount] = puncture; //the array that holds the last two bits of serial info serialCount++; if (serialCount>1){ // put the array back to the first point serialCount = 0; } // println(puncture); } void draw() { if ((entered == false) && (serialz[1] > 2 )){ entered = true; randy = int(random(2)); //if there's a needle in, get a random number } else if ((entered == true) && (serialz[0] > 2) && (serialz[1] > 2 )){ randy = randy; } else if ((entered == true) && (serialz[0] == 1) && (serialz[1] == 1 )){ entered = false; //if there isn't, then don't } println(puncture); if (puncture == 10){ //if the needle is in spot 1 then var = int(1 + randy); // randomly choose one of two pictures (and make sure the random number is an integer) } else if (puncture == 20){ var = int(4 + randy); } else if (puncture == 30) { var = int(8 + randy); } else if (puncture == 40) { var = int(12 + randy); } else if (puncture == 50) { var = int(16 + randy); } else if (puncture == 60) { var = int(19 + randy); } else if (puncture == 70) { var = int(22 + randy); } else if (puncture == 80) { var = int(27); } else if (puncture == 90) { var = int(29 + randy); } else if (puncture == 100) { var = int(32 + randy); } else if (puncture == 110) { var = int(37 +randy); } else if (puncture == 120) { var = 12; } else if ((serialz[0] == 1) && (serialz[1] == 1 )) { var = 0; } image (images[var], 0, 0); // display the random image }