Tag Archives: arduino

Le debug série d'un arduino Mac OSX

Hello !

Alors mission du jours travailler sur du port série et regarder ce qu’il s’y passe. Par exemple si comme moi vous voulez faire une discussion série entre un arduino et un soft de votre composition le soucis c’est qu’une fois la connection établie sur le port série et le soft personne d’autre ne peut s’y connecter… Même avec toute la meilleur volonté du monde des debuggeurs dont vous faites parti si vous rencontrez un problème vous risquez de ramer longtemps pour trouver la cause du problème même avec des serial.print().

Le but du jeu ici est de mettre en place un espion qui va recevoir/envoyer sur le même port série que l’arduino. Les ports de sortie 0 et 1 de l’arduino correspondent à ce qui se déroule en RX/TX sur l’avr. Il ne vous suffit que de trouver un petit appareil UsbToUart ça coute presque rien. (je vous conseille peut être un USB to FTDI ça vous fera l’économie d’un drivers à installer et le résultat sera le même)

Dans mon cas, j’ai pris un UsbToUART avec un CP2102… donc il faut pour commencer un nouveau drivers :( vous trouverez cela directement sur le site du fabricant du composant Il est dispo pour plein d’os (moi je n’ai testé que sur Mac OSX)
Une fois le drivers installé et la machine redémarrée en branchant votre clé UsbToUart vous pourrez exploiter le port série.
Pour cela je vous conseille un terminal série vous pourrez bien utiliser la commande du terminal

moon:fred$>ls /dev/tty.*

Vous aurez comme résultat tous ce qu’il y a en usb sur votre ordinateur. C’est intéressant pour récupérer le nom de ce nouvel appareil pour la suite.

moon:fred$>screen portname datarate

Cela vou affichera le retour sur le port série.
Bon de cette façon, c’est mignon mais ce ne permet pas d’envoyer de données (TX) mais que de recevoir(RX). Donc ce que je vous conseille c’est de télécharger une petite appli qui s’appelle coolterm (c’est ce que j’utilise) ou bien Zterm ça marche aussi…

 

Après niveau branchements c’est simple RX de l’usbtouart sur RX de l’arduino et TX de l’usbtouart sur TX de l’arduino. Ca peut paraitre bizarre mas c’est comme ça soit le nommage de l’usbtouart ou de l’arduino est noté à l’inverse (car normalement le TX est branché sur le RX et le RX sur le TX). Au pire si vous recontrer un petit soucis faut intervertir et le résultat devrait apparaître.

Puis n’oubliez pas de brancher le GND. Je suis un peu un boulet ou plutot un n00b et j’ai mis le temps à comprendre pourquoi ça buggait… :)

 

Je me suis fait une petite boite portable pour faire mes devs tranquillou. Voilà ce que ça donne:

 

Vous lancez sur le port usb de votre debuggueur usbtouart. Et voilà facile la vie :)

Cette solution est à mon goût plus intéressante car on récupère brut de fonderie ce qui ce passe entre l’arduino et le soft qui communiquent. Cela va vous permettre de vraiment suivre la discussion.

Autrement il est possible d’utiliser d’autres port série que les port 0 et 1 de sortie de l’arduino grâce à serial ou à la librairie softwareserial et d’y afficher certaine choses si vous le souhaitez.
[UPDATE]
Voici un petit lien à consulter pour mettre en place un port virtuel et ne pas être embêté lors d’un problème de connexion
Voilà enjoy!

Tagged , , ,