Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

ARDUINO - communication sans fil



  1. #1
    G.I.

    ARDUINO - communication sans fil


    ------

    Bonjour,

    Dans le cadre de la réalisation d'une maquette de bateau, je me suis initié à l'utilisation d'ARDUINO. Le but est certes d'introduire quelques automatismes mais surtout de tout commander à distance via les modules GROVE SERIAL RF PRO (portée de plus de 100m, ce qui me suffit amplement !).

    Alors autant je me débrouille pour me servir de l'ARDUINO (avec tout ce que l'on peut trouver sur le net, il n'y a pas d'excuse !) mais je n'arrive pas à faire communiquer les 2 kits GROVE SERIAL RF PRO pour lesquels on ne trouve quasiement aucune info à part sur cette page :
    Code HTML:
    http://www.seeedstudio.com/wiki/Grove_-_Serial_RF_Pro
    Je ne comprends déjà pas grand chose à la configuration de la carte (que faire avec les "config pin" et "enable pin" alors qu'il ne s'agit que de 2 trous comme l'"antenna pin" sur lequel il faut souder le câble d'antenne ?)...

    Quelqu'un aurait le même équipement et saurait m'éclairer ?

    Pour le montage, j'utilise :
    d'un côté :
    -1 PC portable
    -1 carte ARDUINO MEGA
    -1 carte GROVE MEGA SHIELD
    -1 module GROVE SERIAL RF PRO branché sur la prise 4 broches UART0

    de l'autre côté :
    -1 PC portable (pas le même)
    -1 carte ARDUINO UNO
    -pas de carte d'interface
    -1 module GROVE SERIAL RF PRO branché en direct sur les ports 5V, GND, Tx et Rx de l'ARDUINO UNO en ayant scindé les 4 fils du cordon 4 broches

    Merci d'avance pour votre aide !!

    -----

  2. Publicité
  3. #2
    Jack
    Modérateur

    Re : ARDUINO - communication sans fil

    Je ne comprends déjà pas grand chose à la configuration de la carte (que faire avec les "config pin" et "enable pin"
    C'est écrit dans la doc pourtant

    EN(ENABLE) Set low for normal mode as data transceiver (Default is low with 10k to GND).
    Set high to put into sleep mode.
    CON(CONFIG) Set low for configuration mode (connect to GND).
    Set high for communication (Default is high).

  4. #3
    G.I.

    Re : ARDUINO - communication sans fil

    Effectivement... Je n'avais pas compris qu'il fallait relier à la masse mais en me mettant ce bout précis de la doc sous les yeux tout s'est expliqué ! A noter que la photo qui était sur la page internet ne m'aidait pas parce que le branchement à la masse n'y est pas réalisé.

    Pour les petits copains qui pourraient avoir les mêmes déboires que moi, voici la procédure, en français et en clair :
    1) souder un fil à l'emplacement EN de la carte GROVE SERIAL RF PRO
    2) souder un fil à l'emplacement CO de la carte GROVE SERIAL RF PRO
    3) relier le fil de EN au 0V de la carte ARDUINO en intercalant une résistance 10k OHM
    4) le temps de "téléverser" les données du logiciel ARDUINO vers la carte ARDUINO, relier le fil de CO au 0V de la carte ARDUINO
    5) donc une fois le téléversement bien terminé, bien laisser branché à la carte ARDUINO le fil venant de EN mais débrancher le fil venant de CO

    ATTENTION : veillez à bien renseigner les bons ports dans votre code, j'ai eu du mal avec ce point aussi. Dans mon exemple, j'ai le fil jaune (=Tx) sur le port 10 et le fil blanc (=Rx) sur le port 11.

    Le code fourni sur la page suivante a du plus (sans, je n'aurais eu aucune base de départ) et du moins puisqu'il me paraît contenir une erreur
    Code HTML:
    http://www.seeedstudio.com/wiki/Grove_-_Serial_RF_Pro
    .

    Pour ma part, j'estime que les paramètres à envoyer dans la carte doivent être dans le SETUP et non dans LOOP (ce qui se confirme par le fait que certains bugs disparaissent en déplaçant ce §), à savoir :
    SoftSerial.write(0xAA);
    SoftSerial.write(0xFA);
    SoftSerial.write(0xE1);

    En ayant modifié ainsi le programme, j'arrive à échanger une seule donnée dans chaque sens, en simultanée (le tableau à 1,2,3,4,... cases ne change rien) :
    Code:
    #include <SoftwareSerial.h>
     
    SoftwareSerial SoftSerial(10, 11); // TX, RX
    char buffer[2];
    int count=0;
    
    void setup()  
    {
      SoftSerial.begin(9600);               // the SoftSerial baud rate   
      Serial.begin(9600);             // the Serial port of Arduino baud rate.
      buffer[1]='0';
      buffer[2]='0';
      SoftSerial.write(0xAA);
      SoftSerial.write(0xFA);
      SoftSerial.write(0xE1);
    }
     
    void loop()
    {
      delay(100);
     
      if (SoftSerial.available())              // if date is comming from softwareserial port ==> data is comming from SoftSerial shield
      {
        while(SoftSerial.available())          // reading data into char array 
        {
          buffer[count++]=SoftSerial.read();     // writing data into array
          if(count == 2){
            break;
          }
        }
        
        for (int i=0; i<count; i++) {
          Serial.print(buffer[i]);
        }
        Serial.println("");
        count = 0;                       // set counter of while loop to zero
        
      }
      
      if (Serial.available())            // if data is available on hardwareserial port ==> data is comming from PC or notebook
        SoftSerial.write(Serial.read());       // write it to the SoftSerial shield
        
    }
    Vous remarquerez que je l'ai épuré, n'ayant notamment pas trouvé d'utilité à la fonction clearBufferArray() (voire ça me le faisait bugger)

    Je n'arrive cependant pas à échanger de tableaux de données, ce qui est la base de mon besoin de transmission (j'ai besoin d'envoyer un tableau récapitulatif de quelques dizaines de données de capteurs/ordres d'un côté et de les récupérer dans le même ordre à l'autre bout)... Pourriez-vous m'aider ?

    Merki !!

  5. #4
    G.I.

    Re : ARDUINO - communication sans fil

    Petite correction sur la couleur des fils :
    "fil blanc (=Tx) sur le port 10 et le fil jaune (=Rx) sur le port 11"

    Votre aide est toujours la bienvenue pour m'aider à transmettre des tableaux au lieu de simples caractères !

  6. A voir en vidéo sur Futura
  7. #5
    Jack
    Modérateur

    Re : ARDUINO - communication sans fil

    Effectivement... Je n'avais pas compris qu'il fallait relier à la masse mais en me mettant ce bout précis de la doc sous les yeux tout s'est expliqué ! A noter que la photo qui était sur la page internet ne m'aidait pas parce que le branchement à la masse n'y est pas réalisé.
    Je me trompe peu-être, mais j'interprète la doc différemment: pour moi, pas besoin d'effectuer la connexion de la broche EN. La doc semble indiquer que cela est fait par défaut.

    Le plus simple est de s'en assurer: tu déconnectes ton fil, et tu mesure hors tension avec un ohmmètre entre EN et le 0V. Si tu mesurer une valeur proche de 10 kOhm, c'est que la connexion est déjà présente.

  8. #6
    G.I.

    Re : ARDUINO - communication sans fil

    Je ferai l'expérience à l'occasion. Pour ma part, j'avais compris que, par défaut, il fallait réaliser ce branchement.
    Dans l'immédait, ça marche ainsi et ça me va bien

    Pour mon pb de tableau, de ce que je comprends du code initialement fourni, les données reçues sont rangées dans un tableau nommé buffer de 64 cases (réduites à 2 dans mon exemple ci-dessus). Or, quand je veux lire la valeur de buffer[1], c'est du n'importe quoi et les données transmises par le PC n°1 au PC n°2 ne sont lisibles que dans buffer[0].

    C'est-à-dire que si je tape AZERTY puis entrée dans la fenêtre serial du PC n°1, dans la fenêtre serial du PC n°2, j'ai bien AZERTY mais chaque lettre est rangée dans buffer[0] qui est aussitôt vidé.

    ==> pour le moment, ça dépasse le niveau de mes compétences. Qu'ai-je négligé cette fois-ci ? Tant que je n'ai pas résolu ce problème, je ne peux pas avancer dans la suite de mon codage...

    Merci !

  9. Publicité
  10. #7
    Jack
    Modérateur

    Re : ARDUINO - communication sans fil

    Je connais bien le C et le C++, mais beaucoup moins le langage arduino. Je te laisse entre des mains expertes pour la suite.

Discussions similaires

  1. Help: communication entre arduino et écran tft
    Par essetoh dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 24/04/2014, 09h56
  2. Communication arduino-arduino avec module Xbee
    Par TPESI22012 dans le forum Électronique
    Réponses: 2
    Dernier message: 23/12/2013, 18h24
  3. projet communication pc-arduino
    Par yoannx dans le forum Électronique
    Réponses: 3
    Dernier message: 21/02/2013, 13h10
  4. Arduino UNO detecté en port de communication bluetooth
    Par benoitsuau dans le forum Matériel - Hardware
    Réponses: 3
    Dernier message: 02/07/2012, 20h20
  5. pb de communication entre deux arduino via Xbee
    Par aurelien223 dans le forum Électronique
    Réponses: 0
    Dernier message: 22/03/2012, 15h02
Découvrez nos comparatifs produits sur l'informatique et les technologies.