topical media & game development

talk show tell print

graphic-processing-site-examples-Libraries-Serial-SimpleWrite-SimpleWrite.pde / pde



  
Simple Write. Check if the mouse is over a rectangle and writes the status to the serial port. This example works with the Wiring / Arduino program that follows below.

  
  
  import processing.serial.*;
  
  Serial myPort;  // Create object from Serial class
  int val;        // Data received from the serial port
  
  void setup() 
  {
    size(200, 200);
    // I know that the first port in the serial list on my mac
    // is always my  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()[0];
    myPort = new Serial(this, portName, 9600);
  }
  
  void draw() {
    background(255);
    if (mouseOverRect() == true) {  // If mouse is over square,
      fill(204);                    // change color and
      myPort.write('H');              // send an H to indicate mouse is over square
    } 
    else {                        // If mouse is not over square,
      fill(0);                      // change color and
      myPort.write('L');              // send an L otherwise
    }
    rect(50, 50, 100, 100);         // Draw a square
  }
  
  boolean mouseOverRect() { // Test if mouse is over square
    return ((mouseX >= 50) && (mouseX <= 150) && (mouseY >= 50) && (mouseY <= 150));
  }
  
  /*
    // Wiring/Arduino code:
   // Read data from the serial and turn ON or OFF a light depending on the value
   
   char val; // Data received from the serial port
   int ledPin = 4; // Set the pin to digital I/O 4
   
   void setup() {
   pinMode(ledPin, OUTPUT); // Set pin as OUTPUT
   Serial.begin(9600); // Start serial communication at 9600 bps
   }
   
   void loop() {
   if (Serial.available()) { // If data is available to read,
   val = Serial.read(); // read it and store it in val
   }
   if (val == 'H') { // If H was received
   digitalWrite(ledPin, HIGH); // turn the LED on
   } else {
   digitalWrite(ledPin, LOW); // Otherwise turn it OFF
   }
   delay(100); // Wait 100 milliseconds for next reading
   }
   
   */
  


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.