et la première partie du code processing
// inclusion librairies utilisées
import processing.serial.*; // importe la librairie série processing
// déclaration variables
//--- variables utiles tracé vumètre
float Y_ref=400; // ordonnée de ligne de référence dessin rectangle
float largeur=50;
float hauteur=360; //180 représente 100% (0 à 9 = 10 positions)
int SendValue=0; // valeur envoyée à Arduino
float niveau=0; // 0% au départ
float Y_ref1=400; // ordonnée de ligne de référence dessin rectangle
float largeur1=50;
float hauteur1=360; //180 représente 100% (0 à 18 = 18 positions)
int SendValue1=0; // valeur envoyée à Arduino
float niveau1=0; // 0% au départ
float Y_ref2=400; // ordonnée de ligne de référence dessin rectangle
float largeur2=50;
float hauteur2=360; //360 représente 100% (0 à 9 = 180 positions)
int SendValue2=0; // valeur envoyée à Arduino
float niveau2=0; // 0% au départ
float Y_ref3=400; // ordonnée de ligne de référence dessin rectangle
float largeur3=50;
float hauteur3=360; //360 représente 100% (0 à 9 = 180 positions)
int SendValue3=0; // valeur envoyée à Arduino
float niveau3=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(800,600); //dimensionne la fenêtre processing à 200x200 (largeur x hauteur) // 1ère instruction de Setup
// si Size() oublié => fenêtre 100x100 par défaut --
//---- 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 (600,Y_ref-hauteur,largeur, hauteur); // 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 (600,Y_ref-niveau,largeur, niveau); // 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
// dessin des 2 rectangles du niveau de démmarrage (=50%)
stroke (0); // trait de contour
fill(255,255,255); // remplissage
rect (400,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 (400,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
// dessin des 2 rectangles du niveau de démmarrage (=50%)
stroke (0); // trait de contour
fill(255,255,255); // remplissage
rect (200,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 (200,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
// dessin des 2 rectangles du niveau de démmarrage (=50%)
stroke (0); // trait de contour
fill(255,255,255); // remplissage
rect (10,Y_ref3-hauteur3,largeur3, hauteur3); // 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_ref3-niveau3,largeur3, niveau3); // 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(0); // valeur initiale 0 pour format ASCII
delay (100); // pause
MySerialPort.write(0); // valeur initiale 0 pour format ASCII
delay (100); // pause
}
void draw() { // fonction exécutée en boucle
//--- nb : la vitesse de rafraîchissement de l'écran est de 60 par seconde apr défaut - cf frameRate()
}
// 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
niveau=niveau+(hauteur/18); // /18 pour avoir 18 niveaux
if (niveau>=hauteur)niveau=hauteur; // ne pas dépasser hauteur
SendValue=SendValue+1; // incrémente SendValue
if (SendValue >=9) SendValue=9; // Empêche débordement variable SendValue
MySerialPort.write('g'); // envoie la valeur g
delay (100); // pause
}
else if (keyCode == DOWN) {// si touche BAS appuyée
niveau=niveau-(hauteur/18); //
if (niveau<=0)niveau=0; // ne pas dépasser 0
SendValue=SendValue-1; // décrémente SendValue
if (SendValue<=0) SendValue=0;// ne pas dépasser 0
MySerialPort.write('k'); //envoie la valeur k
delay (100); // pause
}
if (keyCode == RIGHT) { // si touche droite appuyée
niveau1=niveau1+(hauteur1/18); // /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('h'); // envoie la valeur h
delay (100); // pause
}
else if (keyCode == LEFT) {// si touche gauche appuyée
niveau1=niveau1-(hauteur1/18); // /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('a'); // venvoi la valeur a
delay (100); // pause
}
}