/* Processing code: * * Text display on screen of data sent to the serial port. * (Font created and integers translated to ASCII for display) *--------------------------------------------------------------*/ import processing.serial.*; Serial myPort; PFont f; // font object (for graphical text) int serialGet; // Integer variable for storing serial data String serialString; // String variable for drawing alphanumerics int intVal; // variable for string cast as integer void setup() { size(350, 200); background(200, 210, 0); // color (r, g, b) println(Serial.list()); // Diagnostic: gives list of ports myPort = new Serial(this, Serial.list()[1], 9600); smooth(); //----- Create graphical font ------- //printArray(PFont.list()); f = createFont("Verdana", 42); textFont(f); textAlign(CENTER); fill(90, 100); // Set the gray value and alpha of graphics } //--Here the draw loop uses serialGet variable fetched by serialEvent() void draw() { background(200, 210, 0); // clear the screen rect(50, 50, intVal, 50); // draw rectangle: upper Lt x, y, Lower Rt x, y text(str(intVal), 170, 140); // draw text (serialString) on the screen at x, y } //---- The SerialEvent function runs continuously in the background and //---- stores new values whenever new data comes in on the serial port (USB) void serialEvent(Serial myPort) { serialString = myPort.readStringUntil(10); // Read until end of line character if (serialString != null) { serialString = trim(serialString); intVal = int(serialString); // cast ASCII values as a number println(serialString); } // end if } |