code processing seul ok
code arduino seul ok
pb je n'arrive pas a envoyer ma valeur processing (s) dans arduino???
code ci-dessous:
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=a_-b*;
}
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==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.widthf.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*=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); *
}
}
*/