Airsoft Krispies

Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Airsoft Krispies

Bonjour à tous et bienvenue

-20%
Le deal à ne pas rater :
Drone Dji DJI Mini 4K (EU)
239 € 299 €
Voir le deal

+25
astur
Krispies
sbz fred
biddal
vieuxhibou
rpk
Naudnaud
Lunardfr
kurama
nezumi
Eenock
Aeron
Wood
fs57
Blacksheep2
droopaille
k-oui
phoenix5711
blevanaks
freeman83
nosouci
rausko
ju de tomate
obelix21
pic-pac
29 participants

    [Droop] Respawn type Battlefield flag (arduino)

    pic-pac
    pic-pac
    ecrou or
    ecrou or


    Messages : 663
    Date d'inscription : 20/06/2011
    Age : 43
    Localisation : Issoire (63)

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par pic-pac Mer 26 Mar - 8:44

    j'ai cherché un peu cette nuit, j'ai pas encore trouvé, mais j'ai bon espoir qu'on trouver une solution

    après pour le ready c'est un detail
    ju de tomate
    ju de tomate
    vis rouillée
    vis rouillée


    Messages : 37
    Date d'inscription : 24/03/2014
    Age : 41
    Localisation : Besancon

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par ju de tomate Mer 26 Mar - 9:48

    Comme dit par MP à Droopaille je suis en train de faire le même type de bricolage :

    J'ai fait un typon pour ce bidule avec comme caractéristiques :
    - pas de carte arduino, j'ai ré intégré directement un atmega c'est beaucoup plus économique et compact que de prendre une carte arduino et de fair eun shield.
    - j'ai mis une entré tx/rx comme sur les arduino mini donc ca se programme exactement comme une carte arduino sauf qu'il faut un module comme ca pour le brancher :
    http://www.ebay.com/itm/3-3V-5-5V-FT232RL-...=item58a481198e
    - j'ai mis tous ce qui est nécessaire sur une carte arduino : bouton reset, led on, quartz.
    - sortie i2c. J'ai mis ca surtout pour brancher un écran lcd
    - sortie pr 3 boutons (haut/bas/ok)
    - sortie pour faux pain de c4 pour les scénarios bombes
    - sortie avec filtre audio pour jouer des son en wave à la counter strike
    - lecteur sd pour stocker les fichier wave
    - me reste 1 ou 2 sortie de libre.

    Le typon fait 5x10cm soit 2$ pièce sur http://smart-prototyping.com/Prototyping-S...rototyping.html
    Je vais surement en lancer 10, si tu veux je peux t'en revendre.

    Le dernier truc qui me bloquait c'est que je voulais intégrer un ampli audio mais j'ai pas trouvé de schéma d'ampli 12v basic.

    Ca donne ca comme proto :

    [url="https://www.youtube.com/watch?v=B-z40AMdjqU"]https://www.youtube.com/watch?v=B-z40AMdjqU[/url]

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 337__600x600_img_1702_b

    Le dernier truc c'est que j'ai ajouté un connecteur SPI pour brancher un émeteur/récepteur 2.4ghz.
    http://www.ebay.com/itm/2pcs-2-4GHz-NRF24L01-Antenna-Wireless-Transceiver-Module-For-Microcontrol-/131150340684

    J'avais besoin de place du coup le SD sera un module à part :
    http://www.ebay.com/itm/Slot-Socket-Reader-SD-Card-Module-For-Arduino-ARM-MCU-Read-And-Write-SPI-Port-/171129580465
    pic-pac
    pic-pac
    ecrou or
    ecrou or


    Messages : 663
    Date d'inscription : 20/06/2011
    Age : 43
    Localisation : Issoire (63)

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par pic-pac Mer 26 Mar - 11:25

    ju de tomate a écrit:Comme dit par MP à Droopaille je suis en train de faire le même type de bricolage :

    J'ai fait un typon pour ce bidule avec comme caractéristiques :
    - pas de carte arduino, j'ai ré intégré directement un atmega c'est beaucoup plus économique et compact que de prendre une carte arduino et de fair eun shield.
    - j'ai mis une entré tx/rx comme sur les arduino mini donc ca se programme exactement comme une carte arduino sauf qu'il faut un module comme ca pour le brancher :
    http://www.ebay.com/itm/3-3V-5-5V-FT232RL-...=item58a481198e
    - j'ai mis tous ce qui est nécessaire sur une carte arduino : bouton reset, led on, quartz.
    - sortie i2c. J'ai mis ca surtout pour brancher un écran lcd
    - sortie pr 3 boutons (haut/bas/ok)
    - sortie pour faux pain de c4 pour les scénarios bombes
    - sortie avec filtre audio pour jouer des son en wave à la counter strike
    - lecteur sd pour stocker les fichier wave
    - me reste 1 ou 2 sortie de libre.

    Le typon fait 5x10cm soit 2$ pièce sur http://smart-prototyping.com/Prototyping-S...rototyping.html
    Je vais surement en lancer 10, si tu veux je peux t'en revendre.

    Le dernier truc qui me bloquait c'est que je voulais intégrer un ampli audio mais j'ai pas trouvé de schéma d'ampli 12v basic.

    Ca donne ca comme proto :

    https://www.youtube.com/watch?v=B-z40AMdjqU

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 337__600x600_img_1702_b

    Le dernier truc c'est que j'ai ajouté un connecteur SPI pour brancher un émeteur/récepteur 2.4ghz.
    http://www.ebay.com/itm/2pcs-2-4GHz-NRF24L01-Antenna-Wireless-Transceiver-Module-For-Microcontrol-/131150340684

    J'avais besoin de place du coup le SD sera un module à part :
    http://www.ebay.com/itm/Slot-Socket-Reader-SD-Card-Module-For-Arduino-ARM-MCU-Read-And-Write-SPI-Port-/171129580465

    pas mal, mais tu peux nous mettre un peu plus de détails sur le fonctionnement de ta création, notamment l’émetteur récepteur 2,4Ghz.
    Il va falloir que je me penche sur les circuits, ce sera plus simple que de les créer avec des plaquettes à pastilles, d’ailleurs il vaut mieux en prendre 30 que 25 c'est moins cher lol.
    tu utilises quoi comme ATMEGA?? et comment le charges tu sans Arduino?? car moi je me crée une plaquette ou je mets mon ATMEGA précédemment chargé avec mon arduino et j'ai une plaquette pour un peu moins cher qu'un arduino.
    ju de tomate
    ju de tomate
    vis rouillée
    vis rouillée


    Messages : 37
    Date d'inscription : 24/03/2014
    Age : 41
    Localisation : Besancon

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par ju de tomate Mer 26 Mar - 12:41

    J'ai pas encore programmé le recepteur, je verai après. Mais je prévois la possibilité de le brancher.

    Les typon par 10 reviennent à 3$ l'unité. Ca vaut pas le cout de se priver !

    Je prend des Atmega 328. Je les programmes de la même manière que sur un arduino mini.
    avec un FTDI USB to TTL Serial Adapter
    droopaille
    droopaille
    boulon platine
    boulon platine


    Messages : 2621
    Date d'inscription : 03/04/2011
    Age : 49
    Localisation : Vitré (35)

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par droopaille Mer 26 Mar - 13:12

    ça sert à quoi le lecteur SD ?

    et va falloir que tu tutorises pour la comm 2.4GHz, parce que le peu que j'ai lu, j'ai rien compris


    _________________
    Toutes mes créations
    pic-pac
    pic-pac
    ecrou or
    ecrou or


    Messages : 663
    Date d'inscription : 20/06/2011
    Age : 43
    Localisation : Issoire (63)

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par pic-pac Mer 26 Mar - 13:20

    sur la carte SD tu peux mettre des sons wav ou des MP3 pour lancer des sons depuis ton arduino, afin d’émettre un bruit d'explosion ou un pouet pouet, à la fin du compte à rebours
    ju de tomate
    ju de tomate
    vis rouillée
    vis rouillée


    Messages : 37
    Date d'inscription : 24/03/2014
    Age : 41
    Localisation : Besancon

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par ju de tomate Mer 26 Mar - 14:03

    pic-pac a écrit:sur la carte SD tu peux mettre des sons wav ou des MP3 pour lancer des sons depuis ton arduino, afin d’émettre un bruit d'explosion ou un pouet pouet, à la fin du compte à rebours
    Tout a fait. Le but est de faire "parler" le machin.
    J'évoquais même à Droupaille de brancher le machin à un talkie pour que le machin puisse annoncer par radio des choses : exemple : Red team take point B...etc

    La com 2.4Ghz arrivera par la suite.
    Si je pouvais déja faire fonctionner le truc ce serait top.

    L'autre utilisation de la carte SD serait de mettre dessus les scénarios.
    J'entends par un scénario une liste d'instruction permettant de définir le scénario et les phases de jeu. Un espèce de language à inventer et qui permettrait à n'importe qui de créer des scénarios.
    En gros dans l'arduino il y aurait les instructions pour traiter et lire le scénario présent dans la carte SD.
    Comme ca n'importe qui pourrait créer des programmes (sous forme d'un txt par exemple).
    Au démarage du machin, ca lirait les scénarios présents dans la carte SD et un menu permettrait de choisir le scénario. Puis après sélection du scénario ca vérifierait s'il y a pas d'erreur de syntaxe puis ca le lancerait.
    Ca rendrait le truc vraiment sympa mais ca dépasse de loin mes compétences de programmation.
    pic-pac
    pic-pac
    ecrou or
    ecrou or


    Messages : 663
    Date d'inscription : 20/06/2011
    Age : 43
    Localisation : Issoire (63)

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par pic-pac Mer 26 Mar - 15:12

    ju de tomate a écrit:L'autre utilisation de la carte SD serait de mettre dessus les scénarios.
    J'entends par un scénario une liste d'instruction permettant de définir le scénario et les phases de jeu. Un espèce de language à inventer et qui permettrait à n'importe qui de créer des scénarios.
    En gros dans l'arduino il y aurait les instructions pour traiter et lire le scénario présent dans la carte SD.
    Comme ca n'importe qui pourrait créer des programmes (sous forme d'un txt par exemple).
    Au démarage du machin, ca lirait les scénarios présents dans la carte SD et un menu permettrait de choisir le scénario. Puis après sélection du scénario ca vérifierait s'il y a pas d'erreur de syntaxe puis ca le lancerait.
    Ca rendrait le truc vraiment sympa mais ca dépasse de loin mes compétences de programmation.


    pour ça tu peux aussi tout charger sur l'ATMEGA et a l'aide d'un "Menu" tu choisis le type de jeu que tu veux, c'est ce que j'ai fais pour mon checkpoint.
    ju de tomate
    ju de tomate
    vis rouillée
    vis rouillée


    Messages : 37
    Date d'inscription : 24/03/2014
    Age : 41
    Localisation : Besancon

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par ju de tomate Mer 26 Mar - 15:18

    Oui oui bien sur mais ca verrouille le système car seul quelqu'un capable de programmer un arduino peut faire de nouveau scénario.
    En plus on est limité au niveau place par la capacité de la mémoire de l'Arduino alors que si c'est sur une carte SD on a quasiment pas de limite !
    pic-pac
    pic-pac
    ecrou or
    ecrou or


    Messages : 663
    Date d'inscription : 20/06/2011
    Age : 43
    Localisation : Issoire (63)

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par pic-pac Mer 26 Mar - 17:39

    oui c'est vrai mais bon la personnellement le checkpoint il y a déjà 3 modes de jeu, je vais surement rajouter celui de droop en plus, avec 4 modes de jeu je pense que tu as déjà de quoi faire.

    après le problème sera surement d'aller lire sur la carte SD pour charger le code car pour charger l'ATMEGA il te faut un compilateur en C et est ce que c'est possible de récupérer pour le charger j'en sais rien
    ju de tomate
    ju de tomate
    vis rouillée
    vis rouillée


    Messages : 37
    Date d'inscription : 24/03/2014
    Age : 41
    Localisation : Besancon

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par ju de tomate Mer 26 Mar - 18:05

    Dans mon idée, le code sur la carte SD ne sera pas du C donc ne sera pas a compiler.
    Ce serait un language spécifique directement lu par le code présent dans l'arduino.

    Il y a en a plein de scénario, c'est ca qui rend le jeu intéressant. Par exemple déja pour la bombe tu peux faire un désamorcage sur le principe du nombre mystère entre 1 et 100 ou la bombe te dis si c'est plus ou si c'est moins jusqu'à ce que tu trouves. Ou alors faire une bombe ou il faut débrancher des faux pains de C4 comme ici : (les pains de C4 sont remplacé par des intérupteurs) :
    http://www.besancon-sport-airsoft.com/smf/index.php?topic=106.15


    Dernière édition par ju de tomate le Mer 26 Mar - 18:11, édité 1 fois
    pic-pac
    pic-pac
    ecrou or
    ecrou or


    Messages : 663
    Date d'inscription : 20/06/2011
    Age : 43
    Localisation : Issoire (63)

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par pic-pac Mer 26 Mar - 18:09

    oki ça c'est en dehors de mes compétences.
    obelix21
    obelix21
    ecrou argent
    ecrou argent


    Messages : 361
    Date d'inscription : 06/05/2013

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par obelix21 Mer 26 Mar - 18:50

    juju tu peux partager ton code, je voudrais bien faire mumuse avec mon ecran shield dont je ne me sert pas. Razz 
    ju de tomate
    ju de tomate
    vis rouillée
    vis rouillée


    Messages : 37
    Date d'inscription : 24/03/2014
    Age : 41
    Localisation : Besancon

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par ju de tomate Mer 26 Mar - 20:22

    Voila :
    Code:
    //Sample using LiquidCrystal library
    #include <LiquidCrystal.h>
     
    /*******************************************************
     
    This program will test the LCD panel and the buttons
    Mark Bramwell, July 2010
     
    ********************************************************/
     
    // select the pins used on the LCD panel
    LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
     
    // define some values used by the panel and buttons
    int lcd_key     = 0;
    int adc_key_in  = 0;
    #define btnRIGHT  0
    #define btnUP     1
    #define btnDOWN   2
    #define btnLEFT   3
    #define btnSELECT 4
    #define btnNONE   5
     
    // read the buttons
    int read_LCD_buttons()
    {
     adc_key_in = analogRead(0);      // read the value from the sensor
     // my buttons when read are centered at these valies: 0, 144, 329, 504, 741
     // we add approx 50 to those values and check to see if we are close
     if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result
    /*
     // For V1.1 us this threshold
     if (adc_key_in < 50)   return btnRIGHT;  
     if (adc_key_in < 250)  return btnUP;
     if (adc_key_in < 450)  return btnDOWN;
     if (adc_key_in < 650)  return btnLEFT;
     if (adc_key_in < 850)  return btnSELECT;  
    */
     // For V1.0 comment the other threshold and use the one below:

     if (adc_key_in < 50)   return btnRIGHT;  
     if (adc_key_in < 195)  return btnUP;
     if (adc_key_in < 380)  return btnDOWN;
     if (adc_key_in < 555)  return btnLEFT;
     if (adc_key_in < 790)  return btnSELECT;    

     return btnNONE;  // when all others fail, return this...
    }

    long tpause = 0; // variable nécessaire au pause
    bool apause = false ;

    bool pause(long dure) // programme de pause
    {
      
      if (apause == false ) {
          tpause = millis() ;
          apause = true ;
          return LOW ;
      }
      else if (tpause + dure < millis() ) {
          apause = false ;
          return HIGH ;    
      }
      else
          return LOW ;      
    }

    bool flash( int flash_speed = 2000) {
      return ( millis()/flash_speed/2*2 == millis()/flash_speed ) ? true : false ;
    }

    int led_pin[] = {2,3} ;
    bool led[] = { false, false } ;

    //on initialise les variables de menu
    int gmenu = 0;
    int menu = 0;

    String ligne1, ligne2 ; // variable nécessaire à l'affichage
     
    bool equipe[] = {0,0 }  ;
    unsigned long int score[] = {0,0 }  ;
    unsigned long int tentative = 0;
    unsigned long int delais = 5000;
    unsigned long int last_millis = 0 ;

    void setup()
    {
     lcd.begin(16, 2);              // start the library
     lcd.setCursor(0,0);
     lcd.print("Push the buttons"); // print a simple message
     
     pinMode(led_pin[0], OUTPUT);
     pinMode(led_pin[1], OUTPUT);  
    }
      
    void loop()
    {
      // on initialise les variables d'affichage
      ligne1 = String("");  ligne2 = String("");  

      lcd_key = read_LCD_buttons();  // read the buttons
      
      if (gmenu == 0 ) {
        
        if (menu==0)  { //on affiche l'écran d'accueil et on passe au bout de 2 secondes
           ligne1= String("[ Airsoft  fun ]");
           ligne2= String("by Ju de tomate");
          if (pause(1000))   menu=10;
        }
        else if (menu==10)  {
          ligne1= String("Appuyer pour");
          ligne2= String("continuer...");
          if ( lcd_key == btnRIGHT || lcd_key == btnUP || lcd_key == btnDOWN || lcd_key == btnLEFT || lcd_key == btnSELECT ) menu=20;
        }
        else if (menu==20) {
          
          for (int i=0; i < 2 ; i++) {
            if (equipe[i]==1) {
              led[i]= flash(1000);  led[!i]= false;
              score[i]+=millis()-last_millis;
            }  
            else
              led[i]=0;
          }
          ligne1= String("blue:" + String(score[0]/1000) + "/red:" + String(score[1]/1000) );      

          if ( (lcd_key == btnLEFT && !equipe[0]) || (lcd_key == btnRIGHT && !equipe[1]) ) {                        
              if        (lcd_key == btnLEFT ) led[0]= flash(100);
              else if   (lcd_key == btnRIGHT ) led[1]= flash(100) ;
              if (tentative==0) tentative = millis() ;
              else if (millis() >= tentative + delais ) {
                 if        (lcd_key == btnLEFT ) { equipe[0]=1; equipe[1]=0; }
                 else if   (lcd_key == btnRIGHT ) { equipe[0]=0; equipe[1]=1; }  
                 tentative = 0 ;
              }
              
              ligne2= String("[" );
              for (int i=0; i <= ((millis()-tentative)*14)/(delais) ; i++) { ligne2+="=" ; }
              ligne2+= String("]" );
                    
          }
          else
             tentative = 0 ;
          ligne2+= " ";
        }
        
      }

      last_millis =millis();
      lcd.setCursor(0, 0);
      lcd.print(ligne1 + "                    ");  
      lcd.setCursor(0, 1);
      lcd.print(ligne2 + "                    ");
      
      digitalWrite(led_pin[0], led[0]);
      digitalWrite(led_pin[1], led[1]);  
    }

    Droopaille, le CI que j'ai mis à la place des relais c'est un ULN2003AN.
    Branché comme ca :
    [Droop] Respawn type Battlefield flag (arduino) - Page 2 WYuH9
    obelix21
    obelix21
    ecrou argent
    ecrou argent


    Messages : 361
    Date d'inscription : 06/05/2013

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par obelix21 Mer 26 Mar - 20:57

    merci beaucoup
    obelix21
    obelix21
    ecrou argent
    ecrou argent


    Messages : 361
    Date d'inscription : 06/05/2013

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par obelix21 Mer 26 Mar - 21:38

    alors pour le moment on a un menu d'acceuil, une validation BP bleu ou rouge pour obtenir l'ecran de jeu.
    un appui prolongé sur une couleur lance le bargraphe de gauche à droite et lance le compteur de la couleur.
    un appui prolongé sur l'autre couleur lance le bargraphe de gauche à droite arrete le compteur de la couleur précedente et lance le compteur de la nouvelle couleur.

    le BP Reset ramene au menu d'acceuil








    l'inversion du bargraphe de droite à gauche sur une des couleur serait un réel plus.

    ça serait sympas de ne pas avoir à valider dans le menu d'accueuil pour obtenir l'ecran de jeu, mais qu'on y arrive une fois le message d'accueuil terminé.

    tu en penses quoi juju?
    droopaille
    droopaille
    boulon platine
    boulon platine


    Messages : 2621
    Date d'inscription : 03/04/2011
    Age : 49
    Localisation : Vitré (35)

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par droopaille Mer 26 Mar - 23:05

    pfffffffiuuu, z'êtes partis trop loin pour moi

    j'ai regardé un peu ton code Ju, j'y comprends vraiment que dalle, trop de fonctions inconnues pour moi
    en même temps la description ressemble presque à mon truc, les compteurs en plus


    Bon ben en attendant mon code fonctionne avec barre progressive et dégressive.
    Me restera les compteurs à gérer et je pourrais lancer mes boitiers.


    Code:

      // Déclaration du matériel (écran)

            #include <LiquidCrystal.h>
            LiquidCrystal lcd(8, 9, 10, 11, 12, 13);  // set up the LCD's number of columns and rows:


      // Déclaration des variables

        int temps = 3000;  //définition du temps d'appui en ms
        int ledPin1 = 6;     
        int boutonPin1 = 3;
        int ledPin2 = 7;     
        int boutonPin2 = 4;
        int BP_reset = 2;

        float tempo = temps / 16;    //tempo pour la barre de progression

        long debut_appui1;
        long debut_appui2;
        int etat_bouton1;
        int etat_bouton2;
        int reset;
        int etat_led1 = LOW;
        int etat_led2 = LOW;
        int rouge = 0;
        int bleu = 0;

     
    void setup(){   

    // Déclaration des E/S
         
        pinMode(ledPin1, OUTPUT);     
        pinMode(boutonPin1, INPUT);
        pinMode(ledPin2, OUTPUT);     
        pinMode(boutonPin2, INPUT);
        pinMode(BP_reset, INPUT);

    // Intro écran

        lcd.begin(16, 2);
        lcd.clear();
        lcd.setCursor(3, 0 );
        lcd.print( "BATTLEFIELD" );
        delay(600);
        lcd.setCursor( 4, 1 );
        lcd.print( "By DROOP" );
        delay(2000);
        lcd.clear();
        lcd.setCursor(5, 0 );
        lcd.print( "Ready" );
        lcd.setCursor(0, 0 );
       
    } //fin SETUP


    void loop(){

    //lecture de l'état des boutons

        etat_bouton1 = digitalRead(boutonPin1);
        etat_bouton2 = digitalRead(boutonPin2);
        reset = digitalRead(BP_reset);


    // Appui bouton ROUGE

        if (etat_bouton1 == HIGH) {
              debut_appui1 = millis();
             
              while(etat_bouton1 == HIGH ) {
                    delay (tempo);
                    if (bleu == 0){lcd.print ((char)255);}
                    if (bleu == 1){
                        for (int i = 0; i<17; i++){
                            lcd.setCursor((16-i),1);
                            lcd.print(" ");
                            delay (tempo);
                            etat_bouton1 = digitalRead(boutonPin1);
                            if (etat_bouton1 == LOW){
                                Barre();
                                break;}
                        }  //end for
                    }  //end if
                 
                    etat_bouton1 = digitalRead(boutonPin1);
                   
                    if ((millis() - debut_appui1) >= temps && bleu == 0 ){
                          rouge = 1;
                          etat_led1 = HIGH;
                          etat_led2 = LOW;
                          digitalWrite(ledPin1, etat_led1);
                          digitalWrite(ledPin2, etat_led2);                     
                          lcd.setCursor(2,0);
                          lcd.print("RESPAWN ROUGE");
                          lcd.setCursor(0,1);
                    }  //end if
                   

                    if ((millis() - debut_appui1) >= temps && bleu == 1 ){
                          bleu = 0;
                          etat_led1 = LOW;                     
                          etat_led2 = LOW;
                          digitalWrite(ledPin1, etat_led1);
                          digitalWrite(ledPin2, etat_led2);
                          lcd.setCursor(0, 0 );
                          lcd.print( "                " ); 
                          lcd.setCursor(5, 0 );
                          lcd.print( "Ready" );     
                          lcd.setCursor(0,1);
                          debut_appui1 = millis();
                    }  //end if

              }  //end while
        }  //end if

                         
    // Appui bouton BLEU

        if (etat_bouton2 == HIGH ){
              debut_appui2 = millis();
             
              while(etat_bouton2 == HIGH ) {
                    delay (tempo);
                    if (rouge == 0){lcd.print ((char)255);}
                    if (rouge == 1){
                        for (int i = 0; i<17; i++){
                            lcd.setCursor((16-i),1);
                            lcd.print(" ");
                            delay (tempo);
                            etat_bouton2 = digitalRead(boutonPin2);
                            if (etat_bouton2 == LOW){
                                Barre();
                                break;}
                        }  //end for
                    }  //end if
                   
                    etat_bouton2 = digitalRead(boutonPin2);

                    if ((millis() - debut_appui2) >= temps && rouge == 0 ){
                          bleu = 1;
                          etat_led1 = LOW;                     
                          etat_led2 = HIGH;
                          digitalWrite(ledPin1, etat_led1);
                          digitalWrite(ledPin2, etat_led2);
                          lcd.setCursor(2,0);
                          lcd.print("RESPAWN BLEU ");
                          lcd.setCursor(0,1);
                    }  //end if
                   
                   
                    if ((millis() - debut_appui2) >= temps && rouge == 1 ){
                          rouge = 0;
                          etat_led1 = LOW;                     
                          etat_led2 = LOW;
                          digitalWrite(ledPin1, etat_led1);
                          digitalWrite(ledPin2, etat_led2);
                          lcd.setCursor(0, 0 );
                          lcd.print( "                " ); 
                          lcd.setCursor(5, 0 );
                          lcd.print( "Ready" );     
                          lcd.setCursor(0,1);
                          debut_appui2 = millis();
                    }  //end if

              }  //end while
             
        }  //end if


    // Appui bouton RESET

        if (reset == HIGH){
              rouge =0;
              bleu =0;
              etat_led1 = LOW;
              etat_led2 = LOW;
              lcd.clear();
              lcd.setCursor(5, 0 );
              lcd.print( "Ready" );               
              digitalWrite(ledPin1, etat_led1);
              digitalWrite(ledPin2, etat_led2);
        }  //end if

       
        lcd.setCursor (0,1);
        if (bleu == 0 && rouge == 0) {lcd.print ("                ");}
        else {Barre();
        } //  end else
        lcd.setCursor(0,1);

    }  //fin LOOP


    void Barre() {
            lcd.setCursor(0,1);
            lcd.print ((char)255);
            lcd.print ((char)255);
            lcd.print ((char)255);
            lcd.print ((char)255);
            lcd.print ((char)255);
            lcd.print ((char)255);
            lcd.print ((char)255);
            lcd.print ((char)255);
            lcd.print ((char)255);
            lcd.print ((char)255);
            lcd.print ((char)255);
            lcd.print ((char)255);
            lcd.print ((char)255);
            lcd.print ((char)255);
            lcd.print ((char)255);
            lcd.print ((char)255);
    }  //end void



    _________________
    Toutes mes créations
    ju de tomate
    ju de tomate
    vis rouillée
    vis rouillée


    Messages : 37
    Date d'inscription : 24/03/2014
    Age : 41
    Localisation : Besancon

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par ju de tomate Jeu 27 Mar - 8:23

    oui pour la barre. Il pourrait même être question de devoir desactiver la couleur de l'équipe adverse avant de pouvoir activer la sienne.
    Un peu comme si on devait descendre le drapeau ennemi avant de pouvoir monter son drapeau.
    droopaille
    droopaille
    boulon platine
    boulon platine


    Messages : 2621
    Date d'inscription : 03/04/2011
    Age : 49
    Localisation : Vitré (35)

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par droopaille Jeu 27 Mar - 12:55

    c'est le cas dans mon code
    si base blanche, activation avec barre progressive, si base de couleur, désactivation avec barre dégressive et activation dans la foulée avec barre progressive
    en cas de lâcher du bouton en cours, l'état reste tel qu'il était




    _________________
    Toutes mes créations
    ju de tomate
    ju de tomate
    vis rouillée
    vis rouillée


    Messages : 37
    Date d'inscription : 24/03/2014
    Age : 41
    Localisation : Besancon

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par ju de tomate Jeu 27 Mar - 15:00

    Ca me mets vidéo privé donc impossible de regarder la vidéo !
    droopaille
    droopaille
    boulon platine
    boulon platine


    Messages : 2621
    Date d'inscription : 03/04/2011
    Age : 49
    Localisation : Vitré (35)

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par droopaille Jeu 27 Mar - 17:33

    elle était encore en upload, c'est bon maintenant


    _________________
    Toutes mes créations
    pic-pac
    pic-pac
    ecrou or
    ecrou or


    Messages : 663
    Date d'inscription : 20/06/2011
    Age : 43
    Localisation : Issoire (63)

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par pic-pac Jeu 27 Mar - 18:17

    Pas mal, je pense que je vais rajouter ce petit mode de jeu sur mon checkpoint.
    ju de tomate
    ju de tomate
    vis rouillée
    vis rouillée


    Messages : 37
    Date d'inscription : 24/03/2014
    Age : 41
    Localisation : Besancon

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par ju de tomate Jeu 27 Mar - 18:28

    En effet c'est pas mal comme ca.
    droopaille
    droopaille
    boulon platine
    boulon platine


    Messages : 2621
    Date d'inscription : 03/04/2011
    Age : 49
    Localisation : Vitré (35)

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par droopaille Jeu 27 Mar - 20:58

    Bon je suis en train de développer un bout de code pour pouvoir régler la tempo avec un potar externe
    à partir des exemples ici
    http://fr.openclassrooms.com/sciences/cours/arduino-pour-bien-commencer-en-electronique-et-en-programmation/exemple-d-utilisation-1

    j'arrive à afficher une valeur entre 0 et 1023 en fonction du potar mais dès que j'essaye de faire un produit en croix pour remettre cette valeur entre 0 et 100 par exemple, ça part en sucette grave, il me met des valeurs négatives au milieu de la course du potar, des mini maxi inversés ...
    j'ai essayer de déclarer les variables de façon différente mais rien ... au mieux j'ai un truc entre 0 et 100 mais ou milieu rien, 0 ou 100.


    _________________
    Toutes mes créations
    ju de tomate
    ju de tomate
    vis rouillée
    vis rouillée


    Messages : 37
    Date d'inscription : 24/03/2014
    Age : 41
    Localisation : Besancon

    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par ju de tomate Ven 28 Mar - 7:34

    Moi pour la tempo sur ma bombe j'ai fait une page ou on peut régler la durée de la minuterie.

    https://www.youtube.com/watch?v=aaSglWrrqAQ

    Contenu sponsorisé


    [Droop] Respawn type Battlefield flag (arduino) - Page 2 Empty Re: [Droop] Respawn type Battlefield flag (arduino)

    Message par Contenu sponsorisé


      La date/heure actuelle est Dim 24 Nov - 11:52