We are about to switch to a new forum software. Until then we have removed the registration on this forum.
code processing seul ok code arduino seul ok
pb je n'arrive pas à recuperer la valeur processing (s) dans arduino???? code ci-dessous
Copied from duplicate thread...
Processing code only is ok arduino code only is ok pb: arduino don't read the value :s return by processing?????
import processing.serial.*;
Serial port;
int[] difference(int[] a, int[] b) { // renvoie un tableau dont les éléments sont la différence des éléments des 2 tableaux en entrée
int i;
int [] c= new int [a.length];
for (i=0;i<c.length;i++) {
c[i]=a[i]-b[i];
}
return c;
}
int compteur(int []a) { // renvoie le nombre de cellules nulle d'un tableau
int i;
int c=0;
for (i=0;i<a.length;i++) {
if (a[i]==0) {
c=c+1;
}
}
return c;
}
int[] stockage(PImage f) { // renvoie dans un tableau les couleurs en niveau de gris
int[] a=new int[f.width*f.height] ; // d'une image couleur f
int w = f.width;
int h = f.height;
size(w, h);
image(f, 0, 0);
int i;
i=0;
for (int y=0; y<h; y++) {
for (int x=0; x<w; x++) {
color c = get(x, y); // prend la couleur de chaque pixel
float r=red(c); // decompose la couleur dans ces composants rgb
float g=green(c);
float b=blue(c);
int m=(int)((r+g+b)/3); //transforme en niveau de gris
a[i]=m; // stocke les couleurs des pixels de l'image de référence dans le tableau a
i=i+1;
}
}
return a;
}
void setup() {
println(Serial.list());
// ouvre le port au débit voulu
String portName = Serial.list()[0];
port = new Serial(this, portName, 9600);
PImage[] images=new PImage[4];
int t=0;
int s =0;
for (int i=1;i<images.length+1;i++) {
images[i-1]=loadImage("im"+i+".bmp");
} //on charge l'ensemble des images
for (int j=2;j<5;j++) {
println(compteur(difference(stockage(images[j-1]), stockage(images[0])))); // l'image de reference est im1
if (compteur(difference(stockage(images[j-1]), stockage(images[0])))>t) { // on balaye sur toutes les autres images
t=compteur(difference(stockage(images[j-1]), stockage(images[0])));
s=j;
} // on conserve l'image la plus proche
//celle qui a le plus de pixels identiques
}
println("l'image la plus proche est im"+s+".bmp");
myPort.write(s);
}
/*
// code Arduino
int led2 = 2; // déclaration des broches
int led3 = 3;
int led4 = 4;
void setup() {
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT); // on déclare les pin en sortie
Serial.begin(9600); // communication série à 9600 bps
}
void loop() {
if (Serial.available()) { // on test s'il ya qqch à lire
int val = Serial.read();
} // on stocke dans val
if (val == 2) { // si 2 est reçu
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
// on fait clignoter led 2
delay(200);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
delay(200); // attendre 100 ms
}
if (val == 3) {
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
delay(200);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
delay(200);
}
if (val == 4) {
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, HIGH);
delay(200);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
delay(200);
}
}
*/
Answers
Ne personne est capable de lire ça. Utilisez ctrl+T dans Processing devant copier le code sur le forum. Evidemment, si vous posez votre question en Anglais, la chance de réçevoir une réponse est plus grande.