zoom in and out

Hey guys,
I had posted about my google earth project, things are workin great on processing and the joystick.
Now my problem I couldn t figure out how to make my two digital buttons zoom in and out.
I found on the reference of processing the scale code, didn t work.
I ll post my code and u guys tell me what is wrong

thanks

Sonia

//Arduino*******
/*

  • Sample code to send multiple analog inputs to Processing
  • from Arduino
    */

int analogInput1 = 0;
int analogInput2 = 1;
int digitalInput3 = 2;
int digitalInput4 = 3;
int ledPin = 13;

int val1 = 0;
int val2 = 0;
int val3 = 0;
int val4 = 0;

// an identifier for each value
char label1 = 'A';
char label2 = 'B';

void setup() {
Serial.begin(9600); //setup the serial port
}

void loop()
{
val1 = analogRead(analogInput1); //read pins ito variables
val2 = analogRead(analogInput2);
val3 = digitalRead(digitalInput3);
val4 = digitalRead(digitalInput4);

Serial.print (label1, BYTE);
Serial.print (val1, DEC);
Serial.print (10, BYTE);

Serial.print(label2, BYTE);
Serial.print (val2, DEC);
Serial.print (10, BYTE);

delay(300); // pause to prevent comm errors

if (val3 & val4 == HIGH) {
digitalWrite(ledPin, LOW);
}else{
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(ledPin, LOW);
delay(300);
}

}


//**************** PROCESSING****************
/*

  • Processing code to receive multiple analog sensor readings
  • from Arduino
  • Uses string buffers to hold values larger than 0-255 (byte size)
    */

import processing.serial.*;

Serial port;

int val; //holds serial line data to send to parser
String bufA="";
String bufB=""; //buffer strings for each value
int inputFlag; // switches between sensor data for as many sensors as used
int val1; //global variables to hold the analog sensor values
int val2;
int val3;
int val4;
PImage b;

//float xCoordinate = 0;
//float yCoordinate = 0;

void setup(){
size(799,799);
port = new Serial(this,Serial.list()[0],9600); //open serial port
stroke(0);
strokeWeight(4);
b = loadImage("main.png");
}

void draw (){
if(port.available() > 0){
val = port.read();
serialEvent(val); // send the port.read data to the serial parser function
background(0);
image(b, (val1/3-700),(val2/3-500));

/* if(val3==390) {

image(b, (val1/3),(val2/3));
}
else {
image(b, (val1/3-700),(val2/3-500));
}*/

//image(b, (val3/3-700),(val4/3-500));
//ellipse (val1/3, val2/3, 30, 30);
//smooth();
//line(20,40,80,40);
//print ("A = " );
//println ( val1 );
//print ("B = " );
//println ( val2 );
}

}

void serialEvent(int serial){
if(serial!=10) { // 10 is the line end sent from Arduino
if (serial=='A') { //check that buffer is at initial value
inputFlag = 1;
}
if (serial=='B') {
inputFlag = 2;
}

if (inputFlag == 1){ // fill data into buffer string
if (serial!='A') {
bufA += char(serial);

}
}
if (inputFlag == 2){
if (serial!='B') { // fill data into buffer string
bufB+= char(serial);
}
}
}
else {
if (inputFlag == 1){
val1 = int(bufA); // load data into variable from the buffer
bufA=""; //clear the buffer
}
if (inputFlag == 2) {
val2 = int(bufB); // load data into variable from the buffer
bufB=""; // clear the buffer
}
}

}

anyone ? please ? :cry:

You are not sending the values of the digital buttons to processing. Maybe you know that?

What you don't know is when posting code hit the hash icon in the reply box and paste the code between the two brackets that pop up. That way you get a nice scrolling box and the font is better to read.

sorry if the code is too small
what do u mean i m not sending the values ? :-[
well i m trying to understand this stuff...my led lights up, so the buttons work. You mean that if condition somethin is missin ?

//****************Arduino***********************
/*
*  Sample code to send multiple analog inputs to Processing
*  from Arduino  
*/

 int analogInput1 = 0;  
 int analogInput2 = 1;
 int digitalInput3 = 2;
 int digitalInput4 = 3;
 int ledPin = 13;
 
 int val1 = 0;  
 int val2 = 0;
 int val3 = 0;
 int val4 = 0;

// an identifier for each value
 char label1 = 'A';  
 char label2 = 'B';  
 

void setup() {  
 Serial.begin(9600);  //setup the serial port
}

void loop()
{
   val1 = analogRead(analogInput1);  //read pins ito variables
   val2 = analogRead(analogInput2);
   val3 = digitalRead(digitalInput3);
   val4 = digitalRead(digitalInput4);
   
   Serial.print (label1, BYTE);
   Serial.print (val1, DEC);  
   Serial.print (10, BYTE);
   
   Serial.print(label2, BYTE);
   Serial.print (val2, DEC);  
   Serial.print (10, BYTE);
   

   
   
  delay(300);   // pause to prevent comm errors
 
  if (val3 & val4 == HIGH) {
 digitalWrite(ledPin, LOW);
}else{
 digitalWrite(ledPin, HIGH);
 delay(200);
 digitalWrite(ledPin, LOW);
 delay(300);
}

}

_________________________________________________________



//**************** PROCESSING****************
/*
*  Processing code to receive multiple analog sensor readings
*  from Arduino
*  Uses string buffers to hold values larger than 0-255 (byte size)
*/

import processing.serial.*;

Serial port;

int val;           //holds serial line data to send to parser
String bufA="";
String bufB="";  //buffer strings for each value
int inputFlag;  // switches between sensor data for as many sensors as used
int val1;        //global variables to hold the analog sensor values
int val2;
int val3;
int val4;
PImage b;


//float xCoordinate = 0;
//float yCoordinate = 0;

void setup(){
 size(799,799);
 port = new Serial(this,Serial.list()[0],9600); //open serial port
 stroke(0);
 strokeWeight(4);
 b = loadImage("main.png");
}

void draw (){
 if(port.available() > 0){
   val = port.read();
   serialEvent(val);    // send the port.read data to the serial parser function
      background(0);
  image(b, (val1/3-700),(val2/3-500));
 
/* if(val3==390) {
 
  image(b, (val1/3),(val2/3));
 }
 else {
  image(b, (val1/3-700),(val2/3-500));    
 }*/

   //image(b, (val3/3-700),(val4/3-500));
  //ellipse (val1/3, val2/3, 30, 30);
  //smooth();
 //line(20,40,80,40);
   //print ("A = " );
   //println ( val1 );
   //print ("B = " );
   //println ( val2 );
 }

}

void serialEvent(int serial){
 if(serial!=10) {    // 10 is the line end sent from Arduino  
   if (serial=='A') { //check that buffer is at initial value
     inputFlag = 1;
   }
   if (serial=='B') {
     inputFlag = 2;
   }
   
   if (inputFlag == 1){ // fill data into buffer string
     if (serial!='A') {
       bufA += char(serial);
   
     }
   }
   if (inputFlag == 2){
     if (serial!='B') {  // fill data into buffer string
       bufB+= char(serial);
     }
   }
 }
 else {
   if (inputFlag == 1){  
     val1 = int(bufA); // load data into variable from the buffer
     bufA="";           //clear the buffer
   }
   if (inputFlag == 2) {  
     val2 = int(bufB); // load data into variable from the buffer
     bufB="";            // clear the buffer
   }
 }  

}

what do u mean i m not sending the values

The code:-

Serial.print (label1, BYTE);
   Serial.print (val1, DEC);
   Serial.print (10, BYTE);

   Serial.print(label2, BYTE);
   Serial.print (val2, DEC);
   Serial.print (10, BYTE);

Sends the value of the analogue inputs to processing but you don't ever do a Serial.print of the digital values so you never send them to the processing sketch.

All the if statements are doing is turning on the LED for 200mS if Val3 or val4 is LOW, they don't do anything else.

What do you want them to do?