// Processing Code: /*------------------------------------------------------------------------- * Simple Reading of asynchronous serial data, with screen font * Reads data from the serial port, changes the properties of a rectangle * * Designed to work with Arduino "a16_Serial_Analog_ThrowASCII" * * Serial Event example * (adapted from code by Tom Igoe) ---------------------------------------------------------------------------*/ import processing.serial.*; String serialString = ""; // a string to hold incoming data Serial myPort; // Create object from Serial class PFont f; // font object (for graphical text) int val = 100; // Data received from the serial port String Data = "Start"; // String variable for drawing serial data void setup() { size(400, 200); background(255); // Set background to white println(Serial.list()); // Print list of available serial ports // Usually, the first port in the serial list on a mac // is always the FTDI adaptor, so I open Serial.list()[0]. // On Windows machines, this generally opens COM1. // Open whatever port is the one you're using. String portName = Serial.list()[2]; // Mac version myPort = new Serial(this, portName, 9600); //----------- Create the font ----------- // printArray(PFont.list()); f = createFont("Verdana", 24); textFont(f); textAlign(CENTER); fill(90, 100); // Set the gray value and alpha of the letters text(Data, 190, 160); // draws string variable at x, y } void draw() { background(255); fill(val); rect(50, 40, val + 50, 100); fill(200, 50, 50); Data = str(val); // cast serial data to a String, store in "Data" text(Data, 200, 170); // draws string variable (from serial int) 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 line feed if (serialString != null) { serialString = trim(serialString); val = int(serialString); // println(val); } // end if } |