Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2014-02-10 06:02:54 commande pour les boutons

fabrice54
membre
Date d'inscription: 2012-06-07
Messages: 242

commande pour les boutons



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.

Code (P5) :

Hors ligne

 

#2 2014-02-10 07:09:06 Re : commande pour les boutons

fabrice54
membre
Date d'inscription: 2012-06-07
Messages: 242

Re: commande pour les boutons



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?

Code (P5) :

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

 

#3 2014-02-10 08:36:53 Re : commande pour les boutons

top
membre
Date d'inscription: 2012-04-12
Messages: 43

Re: commande pour les boutons



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

 

#4 2014-02-10 10:11:45 Re : commande pour les boutons

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: commande pour les boutons



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

 

#5 2014-02-10 10:33:50 Re : commande pour les boutons

Olivier
N°4
Lieu: Chalon sur la Saône
Date d'inscription: 2009-04-07
Messages: 1471
Site web

Re: commande pour les boutons



citation :

c'est comme croiser les effluves, il ne faut pas

lol


L'Amour au Peuple !

Hors ligne

 

#6 2014-02-11 04:00:37 Re : commande pour les boutons

fabrice54
membre
Date d'inscription: 2012-06-07
Messages: 242

Re: commande pour les boutons



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

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024