Processing

From air
Jump to navigation Jump to search

Processing est un environnement de développement d'animation en Java simple à mettre en oeuvre. Processing est très populaire en Art génératif et interactif ou pour de la visualisation interactive de données.

La version 2.0 produit

  • des applications standalones (incluant des screensavers),
  • des apps Android (requiert le SDK Android)
  • et des applications Web en JavaScript (requiert WebGL).

Processing.JS est l'adaptation en Javascript de Processing.

PyProcessing est un portage de l'API Processing pour Python.

Processing :: Example :: Sphere
Processing :: Example :: Bouncing Bubbles
Processing :: Example :: Menger Sponge
Processing :: Example :: Cubes in Cube



API

De nombreuses bibliotheques ont été adaptés pour Processing : OpenCV, OpenNI, ...

Serial

La communication entre un programme Processing et une carte Arduino s'effectue par l'intermédiaire la liaison série au-dessus de l'USB et s'effectue simplement au travers de l'utilisation de function série (voir les programmes Processing dans File/Examples/Libraries/Serial).

Ci-dessous le programme SerialDuplex qui permet de tester l'envoi et la reception simple de caractère. A complete par un programme correspondant sur l'Arduino

// Programme SerialDuplex 
import processing.serial.*;

Serial myPort;      // The serial port
int whichKey = -1;  // Variable to hold keystoke values
int inByte = -1;    // Incoming serial data

void setup() {
  size(400, 300);
  // create a font with the third font available to the system:
  PFont myFont = createFont(PFont.list()[2], 14);
  textFont(myFont);

  // List all the available serial ports:
  println(Serial.list());

  // I know that the first port in the serial list on my mac
  // is always my  FTDI adaptor, so I open Serial.list()[0].
  // In Windows, this usually 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(0);
  text("Last Received: " + inByte, 10, 130);
  text("Last Sent: " + whichKey, 10, 100);
}

void serialEvent(Serial myPort) {
  inByte = myPort.read();
}

void keyPressed() {
  // Send the keystroke out:
  myPort.write(key);
  whichKey = key;
}


Face tracking

voir Face Tracking with a Pan/Tilt Servo Bracket

avec une webcam, OpenCV et Arduino


Liens

Quelques démonstrations sympas

Livres