• ARDUINO programme TEST RTTY BEACON pour TX NTX2B

    /* test RTTY BEACON du module NTX2B
    */
    //définir la pin de sortie vers NTX2B
    #define RADIOPIN 9
    //définir les bibliothèques
    #include <string.h>
    #include <util/crc16.h>
    //définir la taille du texte à transmettre en balise
    char datastring[80];

    void setup(){
      pinMode(RADIOPIN,OUTPUT);
      Serial.begin(9600);
    }

    void loop(){
      snprintf(datastring,80,"$$$$$F6AGV-11,RTTY,TEST,BEACON"); //placer le texte dans datastring
      unsigned int CHECKSUM=gps_CRC16_checksum(datastring); //calcul du checksum pour ce texte
      char checksum_str[6];
      sprintf(checksum_str,"*%04X\n",CHECKSUM);
      strcat(datastring,checksum_str);
      rtty_txstring(datastring);
      
      }

    void rtty_txstring(char*string){
      //envoyer des caractéres d'un octet de 8 bits (byte)
     
      char c;
      c=*string++;
     
      while (c !='\0'){
        rtty_txbyte(c);
        c=*string++;
        }
        }
      
     void rtty_txbyte(char c){
       //envoyer chaque bit d'un caractére
       //le LSB est transmit en premier
       //chaque octet est précédé d'un zéro (start)
       //chaque octet est suivi d'un ou deux un (stop)
       int i;
       rtty_txbit(0);  //start bit
       //envoyer les bits avec LSB en premier
      
       for (i=0;i<7;i++) { //
       if(c&1) rtty_txbit(1);
       else rtty_txbit(0);
      
       c = c>>1;
       }
       rtty_txbit(1); //stop bit
       rtty_txbit(1); //stop bit
      
       }
      
       void rtty_txbit (int bit) {
         if (bit) { 
           // high
           analogWrite(RADIOPIN,110);
          }
         else {
           // low
           analogWrite(RADIOPIN,100);
          }
         
          delayMicroseconds(10000);
          delayMicroseconds(10150);
          /* pour 300 bauds (3370)
          pour 50 bauds (20150)
          */
          }
         
          uint16_t gps_CRC16_checksum (char*string){
            size_t i;
            uint16_t crc;
            uint8_t c;
         
          crc = 0xFFFF;
          //calcul du checksum les deux premiers $$ ne comptent pas
          for(i=2; i <strlen(string);i++) {
            c=string[i];
            crc=_crc_xmodem_update (crc, c);
           }
          
           return crc;
          }
         

    ------------------------------------------------------------

    Petit commentaire :  ce programme écrit par Anthony M0UPU, vous permettra de tester votre émetteur NTX2 ou NTX2B.

    Ainsi que la réception du message "$$$$$F6AGV-11,TEST,RTTY,BEACON". Pour recevoir, cette émission, il vous faut

    un récepteur UHF sur la bande 434 MHz en USB, une antenne verticale quart d'onde (ou 7 éléments pour recevoir des

    émissions de ballons plus lointains). Il vous faut un ordinateur avec le logiciel DL-FLDIGI   HAB ou normal. 

    Ce logiciel vous permet de recevoir d'autres modes numériques utilisés par les ballons haute altitude.

    Je recommande une interface d'isolement entre le PC et le récepteur UHF. Si vous n'en avez pas encore, il suffit

    d'alimenter le récepteur avec une batterie 12 volts. La configuration à placer sur DL-FLDIGI pour recevoir ces trames

    de test en mode balise est  RTTY ---> custom ---> 50 bauds  7 bits ascii  none et 2 bits de stop.

    Ce programme a été testé avec succès, si vous avez une erreur à cause d'une mauvaise librairie, je pourrai vous

    faire parvenir les miennes qui sont dans le programme.

    Merci pour votre participation et vos commentaires.

    Alain F6AGV :   f6agv (@) free.fr

     

     


  • Commentaires

    Aucun commentaire pour le moment

    Suivre le flux RSS des commentaires


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :