Problem with accelerometer

import processing.serial.*;

Serial c;

void setup()
{
  size(800, 600, OPENGL);
  c = new Serial(this, "/dev/cu.usbserial-DN02SMXZ", 115200); // change the COM port
}

void draw()
{
  float x, y, z;

  if (c.available() > 0) {                   // check if any data available
    String a = c.readStringUntil('\n');      // get data which terminates with line feed
    if (a != null) {                         // make sure there is data and not an empty string
      println(a);                            // print string to console
      String[] b = split(a, " ");            // split data in string into individual elements
      if (b.length == 3) {                   // check if there are 3 elements, x,y,z
        background(0);                           // clear window and set background to black
        lights();                                // set default 3D lighting
        x = float(b[0]);                     // convert to floating point
        y = float(b[1]);
        z = float(trim(b[2]));               // use trim function to delete line feed from value
        fill(200);                           // set color of rectangles
        rect(50, 300, 100, x * 100);         // draw rectangle to show magnitude of each axis
        rect(150, 300, 100, y * 100);
        rect(250, 300, 100, z * 100);
        text("X = " + x, 50, 200);           // display values
        text("Y = " + y, 150, 200);
        text("Z = " + z, 250, 200);
        float angle2 = atan2(z, x);          // calculate angle between X and Z
        float angle1 = atan2(z, y);          // calculate angle between Y and Z
        pushMatrix();                        // work in local coordinates
        translate(700, 300);                 // translate cube to coordinates
        rotateX(angle1);                     // rotate about X axis
        rotateY(angle2);                     // rotate about Y axis
        fill(200, 0, 200);                   // make cube purple
        box(100, 100, 100);                  // render cube
        popMatrix();                         // get out of local coordinates
      }
    }
  }
}

Hey,

It’s an error with OPENGL :

PS : format your code using Ctrl+T in the Processing IDE then use the </> button in the message editor to insert some code.

1 Like