Pages: [1]   Go Down
Author Topic: serial communication between arduino and processing  (Read 621 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

i want to control two videos using two capactive sensors but don't get how to relate videos with capacitive sensor's  on serial communication,
  i want like if i touch "sensor one" then "movie one" will play if touch "sensor two " then first movie stop and "movie two " will play and vice versa. i also want to know the function of serial.print();
Here is my code for arduino....



Code:
#include "mpr121.h"
#include <Wire.h>

int irqpin = 2;  // Digital 2

boolean touchStates[2]; //to keep track of the previous touch states


void setup(){
  pinMode(irqpin, INPUT);
  digitalWrite(irqpin, HIGH); //enable pullup resistor
 


  Serial.begin(9600);
  Wire.begin();

  mpr121_setup();
}

void loop(){

  readTouchInputs();
 

}


void readTouchInputs(){
  if(!checkInterrupt()){

   
    Wire.requestFrom(0x5A,2);

    byte LSB = Wire.read();
    byte MSB = Wire.read();

    uint16_t touched = ((MSB << 8) | LSB);


    for (int i=0; i < 12; i++){ 
      if(touched & (1<<i)){

        if(touchStates[i] == 0){



          if(i==0)
          {

           Serial.print((char)1);
           
          }
         
          if(i==1)
          {

            Serial.print((char)2);
          }
         
         
          else if(touchStates[i] == 1){
            //pin i is still being touched
          } 

          touchStates[i] = 1;     
        }
      }
        else{
          if(touchStates[i] == 1){
            if(i==0)
            {

             Serial.print((char)0);
             
            }
           
             
            if(i==1)
            {

              Serial.print((char)0);
            }
           
           
            touchStates[i] = 0;
          }

        }

      }
     
   
  }

}
 


here is my code for processing


Code:
import processing.serial.*;
import processing.opengl.*;
import codeanticode.gsvideo.*;
import codeanticode.glgraphics.*;
Serial port;



GSMovie myMovie, myMovie2, nowPlaying;
GLTexture tex;
PImage img;
int val = 0;

void setup() {
  size(960, 540, GLConstants.GLGRAPHICS);
  background(0);
 
  tex = new GLTexture(this);
  myMovie = new GSMovie(this, "looper.mov" );
  myMovie2 = new GSMovie(this, "childplay.mov" );
 
 nowPlaying = myMovie;
  nowPlaying.loop();
 
  println(Serial.list());
port = new Serial(this, Serial.list()[1], 9600);
 
}


void draw() {
background(255);
image(nowPlaying,0,0,width,height);
if (0 < port.available()) {
val = port.read();
}

if (val == 1) {

  myMovie2.pause();
    myMovie2.jump(0);
    nowPlaying = myMovie;
   
   
    nowPlaying.loop();
}
   
   

if (val == 2) {

  myMovie.pause();
    myMovie.jump(0);
    nowPlaying = myMovie2;
        nowPlaying.loop();

}

void movieEvent(GSMovie _mov){
  _mov.read();
}

thanxs in anticipation...................
Logged

Seattle, WA USA
Offline Offline
Brattain Member
*****
Karma: 601
Posts: 48543
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
void loop(){
  readTouchInputs();
 }
I guess I'll never understand why a function does nothing but call another function.

Code:
            if(i==0)
            {

             Serial.print((char)0);
             
            }
           
             
            if(i==1)
            {

              Serial.print((char)0);
            }
A reasonable amount of white space is one thing. This amount of white space is something else.

Putting each { on a new line and using Tools + Auto Format and deleting all the useless white space would make your code a lot easier to read. But, basically, it looks like your Arduino sketch is sending '0', '1', or '2' to the serial port when a key is pressed or released.

Then. your Processing sketch is looking for 0, 1, or 2. 0 != '0'. 1 != '1'. 2 != '2'.

Of course, all that you said was what you wanted. You said nothing about what the code actually does, or what problems you are having.
Logged

Pages: [1]   Go Up
Jump to: