Partage
  • Partager sur Facebook
  • Partager sur Twitter

Arduino : ouvrir 2 moniteurs série en même temps

Modules Nrf24L01

Sujet résolu
    4 juin 2014 à 19:40:45

    CamsHack,

    Pour les drivers, je ne saurais pas répondre à ta question. y'a-t-il un moyen de voir s'ils sont bien installés via ligne de commande ?

    • Partager sur Facebook
    • Partager sur Twitter
      4 juin 2014 à 23:09:20

      Bonsoir,

      Tout d'abord, un grand merci à tous ceux qui ont bien voulu m'apporter leur aide : zeqL, Eskimon et CamsHacks.

      J'ai enfin pu ouvrir un terminal pour chacune des cartes.

      Comme cela pourrait aider d'autres personnes, je vais expliquer comment j'ai fait pour résoudre le problème, en espérant être le plus didactique possible :)

      Pour rappel, mon objectif était de faire communiquer 2 modules radios Nrf24L01 (chacun sur une carte arduino) : la 1ère ("client") qui dit "bonjour" à la 2ème carte ("serveur") qui lui répond "bonsoir"

      1- J'ai complètement abandonné l'idée d'ouvrir 2 terminaux via l'IDE arduino; cela doit être possible mais sans doute assez compliqué quand ça ne passe pas automatiquement; Bon si quelqu'un sait comment faire après avoir connu le problème, je suis preneur.

      2- Sinon, j'ai finalement décidé de passer par un autre terminal série en essayant le 1er des 5 décrits dans cette page gentiment conseillée par zeqL

      http://www.cyberciti.biz/hardware/5-linux-unix-commands-for-connecting-to-the-serial-console/

      3- J'ai donc choisi la commande cu

             a) Tout d'abord (parce que je n'avais pas trop saisi au début :)), cela signifie qu'on va installer une commande en plus (comme cd, ls, etc..) à notre terminal.

             b) On l'installe (certains systèmes linux peuvent déjà l'avoir de base d'après mes recherches mais ce n'était pas le cas sur mon ubuntu 14.04) => $ sudo su apt-get install cu

             c) ensuite il faut ouvrir votre IDE arduino (avant de mettre en place le cable à relier à la carte arduino) et voir dans port série les ports proposés et ensuite brancher le cable à la carte arduino et voir le nouveau port qui apparaît (par exemple tty/USB0).

             d) Si c'est tty/USB0, alors toujours en ligne de commande, on tape :

              $ cu -l /dev/ttyUSB0 -s 9600

              explication :

      9600 pour la transmission (9600 bauds ou une autre valeur en fonction de ce que vous choisissez habituellement)

      USBO : le port série évoqué dans le point c)

             e)Normalement, là on se retrouve avec notre ligne de commande qui indique "connected" et dans mon cas, je vois la réception de ma 1ère carte :

       Connected.
      Programme Client seance du 14 Juin.
      init OK
       

      Debut envoi
      Envoi Ok
      Attente retour ...
       
      Retour apres 516 ms
      On a recu : Bonsoir
      -----------------------------------
      1 2 3  
      Retour apres 3577 ms
      On a recu : Bonsoir
      -----------------------------------
      4 5 6 7 8 9 10 11 12 13 14 15  

            f) ensuite, je branche mon câble à ma 2ème carte (pour voir quel est le port série); dans mon cas, je vois tty/USB1

      DONC j'ouvre une AUTRE ligne de commande (= 1 terminal) et je fais la même procédure que tt à l'heure sauf en indiquant USB1 à la place de USB0

      cu -l /dev/ttyUSB1 -s 9600

      =>J'ai alors 2 terminaux ouverts en même temps et sur le 2ème terminal, ce que me communique la 2ème carte arduino :

      Connected.
      Programme Serveur seance du 14 Juin.
      Init Ok...
      On a recu : Bonjour
      On renvoie : Bonsoir apres 3 secondes.
      Renvoi OK.
      -----------------------------------

      On a recu : Bonjour
      On renvoie : Bonsoir apres 3 secondes.
      Renvoi OK.


      CONCLUSION

      - Juste pour finir (car je me suis posé la question :)), dans mon cas décrit, je ne fais que recevoir des données de mes cartes mais dans le cas où je voudrais envoyer des données (exemple que j'ai testé : taper la lettre "j" et voir une LED allumée), il suffit juste après avoir fait cu -l /dev/ttyUSB0 -s 9600 et qu'on a le message "connected" de taper la lettre et sans faire entrée, on voit la LED s'allumer; en résumé, on peut aussi envoyer des données via le terminal et pas uniquement en recevoir.

      - Autre astuce : pour terminer la connexion au terminal, il suffit de taper ~.


      =>Voilà, j'espère avoir été clair dans mes explications et sinon je laisse les pros (zeqL, Eskimon, ...) relever les points erronés et/ou à rajouter.

      Encore merci à tous pour votre aide mais j'ai l'impression que je reviendrais vers vous car je suis en plein apprentissage.

      @+








      -
      Edité par gringo75 4 juin 2014 à 23:33:39

      • Partager sur Facebook
      • Partager sur Twitter

      Arduino : ouvrir 2 moniteurs série en même temps

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown