Difference between revisions of "Processing Introduction"

From Interaction Station Wiki
Jump to navigation Jump to search
Line 111: Line 111:
 
in this case, we only need to change some code in Arduino IDE.
 
in this case, we only need to change some code in Arduino IDE.
  
 +
<syntaxhighlight lang="java" line='line'>
  
 +
</syntaxhighlight>
  
 
2. however, sometimes, you want to send data directly from a microcontroller to processing.
 
2. however, sometimes, you want to send data directly from a microcontroller to processing.
  
 
in this case, we need to do write few lines of code in both Arduino and processing.
 
in this case, we need to do write few lines of code in both Arduino and processing.
 +
 +
'''in Arduino IDE:'''
 +
 +
<syntaxhighlight lang="java" line='line'>
 +
 +
</syntaxhighlight>
 +
 +
 +
'''in Processing:'''
 +
 +
 +
<syntaxhighlight lang="java" line='line'>
 +
 +
 +
</syntaxhighlight>
  
 
==draw a image==
 
==draw a image==

Revision as of 17:22, 11 April 2021

Processing

Say Hello

setup()

only run once.

draw()

will continuously repeat the action inside of the {}


1void setup(){
2size(400,400);
3println("Hello!Nan");
4
5}
6void draw(){
7println("welcome to interaction station!");
8}

copy-paste the code above and observe the message from the console.


Now, let's try to draw something

 1void setup(){
 2size(400,400);
 3//println("hello!Nan");
 4background(30,50,80);
 5
 6}
 7void draw(){
 8//println("welcome to nteraction station!");
 9//RGB Value
10stroke(30,150,140);
11line(width/2, height/2, mouseX, mouseY);
12}


Sketch --> Run

Sketch --> Tweak

Sketch --> Present


Full screen!

 1void setup(){
 2//size(400,400);
 3//println("hello!Nan");
 4fullScreen();
 5background(30,50,80);
 6
 7}
 8void draw(){
 9//println("welcome to nteraction station!");
10//RGB Value
11stroke(30,150,140);
12line(width/2, height/2, mouseX, mouseY);
13}

draw

 1void setup(){
 2//size(400,400);
 3//println("hello!Nan");
 4fullScreen();
 5background(30,50,80);
 6 
 7}
 8void draw(){
 9//println("welcome to interaction station!");
10//RGB Value
11noStroke();
12fill(0,200,0);
13
14ellipse(width/2,height/2,150,150);
15stroke(30,150,140);
16strokeWeight(2);
17line(width/2, height/2, mouseX, mouseY);
18println("mouseX:",mouseX);
19println("mouseY:",mouseY);
20if(mousePressed){
21background(30,50,80);
22}
23}

Communication with Arduino

there are two ways to get processing sketches communicating with microcontrollers.

1. the first one is to use the microcontroller as an HID (Human Interface Device), like a mouse or keyboard.


in this case, we only need to change some code in Arduino IDE.

2. however, sometimes, you want to send data directly from a microcontroller to processing.

in this case, we need to do write few lines of code in both Arduino and processing.

in Arduino IDE:


in Processing:


draw a image

Image sequence:

 1int numImages = 115; // total number of images
 2int startNumImage = 1; // first number in sequence
 3
 4PImage[] images = new PImage[numImages]; // the images will be stored in this list
 5
 6// setup is executed once, when the program started
 7void setup() {
 8
 9  // size of the window
10  //size(400,400);// use size "(displayWidth, displayHeight)" for fullscreen  
11  size(displayWidth, displayHeight);
12
13  // load the image sequence
14  loadImageSequence();
15}
16
17// draw is repeatedly executed, as fast as possible, or according to frameRate setting
18void draw() {
19  background(0); // draw a black background
20
21  // map x position to an image in the sequence
22  int imgInSeq = (int)map(mouseX, 0, width, 0, numImages - 1); // map center of mass to image in sequence
23
24
25  // draw the image scaled and stretched to the window size
26  image(images[imgInSeq], 0, 0, width, height);
27}
28
29// load the image sequence
30void loadImageSequence() {
31  String filename = "";
32
33  for (int i = 0; i < numImages; i++) {
34    // STUDENT: adjust how the filename is being generated to fit the naming of your files
35    filename = "headtrack/img__" +nf(startNumImage + i, 3) + ".jpg";   
36    images[i] = loadImage(filename);
37  }
38}