Go Down

Topic: transfert en continu de coordonnes(x,y) d arduino vers processing et inversement (Read 724 times) previous topic - next topic

bonjours a tous,
je suis novice en processing et en arduino.
j ai un projet en cours qui est le pilotage  d une imprimante à 2 axes faite maison par arduino et dont l impression se ferait en temps reel ( en meme temps que l on trace notre figure dans un programme processing) et  j ai donc besoin de transferer les coordonnes (x,y) des points en continu vers arduino  mais egalement dans l autre sens pour utiliser un ecran tactile sur arduino.


1: ecran tactile (arduino) ---envoi x,y---> vers processing.
   
et en parrallele avec (1:) arduino anime les moteurs pour tracer la figure.

2: processing trace l image dans une fenetre.

je me suis deja ateler a ma programation des etapes separees
et en voicis les codes:

*********ARDUINO*********
Code: [Select]

int y1 = A0;
int x2 = A3;
int y2 = A1;
int x1 = A2;

void setup() {
Serial.begin(9600);

}

int readX(){
pinMode(y1, INPUT);
pinMode(x2, OUTPUT);
pinMode(y2, INPUT);
pinMode(x1, OUTPUT);

digitalWrite(x2, LOW);
digitalWrite(x1, HIGH);

delay(5); //pause pour metre en tension

return analogRead(y1);
}

int readY(){

pinMode(y1, OUTPUT);
pinMode(x2, INPUT);
pinMode(y2, OUTPUT);
pinMode(x1, INPUT);

digitalWrite(y1, LOW);
digitalWrite(y2, HIGH);

delay(5);
int Y= analogRead(x2);
return Y;
}

void loop()
{
int x = readX(); //coord en x
int y = readY(); //coord en y

if (x == 0 & y == 0){
Serial.print(x-10000);//impression coord en x
Serial.print(" ");
Serial.println(y-10000);//impression coord en y
}
else {
if(x < 1000 & y < 1000){
if(x > 100 & y > 100){
Serial.print(x-100);//impression coord en x
Serial.print(" ");
Serial.println(y-100);//impression coord en y
}
else{
Serial.print(x-10000);//impression coord en x
Serial.print(" ");
Serial.println(y-10000);//impression coord en y
}
}
}
//calibrage pour ne pas avoir de coordonnes negatives

delay(0);

}



**********Processing**********

Code: [Select]

?/*
* Mouse Press.
*
* Move the mouse to position the shape.
* Press the mouse button to invert the color.
*/
// modifier par carmelo pirrera.
// programme de base de procesing qui tace des croix suivant le curseur de la sourie
import processing.serial.*; //import information from the arduino

int delayValue=0; //variable for delayValue
int min_value=0; //variable for the lowest level of light
int max_value=0; //varaible for the highest level of light

Serial myPort; //Chose the prot for communication with arduino

void setup() {
size(800, 600);//taille de la fenetre
noSmooth();
fill(0);
background(255);
}

void draw() {
/*
if (mousePressed) {
stroke(255);
} else {
stroke(0);
}

line(mouseX-10, mouseY, mouseX+10, mouseY);
line(mouseX, mouseY-10, mouseX, mouseY+10);
*/
//base permetant de tracer des lignes

if (mousePressed){
stroke(0);//ligne en noir
line(mouseX, mouseY, pmouseX, pmouseY);//trace une ligne entre nouvelle coordonnes et ancienne
}
// noStroke();// enleve le contour du cercle
// fill(0,0,0);//cercle en noir
// ellipse(mouseX, mouseY, 10, 10);//on trace un point noir suivant les coordonnees

}



********************************************************************************************************
la question est comment transferer en continu mes couples (x,y)
de processing vers arduino et d arduino vers processing
(pouvez vous si possible me fournir un exemple de code qui me permetterait cela )

je vous le demande car j ai lontemps chercher sur le net et tout ce que j ai trouver a echouer
merci d avance.

Jean-François

Je ne comprend pas trop pour quoi tu voudrais faire un aller retour avec la même information ?
Processing n'a pas besoins d'envoyer les coordonnées qui sont déjà connue par l'Arduino.

Tu peux jeter un oeil la dessus :

http://accrochages.drone.ws/en/node/90
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5<br />imac PPC G3 os X Pa

ok merci pour la reponce. j ai reussit a envoyer les coordonnees de arduino vers processing pour mon ecran tactile .
par contre j aimerait egalement envoyer les coordonnes x,y de la souris (qui trace sur processing ) vers arduino maiscomment faire dans ce sens ?

Jean-François

Ce serait sympa de ne pas réouvrir un autre sujet avec la même question....

J'efface le doublon.
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5<br />imac PPC G3 os X Pa

#4
Feb 10, 2013, 05:48 pm Last Edit: Feb 10, 2013, 06:00 pm by Jean-François Reason: 1
bonjours,
j aimerait savoir depuis mon programme ci desous comment tracer un dessin.
je recoit les coordonnes x,y depuis un ecran tactile et j anime un point de cette maniere.
seulement je voudrais plus tot que d animer mon point tracer un dessin.
pour cela j ai besoin des coordones de 2 point  (au temps t1 et au temps t2) hors je n ai que 1 point a la foi.
comment puije reprendre les coordonnes du point precedant ??

Code: [Select]

**************PROCESSING***************

import processing.serial.*;
Serial myPort;


void setup()
{
 size( 800, 800 );//taille fenetre
 background( 0 );// couleur du fond
 myPort = new Serial(this, Serial.list()[0], 9600); //[port] de l entree et
 myPort.bufferUntil(' ');
}



void draw() {  
}

void serialEvent( Serial myPort )
{
 String inString = myPort.readStringUntil( '\n' );

 if( inString != null )
 {
   inString = trim( inString );
   int[] coords = int( split( inString, ',' ) );
   background(255);//couleur du fond (blanck)
   stroke(100);// couleur du tour du cercle
   fill(100);// couleur de l interieu du cercle
   int i=0;
 
   int x = coords[0];
   int y =  coords[1];
   // on va limiter les contours du dessin
   if (x<700 & y<700){
     if (x>0 & y>0){
       ellipse(y, x, 10, 10); // permet de tracer un cercle qui suit notre point
     }
   }
 
 
 }
}


Jean-François

Tu as presque tout ici pour Processing :

http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.OUTILSProcessing

Et coté Arduino (+ Processing) :

http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ArduinoExpertSerieDepuisPCReceptionStringProcessing
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5<br />imac PPC G3 os X Pa

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy