Processing: Difference between revisions

From air
Jump to navigation Jump to search
No edit summary
 
(21 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[http://processing.org Processing] est un environnement de développement d'animation en Java simple à mettre en oeuvre.
[http://processing.org 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 [http://jorgecardoso.eu/processing/Screensaver/ screensavers]),
* des apps [[Android]] (requiert le SDK [[Android]])
* et des applications Web en JavaScript (requiert [[WebGL]]).


[http://processingjs.org Processing.JS] est l'adaptation en Javascript de Processing.
[http://processingjs.org Processing.JS] est l'adaptation en Javascript de Processing.


[http://code.google.com/p/pyprocessing/ PyProcessing] est un portage de l'API Processing pour Python.
Un programme Processing et une application Web Processing.js peuvent échanger des informations avec des cartes Arduino connectées à l'hôte ([http://www.arduino.cc/playground/Interfacing/Processing plus...]).


[[Image:ProcessingExampleSphere.png|300px|thumb|Processing :: Example :: Sphere]]
Exemple:
[[Image:ProcessingExampleBouncingBubbles.png|300px|thumb|Processing :: Example :: Bouncing Bubbles]]
[[Image:ProcessingExampleMengerSponge.png|300px|thumb|Processing :: Example :: Menger Sponge]]
[[Image:ProcessingExampleCubeInCube.png|300px|thumb|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'''


<pre>
<pre>
// Programme SerialDuplex
import processing.serial.*;
import processing.serial.*;
import cc.arduino.*;


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


void setup()
void setup() {
size(400, 300);
{
// create a font with the third font available to the system:
//println(Arduino.list());
arduino = new Arduino(this, Arduino.list()[0], 57600);
PFont myFont = createFont(PFont.list()[2], 14);
textFont(myFont);
arduino.pinMode(ledPin, Arduino.OUTPUT);

// 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()
void draw() {
background(0);
{
text("Last Received: " + inByte, 10, 130);
arduino.digitalWrite(ledPin, Arduino.HIGH);
text("Last Sent: " + whichKey, 10, 100);
delay(1000);
}
arduino.digitalWrite(ledPin, Arduino.LOW);

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

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


</pre>
</pre>


==Liens==
* OpenProcessing: site communautaire de scketches Processing http://www.openprocessing.org/visuals/?visualID=30092


==Livres==
==Face tracking==

voir [http://www.sparkfun.com/tutorials/304 Face Tracking with a Pan/Tilt Servo Bracket]

avec une webcam, [[OpenCV]] et [[Arduino]]


=Liens=
* OpenProcessing: site communautaire de scketches Processing http://www.openprocessing.org
* Plugin Eclipse ProClipsing http://code.google.com/p/proclipsing/
Quelques démonstrations sympas
** Fireworks http://www.openprocessing.org/visuals/?visualID=10201
** 3D anaglyph shapes http://www.openprocessing.org/visuals/?visualID=10227

* Processing.js avec [http://jashkenas.github.com/coffee-script/ CoffeeScript] : http://dry.ly/2011/02/21/coffeescript--processingjs--crazy-delicious/ . '''Note pour le debug:''' sous Google-Chrome utiliser Tools/Developper Tools, sous FireFox utiliser l'extension Firebug.

=Livres=
* Casey Reas, Ben Fry, [http://shop.oreilly.com/product/0636920000570.do Getting Started with Processing A Quick, Hands-on Introduction], O'Reilly Media / Make, June 2010
* Casey Reas and Ben Fry, [http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=11251 Processing: A Programming Handbook for Visual Designers and Artists], August 2007, MIT Press. 736 pages.
* Casey Reas and Ben Fry, [http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=11251 Processing: A Programming Handbook for Visual Designers and Artists], August 2007, MIT Press. 736 pages.
* Ben Fry, [http://oreilly.com/catalog/9780596514556 Visualizing Data : Exploring and Explaining Data with the Processing Environment], O'Reilly Media, December 2007, Print ISBN: 978-0-596-51455-6
* Ben Fry, [http://oreilly.com/catalog/9780596514556 Visualizing Data : Exploring and Explaining Data with the Processing Environment], O'Reilly Media, December 2007, Print ISBN: 978-0-596-51455-6
* Matt Pearson, [http://zenbullets.com/book.php Generative Art: a practical guide using Processing], Manning 2011. ([http://www.manning.com/pearson/GenArt_source_code.zip source code] et [http://abandonedart.org/ exemples en ligne])
* Matt Pearson, [http://zenbullets.com/book.php Generative Art: a practical guide using Processing], Manning 2011. ([http://www.manning.com/pearson/GenArt_source_code.zip source code] et [http://abandonedart.org/ exemples en ligne])
* Daniel Shiffman, [[The Nature of Code]], eBook http://natureofcode.com : ''How can we capture the unpredictable evolutionary and emergent properties of nature in software? ...''

Latest revision as of 07:42, 27 March 2014

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