| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- import processing.serial.*;
- Serial serial;
- String stringGyroX, stringGyroY;
- String stringAccX, stringAccY;
- String stringCompX, stringCompY;
- String stringKalmanX, stringKalmanY;
- final int width = 800;
- final int height = 600;
- float[] gyroX = new float[width];
- float[] gyroY = new float[width];
- float[] accX = new float[width];
- float[] accY = new float[width];
- float[] compX = new float[width];
- float[] compY = new float[width];
- float[] kalmanX = new float[width];
- float[] kalmanY = new float[width];
- boolean drawValues = false;
- void setup() {
- size(width, height);
- println(Serial.list()); // Use this to print connected serial devices
- serial = new Serial(this, Serial.list()[0], 115200); // Set this to your serial port obtained using the line above
- serial.bufferUntil('\n'); // Buffer until line feed
- for (int i = 0; i < width; i++) { // center all variables
- gyroX[i] = height/2;
- gyroY[i] = height/2;
- accX[i] = height/2;
- accY[i] = height/2;
- compX[i] = height/2;
- compY[i] = height/2;
- kalmanX[i] = height/2;
- kalmanY[i] = height/2;
- }
- drawGraph(); // Draw graph at startup
- }
- void draw() {
- /* Draw Graph */
- if (drawValues) {
- drawValues = false;
- drawGraph();
- }
- }
- void drawGraph() {
- background(255); // White
- for (int i = 0; i < width; i++) {
- stroke(200); // Grey
- line(i*10, 0, i*10, height);
- line(0, i*10, width, i*10);
- }
- stroke(0); // Black
- for (int i = 1; i <= 3; i++)
- line(0, height/4*i, width, height/4*i); // Draw line, indicating -90 deg, 0 deg and 90 deg
- convert();
- drawAxisX();
- drawAxisY();
- }
- void serialEvent (Serial serial) {
- // Get the ASCII strings:
- stringAccX = serial.readStringUntil('\t');
- stringGyroX = serial.readStringUntil('\t');
- stringCompX = serial.readStringUntil('\t');
- stringKalmanX = serial.readStringUntil('\t');
- serial.readStringUntil('\t'); // Ignore extra tab
- stringAccY = serial.readStringUntil('\t');
- stringGyroY = serial.readStringUntil('\t');
- stringCompY = serial.readStringUntil('\t');
- stringKalmanY = serial.readStringUntil('\t');
- serial.clear(); // Clear buffer
- drawValues = true; // Draw the graph
- //printAxis(); // Used for debugging
- }
- void printAxis() {
- print(stringGyroX);
- print(stringAccX);
- print(stringCompX);
- print(stringKalmanX);
- print('\t');
- print(stringGyroY);
- print(stringAccY);
- print(stringCompY);
- print(stringKalmanY);
- println();
- }
|