Bonjour ,
J'aimerais avoir votre aide :
Pour un projet j'aimerais communiquer entre mon Arduino et un programme Processing :
-Je ne sait pas programmer en Processing mais j'ai jusqu'a maintenant réussis a obtenir ce que je souhaiter
-Mon programme Arduino est fini et graçe au port COM 5 j'arrive a envoyer une chaine de caractère plus précisément 4
-Mon interface physique est composer de 5 bouton poussoir : 4 bouton simule l'état (haut ou bas) de capteurs et le dernier valide l'envoi des information sur le port séries via une condition
-Le programme Processing est charger d’interpréter c'est donnée reçu par le port Série et de réagir en conséquence , si il reçoit A1Toucher alors sur une fenêtre il doit positionner une autre image (celle d'un impacte) dans sa case correspondante
Voici ce qu'envoi mon Arduino sur le port séries (ça diffère celons les bouton enclencher précédemment vous inquiété pas):
Voici la fenètre en question :
Mon gros problème c'est que je sait pas quoi mettre dans mon code Processing pour pouvoir récupérée ce que m'envoi l'Arduino
Un autre problème c'est que quand je lance mon programme le port COM5 est monopoliser par Processing et du coup Arduino ce soumet et n’envoie rien mdrr
Voici mes codes
ARDUINO :
Processing
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87 int valeurBoutonTransfert ; int valeurEclairement= 0; int valeurportBoutonTransfert; int portCapteurA1 = 2 ; int valeurCapteurA1 ; int portCapteurA2 = 4 ; int valeurCapteurA2 ; int portCapteurA3 = 7 ; int valeurCapteurA3 ; int portCapteurA4 = 8 ; int valeurCapteurA4 ; int portBoutonTransfert = 12; int valeurEtatA1 ; int valeurEtatA2 ; int valeurEtatA3 ; int valeurEtatA4 ; void setup() { pinMode (portCapteurA1,INPUT); pinMode (portCapteurA2,INPUT); pinMode (portCapteurA3,INPUT); pinMode (portCapteurA4,INPUT); pinMode (portBoutonTransfert,INPUT); Serial.begin(9600); } void loop() { valeurCapteurA1 = digitalRead(portCapteurA1); if(valeurCapteurA1>valeurEclairement & valeurBoutonTransfert == 0) {valeurEtatA1=1;} valeurCapteurA2 = digitalRead(portCapteurA2); if(valeurCapteurA2>valeurEclairement & valeurBoutonTransfert == 0) {valeurEtatA2=1;} valeurCapteurA3 = digitalRead(portCapteurA3); if(valeurCapteurA3>valeurEclairement & valeurBoutonTransfert == 0) {valeurEtatA3=1;} valeurCapteurA4 = digitalRead(portCapteurA4); if(valeurCapteurA4>valeurEclairement & valeurBoutonTransfert == 0) {valeurEtatA4 = 1 ;} valeurportBoutonTransfert = digitalRead(portBoutonTransfert); if(valeurportBoutonTransfert==1) { valeurBoutonTransfert=1; } if (valeurEtatA1 == 1 & valeurBoutonTransfert == 1) { Serial.println("A1Toucher"); } if (valeurEtatA1 == 0 & valeurBoutonTransfert == 1) { Serial.println("A1Intoucher"); } if (valeurEtatA2 == 1 & valeurBoutonTransfert == 1) { Serial.println("A2Toucher"); } if (valeurEtatA2 == 0 & valeurBoutonTransfert == 1){ Serial.println("A2Intoucher");} if (valeurEtatA3 == 1 & valeurBoutonTransfert == 1) { Serial.println("A3Toucher"); } if (valeurEtatA3 == 0 & valeurBoutonTransfert == 1){ Serial.println("A3Intoucher");} if (valeurEtatA4 == 1 & valeurBoutonTransfert == 1) { Serial.println("A4Toucher"); } if (valeurEtatA4 == 0 & valeurBoutonTransfert == 1) { Serial.println("A4Intoucher");} }
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 import processing.serial.*; Serial myPort; // The serial port PImage cible ; PImage impact ; int valeurA1 ; int valeurA2; int valeurA3; int valeurA4 ; void setup() { println(Serial.list()); // I know that the first port in the serial list on my mac // is always my Keyspan adaptor, so I open Serial.list()[0]. // Open whatever port is the one you're using. myPort = new Serial(this, Serial.list()[0], 9600); size(200, 250); cible = loadImage("Image_prototype.png"); impact = loadImage("impact.png"); } void draw() { while (myPort.available() >= 3) { if (myPort.read() == 0xff) { valeurA1 = (myPort.read() << 8) | (myPort.read()); valeurA2 = (myPort.read() << 8) | (myPort.read()); valeurA3 = (myPort.read() << 8) | (myPort.read()); valeurA4 = (myPort.read() << 8) | (myPort.read()); } } { image(cible, 0, 0, 200, 250); if(valeurA1==1){ image(impact, 50, 7, 40, 50); } if(valeurA2==1){ image(impact, 50, 70, 40, 50); } if(valeurA3==1){ image(impact, 50, 135, 40, 50); } if(valeurA4==1){ image(impact, 50, 192, 40, 50); } } }
Je vous remercie pour votre aide : Si possible j'aimerais que vous me mâcher le boulot plutôt que de me donner des pistes ,malheureusement je suis très Arduino et le Processing m’intéresse pas vraiment pour l'instant surtout pour le peu que je veux faire avec ce programme . Mais je ne suis pas contre des éxplication détailler des différentes ligne de code (en sujet avec le port de communication)
Je vous remercie pour votre aide
Trycuz
Partager