Mes servo font n'importe quoi et je sais pas pourquoi???(le prog n'est pas de moi je l'ai juste modifié!)
import processing.serial.*;
float Y_ref1=220;// ordonnée de ligne de référence dessin rectangle
//float X_ref1=220;
float Y_ref2=220;
float X_ref2=300;
float largeur1=50;
float hauteur1=180; //180 représente 100% (0 à 9 = 10 positions)
float largeur2=50;
float hauteur2=180;
int SendValue1=0; // valeur envoyée à Arduino
float niveau1=0.0; // 0% au départ
int SendValue2=0; // valeur envoyée à Arduino
float niveau2=0.0; // 0% au départ
Serial MySerialPort; // variable désignant le port série
void setup(){ // fonction d'initialisation exécutée 1 fois au démarrage
size(300,300); //dimensionne la fenêtre processing (largeur x hauteur) //
//---- initialisation port série ---
println(Serial.list()); // liste et affiche tous les ports disponibles
// ///////Open whatever port is the one you're using.
MySerialPort = new Serial(this, Serial.list()[1], 115200); // vérifier si c'est le bon port qui est utilisé
delay (100); // pause
background (255,255,255); // fixe la couleur du fond - format RGB
stroke(255,0,0); // fixe la couleur du trait de dessin et bordure - format RGB
//nostroke(); // Désactive trait de dessin et bordure
// dessin des 2 rectangles du niveau de démmarrage (=50%)
stroke (0); // trait de contour
fill(255,255,255); // remplissage
rect (10,Y_ref1-hauteur1,largeur1, hauteur1); // trace un rectangle de hauteur voulue
//à partir du point x,y (rect(x,y,larg,haut)) en se basant sur ordonnée de référence
stroke (255,0,0); // trait de contour
fill(255,0,0); // remplissage rouge
rect (10,Y_ref1-niveau1,largeur1, niveau1); // trace un rectangle de hauteur voulue
//à partir du point x,y (rect(x,y,larg,haut)) en se basant sur ordonnée de référence
background (255,255,255); // fixe la couleur du fond - format RGB
stroke(255,0,0); // fixe la couleur du trait de dessin et bordure - format RGB
//nostroke(); // Désactive trait de dessin et bordure
// dessin des 2 rectangles du niveau de démmarrage (=50%)
stroke (0); // trait de contour
fill(255,255,255); // remplissage
rect (50,Y_ref2-hauteur2,largeur2, hauteur2); // trace un rectangle de hauteur voulue
//à partir du point x,y (rect(x,y,larg,haut)) en se basant sur ordonnée de référence
stroke (255,0,0); // trait de contour
fill(255,0,0); // remplissage rouge
rect (50,Y_ref2-niveau2,largeur2, niveau2); // trace un rectangle de hauteur voulue
//à partir du point x,y (rect(x,y,larg,haut)) en se basant sur ordonnée de référence
//----- initialisation valeur série ----
MySerialPort.write(48); // valeur initiale 0+ 48 pour format ASCII
delay (100); // pause
}
void draw() { // fonction exécutée en boucle
}
// fonction de gestion des évènements
//----- clavier --------
void keyPressed() {// cette fonction est exécutée quand un touche est appuyée...
if (key == CODED) { // si appui d'une touche particulière (les touches spéciales up, down, etc.. cf Keycode)
if (keyCode == UP) { // si touche Haut appuyée
niveau1=niveau1+(hauteur1/9); // /9 pour avoir 10 niveaux
if (niveau1>=hauteur1)niveau1=hauteur1; // ne pas dépasser hauteur
SendValue1=SendValue1+1; // incrémente SendValue
if (SendValue1 >=9) SendValue1=9; // Empêche débordement variable SendValue
MySerialPort.write(SendValue1+48); // valeur initiale + 48 pour format ASCII - envoie valeur 0 à 9
delay (100); // pause
}
else if (keyCode == DOWN) {// si touche BAS appuyée
niveau1=niveau1-(hauteur1/9); // /9 pour avoir 10 niveaux
if (niveau1<=0)niveau1=0; // ne pas dépasser 0
SendValue1=SendValue1-1; // décrémente SendValue
if (SendValue1<=0) SendValue1=0;// ne pas dépasser 0
MySerialPort.write(SendValue1+48); // valeur initiale + 48 pour format ASCII - envoie valeur 0 à 9
delay (100); // pause
}
if (keyCode == RIGHT) {
niveau2=niveau2+(hauteur2/9); // /9 pour avoir 10 niveaux
if (niveau2>=hauteur2)niveau2=hauteur2; // ne pas dépasser hauteur
SendValue2=SendValue2+1; // incrémente SendValue
if (SendValue2 >=9) SendValue2=9; // Empêche débordement variable SendValue
MySerialPort.write(SendValue2+48); // valeur initiale + 48 pour format ASCII - envoie valeur 0 à 9
delay (100); // pause
}
else if (keyCode == LEFT) {
niveau2=niveau2-(hauteur2/9); // /9 pour avoir 10 niveaux
if (niveau2<=0)niveau2=0; // ne pas dépasser 0
SendValue2=SendValue2-1; // décrémente SendValue
if (SendValue2<=0) SendValue2=0;// ne pas dépasser 0
MySerialPort.write(SendValue2+48); // valeur initiale + 48 pour format ASCII - envoie valeur 0 à 9
delay (100); // pause
}
}
// dessin des 2 rectangles du niveau
stroke(0); // contour noir
fill(255,255,255); // remplissage blanc
rect (10,Y_ref1-hauteur1,largeur1, hauteur1);
stroke(255,0,0); // contour rouge
fill(255,0,0); // remplissage rouge
rect (10,Y_ref1-niveau1,largeur1, niveau1);
//dessin des 2 rectangles du niveau
stroke(0); // contour noir
fill(255,255,255); // remplissage blanc
rect (100,Y_ref2-hauteur2,largeur2, hauteur2);
stroke(0,0,255); // contour rouge
fill(0,0,255); // remplissage rouge
rect (100,Y_ref2-niveau2,largeur2, niveau2);
}
// fin gestion port série
Le problème c'est que je n'arrive pas a contrôler correctement le servo placé sur la pin 10 (autre petit prog sur Arduino...)
Si vous avez une idée je suis preneur!
merci