Go Down

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

carmelobleach

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
imac PPC G3 os X Pa

carmelobleach

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
imac PPC G3 os X Pa

carmelobleach

#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
imac PPC G3 os X Pa

Go Up