bonjour
Toujours une question au sujet du de la class Boutons envoyé par Mushussu ;j'aimerais pouvoir implanter les commande:arduino.digitalWrite(2,Arduino.HIGH)
arduino.digitlaWrite(2,Arduino.LOW);
-------------------------(3,--------------);
ect ;et que les diodes s'allument quant j'appui sur le bouton,que chaques diodes est sont bouton;dans le programmes suivant j'ai mis les fonctions pour les leds dans void draw()mais la led va s'allumer si on appui sur n'importe quel bouton.j'ai testé différentes solutions mais ce n'est pas très concluant si quelqu’un a une idée .
merci.
Hors ligne
j'ai trouvé une solution,le problème étais qu'il y a 2 méthode draw dans le programme,j'aimerais savoir si la méthde draw de la class peut etre mise dans un sous programme?
import processing.serial.*; import cc.arduino.*; Arduino arduino; int val; Bouton b1, b2,b3,b4,b5; void setup() { size(500, 655); println(Arduino.list()); arduino = new Arduino(this, Arduino.list()[0], 57600); arduino.pinMode(2, Arduino.OUTPUT); arduino.pinMode(3, Arduino.OUTPUT); arduino.pinMode(4, Arduino.OUTPUT); arduino.pinMode(5, Arduino.OUTPUT); b1 = new Bouton(this,400,100,75); b2 = new Bouton(this,400,200, 75); b3= new Bouton(this, 400,300,75); b4=new Bouton(this,400,400,75); b5= new Bouton(this,400,500,75); } void draw() { background(66); stroke(9,9,10); fill(225); rect(50,225,200,80); rect(50,375,200,80); textSize(30); fill(255,0,114); text("marche",195,65); } public class Bouton { PApplet parent; PVector position; int taille; boolean etat; color couleur; Bouton (PApplet _parent, int _x, int _y,int _taille) { parent = _parent; position = new PVector(_x, _y); taille =_taille; etat = false; couleur = color(42, 255, 0); parent.registerDraw(this); parent.registerMethod("mouseEvent", this); } void draw() { if(mouseX>400&&mouseX<475&&mouseY>100&&mouseY<175) {val=2; } if(mouseX>400&&mouseX<475&&mouseY>200&&mouseY<275) { val=3; } if(mouseX>400&&mouseX<475&&mouseY>300&&mouseY<375) {val=4; } if (etat) { fill(couleur); arduino.digitalWrite(val,Arduino.HIGH); } else { fill(255,132,0); arduino.digitalWrite(val,Arduino.LOW); } rect(position.x, position.y, taille, taille); } void mouseEvent(processing.event.MouseEvent event) { int x = event.getX(); int y = event.getY(); switch (event.getAction()) { case MouseEvent.PRESS: if ((x > position.x) && (x < position.x+taille) && (y > position.y) && (y < position.y+taille)) { etat = !etat; } break; case MouseEvent.RELEASE: // Routine ... break; case MouseEvent.CLICK: break; case MouseEvent.DRAG: //routine break; case MouseEvent.MOVE: // Routine ... break; } } }
Hors ligne
Je trouve que tu te compliques bien la vie avec ta classe bouton.
Regarde du coté de G4P par exemple tout est déjà implémenté
Exemple
import g4p_controls .*; GButton btn ; int i = 0; void setup () { size (300 , 200); btn = new GButton ( this , 10 , 20 , 40 , 20 , " btn " ); } void draw () { } void handleButtonEvents( GButton button , GEvent event ) { if ( button == btn ){ println ( " clic : " + i ); i += 1; } }
Dernière modification par top (2014-02-10 08:38:32)
Hors ligne
Bonjour,
Il faut vraiment que tu apprends mieux la notion de classe pour pouvoir persévérer.
D'autres part, c'est comme croiser les effluves, il ne faut pas, même si cela fonctionne, appeler dans une classe une variable globale. La classe étant amenée à être réutilisée dans d'autres programmes.
Donc il faut éviter d'appeler la variable arduino dans la classe Bouton.
Je te propose ceci, je ne l'ai pas testé car je n'ai pas d'Arduino sous la main.
Hors ligne
bonjour
Merci pour les programmes ;le programme de Mushussu fonctionne très bien,maintenant je vais essayer de le comprendre pour pouvoir terminer mon armoire.
Quant à G4P jai télécharger la librairie ça a l'air très bien;mais l'exemple que j'ai ne fonctionne pas ;je vais voir si je trouve de la doc .
merci encore.
Hors ligne