import sms.*; int[] vals = new int[2]; // RAW VALUES FROM THE SENSOR int[] maximum = new int[2]; // MAXIUM VALUE SENSED int[] minimum = new int[2]; // MINIMUM VALUE SENSED int[] range = new int[2]; // TOTAL RANGE SENSED, THERE ARE 3 VALUES FOR X,Y,Z AXES float[] attitude = new float[2]; // CURRENT VALUE AS AN ALTITUDE OF WINDOW HEIGHT float[] position = new float[2]; // CURRENT VALUE AS AN ATTITUDE OF WINDOW HEIGHT float rectSize; // RECTANGLE SIZE int numImages = 13; int MaxRangeX = 150; int MaxRangeY = 150; int MinRangeX = -150; int MinRangeY = -150; PImage currentImage; PImage[] XimagesRight = new PImage[13]; // IMAGES FOR THE X AXIS TO THE RIGHT PImage[] XimagesLeft = new PImage[13]; // IMAGES FOR THE X AXIS TO THE LEFT PImage[] YimagesBack = new PImage[13]; // IMAGES FOR THE Y AXIS TO THE FRONT PImage[] YimagesFront = new PImage[13]; // IMAGES FOR THE Y AXIS TO THE BACK PImage[] currentXimageRight = new PImage[1]; // CURRENT IMAGES OF THE X-AXIS TO THE RIGHT PImage[] currentXimageLeft = new PImage[1]; // CURRENT IMAGES OF THE X-AXIS TO THE LEFT PImage[] currentYimageFront = new PImage[1]; // CURRENT IMAGES OF THE Y-AXIS TO THE FRONT PImage[] currentYimageBack = new PImage[1]; // CURRENT IMAGES OF THE Y-AXIS TO THE BACK //******************************************** SETUP ******************************************** void setup () { size(200, 500); // DRAW THE WINDOW rectSize = width/4; // SET THE SIZE OF THE RECTANGLE background(0); // SET THE BACKGROUND COLOR for (int i = 0; i < 2; i++) { // SET THE MAX AND MIN VALUES maximum[i] = 500; minimum[i] = -500; range[i] = maximum[i] - minimum[i]; // CALCULATE THE TOTAL CURRENT RANGE } //****************************************** LOAD ALL X AXIS IMAGES ****************************** XimagesRight[0] = loadImage("image1.jpg"); XimagesRight[1] = loadImage("image2.jpg"); XimagesRight[2] = loadImage("image3.jpg"); XimagesRight[3] = loadImage("image4.jpg"); XimagesRight[4] = loadImage("image5.jpg"); XimagesRight[5] = loadImage("image6.jpg"); XimagesRight[6] = loadImage("image7.jpg"); XimagesRight[7] = loadImage("image8.jpg"); XimagesRight[8] = loadImage("image9.jpg"); XimagesRight[9] = loadImage("image10.jpg"); XimagesRight[10] = loadImage("image11.jpg"); XimagesRight[11] = loadImage("image12.jpg"); XimagesRight[12] = loadImage("image13.jpg"); XimagesLeft[0] = loadImage("image14.jpg"); XimagesLeft[1] = loadImage("image15.jpg"); XimagesLeft[2] = loadImage("image16.jpg"); XimagesLeft[3] = loadImage("image17.jpg"); XimagesLeft[4] = loadImage("image18.jpg"); XimagesLeft[5] = loadImage("image19.jpg"); XimagesLeft[6] = loadImage("image20.jpg"); XimagesLeft[7] = loadImage("image21.jpg"); XimagesLeft[8] = loadImage("image22.jpg"); XimagesLeft[9] = loadImage("image23.jpg"); XimagesLeft[10] = loadImage("image24.jpg"); XimagesLeft[11] = loadImage("image25.jpg"); XimagesLeft[12] = loadImage("image26.jpg"); //****************************************** LOAD ALL Y AXIS IMAGES ****************************** YimagesBack[0] = loadImage("image27.jpg"); YimagesBack[1] = loadImage("image28.jpg"); YimagesBack[2] = loadImage("image29.jpg"); YimagesBack[3] = loadImage("image30.jpg"); YimagesBack[4] = loadImage("image31.jpg"); YimagesBack[5] = loadImage("image32.jpg"); YimagesBack[6] = loadImage("image33.jpg"); YimagesBack[7] = loadImage("image34.jpg"); YimagesBack[8] = loadImage("image35.jpg"); YimagesBack[9] = loadImage("image36.jpg"); YimagesBack[10] = loadImage("image37.jpg"); YimagesBack[11] = loadImage("image38.jpg"); YimagesBack[12] = loadImage("image39.jpg"); YimagesFront[0] = loadImage("image40.jpg"); YimagesFront[1] = loadImage("image41.jpg"); YimagesFront[2] = loadImage("image42.jpg"); YimagesFront[3] = loadImage("image43.jpg"); YimagesFront[4] = loadImage("image44.jpg"); YimagesFront[5] = loadImage("image45.jpg"); YimagesFront[6] = loadImage("image46.jpg"); YimagesFront[7] = loadImage("image47.jpg"); YimagesFront[8] = loadImage("image48.jpg"); YimagesFront[9] = loadImage("image49.jpg"); YimagesFront[10] = loadImage("image50.jpg"); YimagesFront[11] = loadImage("image51.jpg"); YimagesFront[12] = loadImage("image52.jpg"); } //********************************************* DRAW ******************************************** void draw () { background(0); vals = Unimotion.getSMSArray(); // GET THE VALUES println(vals[0] + " " + vals[1]); checkLimits(); // CHECK TO SEE IF THERE ARE NEW PEAK VALUES /* setXImagesRight(); setXImagesLeft();*/ setYImagesBack(); setYImagesFront(); //**************************** DISPLAY IMAGES ACCORDING TO THE X Y & Z AXES **************************** image(currentImage,0,0,width,height); } //************************************ DISPLAY IMAGES ON THE X-AXIS ****************************** void setXImagesLeft(){ if(vals[0] == 0){ vals[0] = 2; } if(vals[0]>0 && vals[0]0 && vals[0]0 && vals[0]0 && vals[0]0 && vals[0]0 && vals[0]0 && vals[0]0 && vals[0]0 && vals[0]0 && vals[0]0 && vals[0]0 && vals[0]0){ currentImage = XimagesLeft[12]; } } void setXImagesRight(){ if(vals[0] == 0){ vals[0] = -2; } if(vals[0]< 0 && vals[0]>MinRangeX/numImages * 1){ print("..1.."); currentImage = XimagesRight[0]; } else if(vals[0]< 0 && vals[0]>MinRangeX/numImages * 2){ print("..2.."); currentImage = XimagesRight[1]; } else if(vals[0]< 0 && vals[0]>MinRangeX/numImages * 3){ print("..3.."); currentImage = XimagesRight[2]; } else if(vals[0]< 0 && vals[0]>MinRangeX/numImages * 4){ print("..4.."); currentImage = XimagesRight[3]; } else if(vals[0]< 0 && vals[0]>MinRangeX/numImages * 5){ print("..5.."); currentImage = XimagesRight[4]; } else if(vals[0]< 0 && vals[0]>MinRangeX/numImages * 6){ currentImage = XimagesRight[5]; } else if(vals[0]< 0 && vals[0]>MinRangeX/numImages * 7){ currentImage = XimagesRight[6]; } else if(vals[0]< 0 && vals[0]>MinRangeX/numImages * 8){ currentImage = XimagesRight[7]; } else if(vals[0]< 0 && vals[0]>MinRangeX/numImages * 9){ currentImage = XimagesRight[8]; } else if(vals[0]< 0 && vals[0]>MinRangeX/numImages * 10){ currentImage = XimagesRight[9]; } else if(vals[0]< 0 && vals[0]>MinRangeX/numImages * 11){ currentImage = XimagesRight[10]; } else if(vals[0]< 0 && vals[0]>MinRangeX/numImages * 12){ currentImage = XimagesRight[11]; } else { currentImage = XimagesRight[12]; } } void setYImagesFront(){ if(vals[1] == 0){ vals[1] = 2; } if(vals[1]> 0 && vals[1] 0 && vals[1] 0 && vals[1] 0 && vals[1] 0 && vals[1] 0 && vals[1] 0 && vals[1] 0 && vals[1] 0 && vals[1] 0 && vals[1] 0 && vals[1] 0 && vals[1]0){ currentImage = YimagesFront[12]; } } void setYImagesBack(){ if(vals[1] == 0){ vals[1] = -2; } if(vals[1]< 0 && vals[1]>MinRangeY/numImages * 1){ currentImage = YimagesBack[0]; } else if(vals[1]< 0 && vals[1]>MinRangeY/numImages * 2){ currentImage = YimagesBack[1]; } else if(vals[1]< 0 && vals[1]>MinRangeY/numImages * 3){ currentImage = YimagesBack[2]; } else if(vals[1]< 0 && vals[1]>MinRangeY/numImages * 4){ currentImage = YimagesBack[3]; } else if(vals[1]< 0 && vals[1]>MinRangeY/numImages * 5){ currentImage = YimagesBack[4]; } else if(vals[1]< 0 && vals[1]>MinRangeY/numImages * 6){ currentImage = YimagesBack[5]; } else if(vals[1]< 0 && vals[1]>MinRangeY/numImages * 7){ currentImage = YimagesBack[6]; } else if(vals[1]< 0 && vals[1]>MinRangeY/numImages * 8){ currentImage = YimagesBack[7]; } else if(vals[1]< 0 && vals[1]>MinRangeY/numImages * 9){ currentImage = YimagesBack[8]; } else if(vals[1]< 0 && vals[1]>MinRangeY/numImages * 10){ currentImage = YimagesBack[9]; } else if(vals[1]< 0 && vals[1]>MinRangeY/numImages * 11){ currentImage = YimagesBack[10]; } else if(vals[1]< 0 && vals[1]>MinRangeY/numImages * 12){ currentImage = YimagesBack[11]; } else { currentImage = YimagesBack[12]; } } // **************************************** CHECK LIMITS **************************************** void checkLimits() { for (int i = 0; i < 2; i++) { // CALCULATE THE CURRENT ALTITUDE AS A PERCENTAGE OF 2*PI // BASED ON THE CURRENT RANGE attitude[i] = PI * float(vals[i] - minimum[i]) /float(range[i]); } // CALCULATE THE CURRENT POSITION AS A PERCENTAGE position[0] = width * float(vals[0] - minimum[0]) /float(range[0]); // OF THE WINDOW HEIGHT BASED ON THE CURRENT IMAGE position[1] = height * float(vals[1] - minimum[1]) /float(range[1]) + minimum[1]; }