Airsoft Krispies

Bonjour à tous et bienvenue


    Valise INMARSAT

    Partagez
    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Valise INMARSAT

    Message par pic-pac le Jeu 13 Mar - 16:14

    Salut à tous,

    Mon projet de Checkpoint étant terminé, je veux me fabriquer une Valise INMARSAT.

    voici le petit code que je vient d’écrire.

    1 bouton poussoir, avec un appuie de 3 secondes sur le bouton pour lancer la valise qui va recevoir un message (ce message est modifiable à la fin du script) la pour l'exemple j'ai mis des coordonnées de quadrillage de notre terrain (D4).

    Code:

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


    int boutonPin1 = 4;    
    int temps_defini = 3000;
    boolean variable1 = false;
    int etat_bouton1;
    int dernier_etat_bouton1 = LOW;
    unsigned long debut_appui1;

    void setup() {

    pinMode(boutonPin1, INPUT);
                    
                    lcd.begin(16, 2);
     lcd.clear();
                    lcd.setCursor(1, 0 );
                    lcd.print("Valise INMARSAT");
                    lcd.setCursor( 5, 1 );
                    lcd.print("Airsoft");
                    delay(2000);
                    lcd.setCursor(1, 0 );
                    lcd.print("Valise INMARSAT");
                    lcd.setCursor( 3, 1 );
                    lcd.print("BY PIC-PAC");
                    delay(2000);
                    lcd.clear();
                    lcd.setCursor( 0, 0 );
                    lcd.print("Pour initialiser");
                    lcd.setCursor(1, 1);
                    lcd.print("Appuyez bouton");
          
       }
      void loop() {
     
          etat_bouton1 = digitalRead(boutonPin1);

     if (etat_bouton1 == HIGH && dernier_etat_bouton1 == LOW){      
     debut_appui1 = millis();                                      
     variable1 = true;
      
    }
        
    if ( variable1 == true && etat_bouton1 == HIGH && dernier_etat_bouton1 == HIGH){    
                                                                                      
     if ((millis() - debut_appui1) >= temps_defini){
                            lcd.clear();
                            lcd.setCursor(1, 0);
                            lcd.print("Initialisation");
                            lcd.setCursor(4, 1);
     lcd.print("en cours");
                            delay(5000);
                            lcd.clear();
                                for (int i = 0 ; i < 16 ; i++){
                                    delay(1000);        
                                    lcd.setCursor(3, 0);      
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);        
                                    lcd.setCursor(0, 1);
                                    lcd.print((char)255);
                                    i=i+1;
                                    lcd.setCursor(3, 0);      
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);        
                                    lcd.setCursor(1, 1);
                                    lcd.print((char)255);
                                    i=i+1;
                                    lcd.setCursor(3, 0);      
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);        
                                    lcd.setCursor(2, 1);
                                    lcd.print((char)255);
                                    i=i+1;
                                    lcd.setCursor(3, 0);      
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);        
                                    lcd.setCursor(3, 1);
                                    lcd.print((char)255);
                                    i=i+1;
                                    lcd.setCursor(3, 0);      
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);        
                                    lcd.setCursor(4, 1);
                                    lcd.print((char)255);
                                    i=i+1;
                                    lcd.setCursor(3, 0);      
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);        
                                    lcd.setCursor(5, 1);
                                    lcd.print((char)255);
                                    i=i+1;
                                    lcd.setCursor(3, 0);      
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);        
                                    lcd.setCursor(6, 1);
                                    lcd.print((char)255);
                                    i=i+1;
                                    lcd.setCursor(3, 0);      
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);        
                                    lcd.setCursor(7, 1);
                                    lcd.print((char)255);
                                    i=i+1;
                                    lcd.setCursor(3, 0);      
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);        
                                    lcd.setCursor(8, 1);
                                    lcd.print((char)255);
                                    i=i+1;
                                    lcd.setCursor(3, 0);      
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);        
                                    lcd.setCursor(9, 1);
                                    lcd.print((char)255);
                                    i=i+1;
                                    lcd.setCursor(3, 0);      
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);        
                                    lcd.setCursor(10, 1);
                                    lcd.print((char)255);
                                    i=i+1;
                                    lcd.setCursor(3, 0);      
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);        
                                    lcd.setCursor(11, 1);
                                    lcd.print((char)255);
                                    i=i+1;
                                    lcd.setCursor(3, 0);      
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);        
                                    lcd.setCursor(12, 1);
                                    lcd.print((char)255);
                                    i=i+1;
                                    lcd.setCursor(3, 0);      
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);        
                                    lcd.setCursor(13, 1);
                                    lcd.print((char)255);
                                    i=i+1;
                                    lcd.setCursor(3, 0);      
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);        
                                    lcd.setCursor(14, 1);
                                    lcd.print((char)255);
                                    i=i+1;
                                    lcd.setCursor(3, 0);      
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);        
                                    lcd.setCursor(15, 1);
                                    lcd.print((char)255);
                                    i=i+1;
                                    lcd.setCursor(3, 0);      
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);        
                                    lcd.setCursor(16, 1);
                                    lcd.print((char)255);
                                    i=i+1;
                                    lcd.setCursor(0, 0);
                                }
                            lcd.clear();
                            lcd.setCursor(2, 0);
                            lcd.print("Rendez Vous");
                            lcd.setCursor(5, 1);
     lcd.print("en D4");
                            }
    }
                            
     dernier_etat_bouton1 = etat_bouton1;
    }

    les photos de ce qu'avait fait un pote, je veux partir sur la même base mais avec un Arduino (oui je sais ENCOREEEEE!!!!)




    avatar
    droopaille
    boulon platine
    boulon platine

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

    Re: Valise INMARSAT

    Message par droopaille le Jeu 13 Mar - 20:38

    t'as pas une vidéo, je comprends pas toute la boucle 1 à 16
    (c'est pour faire clignoter le texte et afficher une barre de progression ?)


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

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

    Re: Valise INMARSAT

    Message par pic-pac le Jeu 13 Mar - 20:47

    oui tout à fait, sinon je ne pouvais pas faire clignoter et avancer la barre en même temps.

    pour la vidéo en fait ce que je veux, c'est juste que l'antenne tourne à un moment donné (pas encore intégré dans le code), je pourrais en faire en faire une demain si tu veux, mais il y aura juste ce qui est écrit dans le code.
    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Valise INMARSAT

    Message par pic-pac le Jeu 13 Mar - 23:26

    et voila une petite vidéo toute simple, ce n'est pas fini je vais modifier le texte et d'autres petits détails

    avatar
    droopaille
    boulon platine
    boulon platine

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

    Re: Valise INMARSAT

    Message par droopaille le Ven 14 Mar - 7:02

    tu trouverais pas ton bonheur avec les fonctions de masquage ici ?
    http://fr.openclassrooms.com/sciences/cours/arduino-pour-bien-commencer-en-electronique-et-en-programmation/se-deplacer-sur-l-ecran-1


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

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

    Re: Valise INMARSAT

    Message par pic-pac le Ven 14 Mar - 11:23

    je vais regarder ça, car les fonctions:

    noDisplay() : fait disparaître le texte

    display() : fait apparaître le texte (s'il y en a évidemment)

    il faut que je regarde si je peux l’intégrer à ma boucle "for", sinon il faut que je trouve comment déplacer le curseur automatiquement sur la deuxième ligne, mais bon le code est un premier jet ce n'est pas le définitif, c'est plus pour présenter un peu le projet que je voudrait faire, sachant que celui m'obligerait à laisser l'arduino dedans (pour ça j'en veux un à pas cher) pour pouvoir changer le code pour donner les nouvelles indications.
    avatar
    droopaille
    boulon platine
    boulon platine

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

    Re: Valise INMARSAT

    Message par droopaille le Ven 14 Mar - 13:02

    vi c'est bien ces fonctions là
    sinon, je crois que quand tu demande à écrire un truc sans préciser l'endroit, il le place directement après le dernier, du coup, ta boucle se simplifie vraiment, elle devrait tenir en 4-5 lignes


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

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

    Re: Valise INMARSAT

    Message par pic-pac le Ven 14 Mar - 13:49

    le problème, le "for" étant une boucle comme j’écris la ligne "lcd.setCursor(0, 1);" la boucle reprend à écrire sur le premier caractère de la deuxième ligne, donc il remplace à chaque fois le premier caractère, mais il doit y avoir des solutions à trouver sur Google.

    il me semble avoir lu un truc mais pas eu le temps de tester, mais bon je vais me pencher dessus.

    alors que ce code dit au curseur ou se replacer.
    Code:
    delay(1000);       
                                    lcd.setCursor(3, 0);     
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);       
                                    lcd.setCursor(0, 1);
                                    lcd.print((char)255);
                                    i=i+1;
                                    lcd.setCursor(3, 0);     
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);       
                                    lcd.setCursor(1, 1);
                                    lcd.print((char)255);
                                    i=i+1;

    La le problème c'est plus le moteur à faire tourner car la sortie manque d'Ampérage.
    avatar
    Krispies
    Admin

    Messages : 3822
    Date d'inscription : 16/08/2009
    Age : 50
    Localisation : VERS-Pont du gard

    Re: Valise INMARSAT

    Message par Krispies le Ven 14 Mar - 16:59

    Tu vas devoir passer par du relayage..


    _________________

    http://airsoft-krisp.e-monsite.com/
    http://www.facebook.com/pages/Krispies-Team/470577369635210
    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Valise INMARSAT

    Message par pic-pac le Ven 14 Mar - 17:56

    je pense mais je n'y connais pas grand chose en relai, mais je pense qu'a force de chercher je vais bien me trouver ma solution!!!
    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Valise INMARSAT

    Message par pic-pac le Ven 14 Mar - 19:12

    et voila pour diminuer le code

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

    int boutonPin1 = 4;   
    int temps_defini = 3000;
    boolean variable1 = false;
    int etat_bouton1;
    int dernier_etat_bouton1 = LOW;
    unsigned long debut_appui1;
    int moteur = 5;
    int etat_moteur = LOW;


    void setup() {

    pinMode(boutonPin1, INPUT);
    pinMode(moteur, OUTPUT);
    digitalWrite(moteur, etat_moteur);               
                    lcd.begin(16, 2);
          lcd.clear();
                    lcd.setCursor(1, 0 );
                    lcd.print("Valise INMARSAT");
                    lcd.setCursor( 5, 1 );
                    lcd.print("Airsoft");
                    delay(2000);
                    lcd.setCursor(1, 0 );
                    lcd.print("Valise INMARSAT");
                    lcd.setCursor( 3, 1 );
                    lcd.print("BY PIC-PAC");
                    delay(2000);
                    lcd.clear();
                    lcd.setCursor( 0, 0 );
                    lcd.print("Pour initialiser");
                    lcd.setCursor(1, 1);
                    lcd.print("Appuyez bouton");
         
      }
      void loop() {
     
          etat_bouton1 = digitalRead(boutonPin1);

          if (etat_bouton1 == HIGH && dernier_etat_bouton1 == LOW){     
             debut_appui1 = millis();                                     
             variable1 = true;
              
    }
       
    if ( variable1 == true && etat_bouton1 == HIGH && dernier_etat_bouton1 == HIGH){   
                                                                                     
             if ((millis() - debut_appui1) >= temps_defini){
                            lcd.clear();
                            lcd.setCursor(1, 0);
                            lcd.print("Initialisation");
                            lcd.setCursor(4, 1);
             lcd.print("en cours");
                            etat_moteur = HIGH;
                            delay(5000);
                            lcd.clear();
                                for (int i = 0 ; i < 16 ; i++){
                                    lcd.setCursor(3, 0);     
                                    lcd.print("Reception");
                                    delay(1000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("                ");
                                    delay(1000);       
                                    lcd.setCursor(i, 1);
                                    lcd.print((char)255);
                                }
                            lcd.clear();
                            lcd.setCursor(2, 0);
                            lcd.print("Rendez Vous");
                            lcd.setCursor(5, 1);
             lcd.print("en D4");
                            etat_moteur = LOW;
                            }
    }
                           
       dernier_etat_bouton1 = etat_bouton1;
    }

    il ne me reste plus qu'à me pencher sur les relais, mais je vais demander à "Obelix21" 2 ou 3 conseils vu qu'il en à utilisé sur sa tourelle
    avatar
    obelix21
    ecrou argent
    ecrou argent

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

    Re: Valise INMARSAT

    Message par obelix21 le Ven 14 Mar - 22:42

    Voilà un petit schéma de cablage qui utilise 2 sorties de l'arduino



    Comme PCB relais j'utilise ça:



    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Valise INMARSAT

    Message par pic-pac le Ven 14 Mar - 23:24

    Cool je vais regarder ça d'un peu plus prêt et a ma payes a nous deux eBay je vais commander
    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Valise INMARSAT

    Message par pic-pac le Ven 14 Mar - 23:37

    Ça irait Ceci
    Sachant que je vais l'alimenter avec je pense soit une pile 4,5V soit une 9V suivant la vitesse de rotation
    avatar
    obelix21
    ecrou argent
    ecrou argent

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

    Re: Valise INMARSAT

    Message par obelix21 le Ven 14 Mar - 23:41

    oui, ça ira très bien
    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Valise INMARSAT

    Message par pic-pac le Sam 15 Mar - 11:24

    cool car le prix me convient parfaitement
    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Valise INMARSAT

    Message par pic-pac le Dim 16 Mar - 2:01

    quelle est la différence entre les 5V et les 12V
    5V
    12V
    étant donné qu'il peuvent avoir les mêmes alimentations??
    je pense que je peux en prendre un avec une seule voix étant donné que je n'ai besoin que de faire tourner mon moteur que dans un seul sens.
    avatar
    droopaille
    boulon platine
    boulon platine

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

    Re: Valise INMARSAT

    Message par droopaille le Dim 16 Mar - 10:19

    pas de différence (sur la photo en tout cas) ce sont les mêmes relais.
    5 ou 12V normalement c'est la tension d'alim de la bobine, après tu peux passer en 230V 10A sur la puissance


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

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

    Re: Valise INMARSAT

    Message par pic-pac le Dim 16 Mar - 18:07

    donc il vaut mieux que je prenne des 5V vu que je les mets au cul d'un arduino qui sortira du 5V max
    avatar
    droopaille
    boulon platine
    boulon platine

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

    Re: Valise INMARSAT

    Message par droopaille le Dim 16 Mar - 18:52

    d'après les photos, les deux sont en 5V


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

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

    Re: Valise INMARSAT

    Message par pic-pac le Dim 16 Mar - 19:13

    oui autant pour moi j'ai copié 2 en 5V, mais bon je vais prendre un simple et un double, vu que j'ai besoin de faire tourner le moteur que dans un sens, je mettrais le simple et je me garderais le double pour si un jour une autre idée me trotte dans la tête!!!!

    Contenu sponsorisé

    Re: Valise INMARSAT

    Message par Contenu sponsorisé


      La date/heure actuelle est Ven 18 Aoû - 20:21