Programmation GPS
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Programmation GPS



  1. #1
    lebidoc

    Programmation GPS


    ------

    Bonjour,
    je programme actuellement une arduino, pour qu'il reçoit une trame GPS avec son protocole NMEA
    Cependant, le GPS n'a pas l'air de me comprendre :

    Code:
    #include <SoftwareSerial.h>
     #include <string.h>
     #include <ctype.h>
    #include <MsTimer2.h> 
    
    SoftwareSerial GPS(5,6);
    
    boolean ok;
    
    void okay()
    {
     Serial.println(ok); 
     ok=1; 
      Serial.println(ok);
      
      
    }
    
    
    
    int c;
    char trame[300]=" ";
    
    int conta=0;
    
    void envoiGPS (String chaineEnvoi)
    {
      String checksumChaine=String (checkSum(chaineEnvoi),HEX);
      chaineEnvoi="$"+chaineEnvoi+"*"+checksumChaine+char(0xD)+char(0xA);
      
     
      
      GPS.flush();
      GPS.print(chaineEnvoi);
    }
    
    int checkSum (String chaineTest)
    {
      int test=0;
     
      for(int i=0; i<chaineTest.length(); i++)
      {
        char c = chaineTest.charAt(i);
        
        if(test ==0)
        {
            test = byte(c);
        }
        else
        {
            test=test ^byte(c);
        }
      }
      
      return test;
      
    }  
    
    
    
    
    
    
    void setup() 
    {
      while (!Serial);
      Serial.begin(115200);
      GPS.begin(9600); 
      
      MsTimer2::set(2000, okay); 
       MsTimer2::start();
    
    envoiGPS("PSRF103,00,00,00,01");//desactive GGA
    envoiGPS("PSRF103,01,00,00,01");//GLL
    envoiGPS("PSRF103,02,00,00,01"); //GSA
    envoiGPS("PSRF103,03,00,00,01");//GSV
    envoiGPS("PSRF103,04,00,00,01");//VTG
    envoiGPS("PSRF103,05,00,00,01");//RMC
     
     GPS.flush();
      
    }
    
         
    void loop() 
    {
      
       GPS.flush();
    if(ok==1)
    {
     
    envoiGPS("PSRF103,00,01,00,01");//réactive GGA
      
      while(GPS.available()) 
      {        
       
                c= GPS.read();
                
                
                  trame[conta]=c;
                 
          
             Serial.write(trame[conta]);
            
           
            conta++;
              
              
              if (c==13)
              {
                conta=0;
               
              }   
      }
      ok=0;  
    }
    }

    Le code doit recevoir une trame GGA toute les deux secondes mais je vois pas du tout ce qui ne va pas..

    Merci

    -----

  2. #2
    lebidoc

    Re : Programmation GPS

    personne ?

Discussions similaires

  1. quelle est la difference entre programmation procedurale et la programmation orientee objet
    Par invite430abc62 dans le forum Programmation et langages, Algorithmique
    Réponses: 9
    Dernier message: 27/01/2016, 12h34
  2. programmation pic
    Par invite53567d99 dans le forum Électronique
    Réponses: 2
    Dernier message: 22/03/2013, 18h50
  3. programmation en PIC C
    Par malmou dans le forum Électronique
    Réponses: 10
    Dernier message: 07/03/2013, 06h32
  4. help me =>programmation
    Par invitec3f7c029 dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 28/12/2010, 21h44
  5. programmation PIC
    Par invitef9719e91 dans le forum Électronique
    Réponses: 2
    Dernier message: 18/08/2006, 14h38