Autres Problème avec le Serial monitor sur VSCode

  • Auteur de la discussion gégé62
  • Date de début
gégé62

gégé62

Compagnon
Bonjour,
je débute avec VSCode. J'ai suivi pour cela une video Youtube de l'excellent MrEric Peronnin. Après quelques errements, (je ne suis pas une flèche cas dans ce domaine :???: ) j'ai réussi à compiler et téléverser un programme basique, et la carte fonctionne. Mais l'affichage sur le moniteur de VSCode ne se fait pas bien. J'ai passé plusieurs heures sur ce truc, sans succès.

Par exemple ce sketch très simple:

void setup() {
Serial.begin(115200);
Serial.println("VScode c'est super"); // affichage une fois au setup
}
void loop() {
Serial.print(" . "); //affichage d'une suite de points
delay(1000);
}

C'est censé imprimer ça :
VScode c'est super . . . . . . . . . . . . . . . . (un point chaque seconde)

Avec l'IDE et moniteur arduino, ça sort normalement.

Avec le moniteur VSCode ça fait un truc bizarre : les points ne s'affichent pas au moment où arduino les envoie, (on a l'impression qu'il ne se passe plus rien) et ils apparaissent d'un seul coup en paquet si je ferme et que je rouvre le sérial moniteur. On dirait que les caractères envoyés vont d'abord dans une mémoire tampon au lieu de venir sur l'écran en temps réel.

merci de votre aide si vous avez une idée de la cause (et du remède :) )
 
MegaHertz

MegaHertz

Compagnon
Bonjour,

VSCode est un tas de boue à tout faire.
C'est un gros couteau suisse sur lequel on ajoute des plugins sur des outils qui chargent d'autres plugins.

Si tu ne l'as pas encore essayé prends toi plutôt Arduino IDE

Plus spécialisé, plus léger et beaucoup mieux que VSCode pour programmer sur Arduino.

-edit-

Tu as déjà utilisé Arduino IDE : pourquoi tu tiens à souffrir avec VSCode ?
VSCode c'est comme une grosse clef à molette 0-450 pleine de jeu alors que ArduinoIDE est un bon jeu de clefs.
T'embêtes pas avec VSCode : c'est un tas de boue.

Si tu faisais du développement Web je dis pas mais pour le reste c'est pas fait pour ça.
Si Arduino IDE était payant ça aurait du sens mais là à part se planter soi même un clou rouillé dans le pied et ajouter un peu de sel je n'y vois vraiment aucun intérêt.

Pour l'Arduino laisses tomber VSCode : c'est pas le bon outil.
 
Dernière édition:
J

Jmr06

Compagnon
L'éditeur Arduino IDE est très basique. Dès que tu fais du code un peu long, on a envie de toutes les fonctions classiques d'un IDE moderne (autocompletion, liens vers les def, autofix etc..).
Perso, je programme des stm32 et j'utilise l'IDE de STMicro.
J'ai tenté d'utiliser VSCode, mais il m'a planté l'installation de l'IDE Arduino qui est devenu très lent à la compilation.
 
D

didierh

Ouvrier
hello

je viens de faire le tests quelques fois sans souci. Peut-être deux ou plus instances du moniteur serie qui se mélangent les pinceaux ?
Tu peux supprimer toutes les instances (plusieurs click sur l'icône "poubelle") comme sur l'image ci-dessous puis re-créer une instance.
SI je fais un reset du device il recommence l'affichage comme prévu au niveau de ton exemple de code...
A+ Didier
1640704308820.png
 
jpbbricole

jpbbricole

Compagnon
Bonjour gégé

Ca fait quelques années que j'utilise Visual Studio sous la forme de Microchip Studio (ex Atmel Studio) avec le plug Visual Micro (payant 49$), il y a une periode d'essai. C'est le pied! un vrai autocomplétions, les exemples et autres de l'IDE Arduino intégrés, possibilité d'utiliser plusieurs terminaux série etc. etc.
L'IDE Arduino de base, c'est l'âge des cavernes, la version PRO un tantinet mieux, il y a l'autocomplétions, mais qui ne vaut loin pas celui de Microchip Studio.

Cordialement
jpbbricole
 
gégé62

gégé62

Compagnon
Merci pour vos réponses.
@MegaHertz
Je me considère comme un éternel débutant.....L'IDE arduino, je n'y trouve (trouvais) rien à redire, pour mon niveau ça suffit certainement. Mais je suis assez fidèle lecteur des videos de Mr Eric Peronnin (on trouve facilement), je trouve son travail épatant et très pédagogue. Dans ses présentations il insiste sur l'intérêt de passer de l'IDE arduino à VSCode (version gratuite), alors je voulais au moins l'essayer. Dans un premier temps je dois réussir à le faire marcher :) , ensuite je verrai. Peut-être que je ne l'utiliserai pas, mais ça doit être un choix, pas à cause d'un échec. En tous cas, message reçu :) . L'approche peut être différente selon ce que l'on fait avec.

Si, je me souviens d'un détail qui m'intéresse, (mais VSCode n'est peut-être pas le seul à le proposer) c'est que par exemple si on entre Serial. le système propose automatiquement toutes les méthodes possibles de la librairie. J'ai pensé que ce serait bien utile pour moi, pour apprendre à mieux utiliser les librairies, actuellement je ne sais que modifier des sketches tout faits, c'est assez frustrant.

J'ai tenté d'utiliser VSCode, mais il m'a planté l'installation de l'IDE Arduino qui est devenu très lent à la compilation
à voir, je ne mettais pas ça sur le compte de VS mais il me semble que les compils sont très lentes effectivement, sans avoir vraiment planté pour l'instant.

Peut-être deux ou plus instances du moniteur serie qui se mélangent les pinceaux ?
Tu peux supprimer toutes les instances (plusieurs click sur l'icône "poubelle") comme sur l'image ci-dessous puis re-créer une instance.
merci je vais essayer ça, bien que rien que le mot "instance" me fasse peur ...:-D .

Ca fait quelques années que j'utilise Visual Studio sous la forme de Microchip Studio (ex Atmel Studio)
j'ai toujours AVRStudio4 sur mon bureau, j'ai fait quelques essais il y a au moins 5 ans, j'aurais dû m'accrocher un peu plus. Qui sait, plus tard peut-être....:)
 
S

speedjf37

Compagnon
Bonjour,

Il en faut pour tous les gouts !

Perso les produit µsoft ne branchent pas plus que le minimum obligé (pour platformIO par exemple).

L'ide Arduino n'est surement pas le plus pro de tous mais il est fait pour être accessible aux débutants
.
La version 2 qui vient de sortir apporte quelques nouveautés importantes.

La complétion (limitée ).
La possibilité d'avoir enfin (en même temps) plusieurs cessions de code avec des cartes différentes et des ports différents.



Le Debug (pas testé)

J'utilise aussi les onglets multiples pour scinder le code .(en bidouillant les appels en include "**.h" )

1640712110896.png


JF
 
gégé62

gégé62

Compagnon
J'ai omis de préciser, j'ai toujours quelques remarques désobligeantes à la compil, il ne trouve pas certains fichiers. Normal, le répertoire n'y est pas, j'ai certainement fait des bétises en voulant faire le ménage dans mes sketches qui se baladaient un peu partout. Mais je ne sais pas la conséquence, puisque ça téléverse quand même, et cela fait plusieurs années de cela.
je ne sais pas si cela vous parle....

1640711971872.png
 
D

didierh

Ouvrier
J'ai omis de préciser, j'ai toujours quelques remarques désobligeantes à la compil, il ne trouve pas certains fichiers. Normal, le répertoire n'y est pas, j'ai certainement fait des bétises en voulant faire le ménage dans mes sketches qui se baladaient un peu partout. Mais je ne sais pas la conséquence, puisque ça téléverse quand même, et cela fait plusieurs années de cela.
je ne sais pas si cela vous parle....

Voir la pièce jointe 748575
Hello
tu peux supprimer toute la ligne 18 si ce dossier n'existe plus. Attention c'est un fichier de type JSON, respecter la syntaxe (virgule entre les éléments d'une liste [], pas de "," après le dernier élément) - ici en supprimant toute la ligne 18 - ça ne devrait pas poser de soucis.
Effectuer un "nettoyage"dans platformIo (vscode) c'est l'icône "poubelle" à droite de la flèche utilisée pour faire le "téléversement"
Fermer et redémarrer VScode peut aussi régler des soucis car "Intellisense" l'outil qui te propose le différentes méthodes pour une librairie et autres facilité de codage a tendance en fonction de la complexité du projet, des librairies etc... a s'emméler les pinceaux.
Bien configuré et avec l'habitude le couple VScode / plateformIO fonctionne très bien mais c'est tout en raccourcis clavier et avec une granularité de configuration supérieure à d'autre outils comme l'ide d'arduino mais peut-être au détriment de la complexité.
A+Didier
 
gégé62

gégé62

Compagnon
Une piste peut-être, le problème semble ne concerner que Serial.print, alors que Serial.println fonctionne normalement
J'ai essayé 9600 baud, versus 115200, ça ne change rien. de même j'ai essayé d'incorporer des petits delay(1); ça ne change rien non plus.

Curieusement , je peux résumer le problème ainsi:
Serial.print ne fonctionne normalement que s'il est suivi d'un Serial.println. Je peux en mettre plusieurs l'un après l'autre, mais il faut un Serial.println pour transférer vers le moniteur.
Autrement dit, je ne peux pas obtenir 2 print qui se suivent avec les boucles loop successives.


@didierh je n'ai pas vu d'instance à supprimer, (si tant est que je comprenne ...).

1640717036750.png


1640714334104.png
 
greg_elec

greg_elec

Compagnon
La différence entre Serial.print, et Serial.println c'est que dans Serial.println un caractère de fin de ligne est envoyé.
Dans le serial monitor de ide Arduino on peut paramétrer l'attente de ce caractère.
Voir dans VS studio si on peut paramétrer cela .
 
MegaHertz

MegaHertz

Compagnon
J'ai omis de préciser, j'ai toujours quelques remarques désobligeantes à la compil, il ne trouve pas certains fichiers. Normal, le répertoire n'y est pas, j'ai certainement fait des bétises en voulant faire le ménage dans mes sketches qui se baladaient un peu partout. Mais je ne sais pas la conséquence, puisque ça téléverse quand même, et cela fait plusieurs années de cela.
je ne sais pas si cela vous parle....

Voir la pièce jointe 748575
Bonjour,

C'est moche...
Le problème c'est que tu as des chemins absolus et que tu auras beaucoup de mal à reproduire une compil si tu changes de machine.
Et en prime tu as des chemins concurrents en C et D : ça sent la panique avec copie de fichiers à tout va.

Les fichiers ne coutent pas cher et avec les HD ou SSD qu'on a c'est pas une ou deux libs qui vont changer ta machine.
Mets autant que possible une copie des libs dans ton sketch ne serait-ce que pour figer la version que tu utilises et être sûr et certain que ca compilera pareil dans six mois même si tu as changé de machine et que tu changes d'outil.

Dans les includes tu as deux notations :
<fichier.h> ou "fichier.h"
Dans le premier cas ce sont les includes du SDK comme stdlib.h
Dans le 2e cas ce sont des fichiers de ton sketch et des include path.
 
Dernière édition:
D

didierh

Ouvrier
hello
par "instance" (désolé je bosse en EN, j'ai tendance à réutiliser des termes anglais) je veux parler de "session". Tu peux afficher la liste (comme dans l'image). La poubelle permet de supprimer une "session".
Pour ce qui est du terminal série:
Comme précisé par greg_elec, println() ajoute un saut de ligne au contenu (à la fin).
Normalement ton code devrait afficher des " . " sucessivement toutes les 2 secondes sur la même ligne dans le terminal.
Si c'est un println(); le contenu doit s'afficher (toujours sur la même ligne que les précédents print()) puis un saut à la ligne.
A+ Didier

1640761365415.png
 
jpbbricole

jpbbricole

Compagnon
Bonjour MegaHerz
Le problème c'est que tu as des chemins absolus et que tu auras beaucoup de mal à reproduire une compil si tu changes de machine.
Et en prime tu as des chemins concurrents en C et D : ça sent la panique avec copie de fichiers à tout va.
Je ne pense pas que les problèmes de gégé viennent de là, le répertoire en C: est simplement le répertoire d'installation de l'IDE Arduino donc, s'il change de machine avec ses sketch l'installation de l'IDE de cet autre PC sera le même ou pas, mais ces chemins sont connus de l'IDE Arduino.
Quand aux chemins C et D, ce n'est pas une question de panique! C'est simplement du fait que le chemin du répertoire (Bibliothèque) Docs a été redéfini en D, cette façon de faire permet d'économiser la place sur des disques SSD de petite taille. Comme, par défaut les sketch sont dans ...\Docs\Arduino\Sketches ainsi que \Sketches\libraries, c'est dans ce répertoire que sont ajoutées les bibliothèques nouvellement installées. L'autre répertoire libraries en C sont les bibliothèques "natives" de l'IDE.

Cordialement
jpbbricole
 
MegaHertz

MegaHertz

Compagnon
Sur que ça marche mais c'est pas propre.

La philosophie n'est pas la même en programmation suivant que tu aies un OS ou pas.

Quand on crée une appli pour un PC ou un smartphone il est muni d'un OS avec des DLL et on ne va pas recharger la mule parce qu'on cible une version minimale de Windows, Linux, Android, MacOS... et qu'on sait que la machine embarque déjà tels drivers, tels modules etc etc.

Par contre sur un Arduino on téléverse tout ce qu'on y embarque : on programme sans OS.
A ces conditions on a tout intérêt à dupliquer les sources fournis pour éviter d'avoir des variations dans le temps.
 
jpbbricole

jpbbricole

Compagnon
Bonjour MegaHertz
Sur que ça marche mais c'est pas propre.
???, moi je trouve que oui :-D
Par contre sur un Arduino on téléverse tout ce qu'on y embarque : on programme sans OS.
A ces conditions on a tout intérêt à dupliquer les sources fournis pour éviter d'avoir des variations dans le temps.
Le "concept Arduino" a justement été créé pour que l'on puisse faire abstraction de tout ces considération, fait pour rendre accessible ce qui ne l'était pas forcément avant, au commun des mortels. Alors, gardons cette simplicité :wink:, ça fonctionne super bien ainsi :wink:

Cordialement
jpbbricole
 
gégé62

gégé62

Compagnon
Bonjour,
La poubelle permet de supprimer une "session".
elle est toujours éteinte....
Comme précisé par greg_elec, println() ajoute un saut de ligne au contenu (à la fin).
Normalement ton code devrait afficher des " . " sucessivement toutes les 2 secondes sur la même ligne dans le terminal.
Si c'est un println(); le contenu doit s'afficher (toujours sur la même ligne que les précédents print()) puis un saut à la ligne.
oui je sais, mais c'est bien le problème, il ne fait pas ça ! (sur l'IDE arduino, c'est OK)

Bon en plus ce matin, il ne veut même plus compiler, il envoie le message
<
avrdude: ser_open(): can't open device "\\.\COM6": Le fichier sp�cifi� est introuvable.
avrdude done. Thank you.
Une erreur est survenue lors du transfert du croquis
>
alors, pour l'instant je vais arrêter là....trop d'autres choses m'attendent
En tous cas merci de votre aide.
 
MegaHertz

MegaHertz

Compagnon
Bonjour,
Il n'y a rien qui interdise d'écrire son code avec VSCode (completion) et ensuite de compiler et tester avec ArduinoIDE.
 
MegaHertz

MegaHertz

Compagnon
Quand tu cliques sur Download tu arrives sur la page du ArduinoIDE
il y'a la version Beta en 2.0 : c'est de ça que tu parles ?
 
jpbbricole

jpbbricole

Compagnon
Bonsoir MegaHerz
c'est de ça que tu parles ?
Oui, en bas de la page, ça donne une nouvelle icône
1640796810945.png


C'est pas mal du tout, l'autocomplétions fonctionne pour autant qu'une carte est sélectionnée,

Cordialement
jpbbricole
 
gégé62

gégé62

Compagnon
Il n'y a rien qui interdise d'écrire son code avec VSCode (completion) et ensuite de compiler et tester avec ArduinoIDE.
effectivement, c'est une bonne idée à court terme si je veux programmer sur VScode. Merci
Ou passer à l'IDE Arduino PRO qui a la completion.
mais sauf erreur VSCode a la complétion aussi........il me semblait que c'était surtout ça l'intérêt de VSCode, d'ailleurs oui j'ai pu le constater, (même si quelquefois ça ne marche pas, si la librairie n'est pas bien faite).

Je viens d'aller voir sur le site arduino.cc, je ne vois pas où ils parlent de l'IDE arduino PRO, par contre il y a un nouveau IDE Arduino IDE 2.0 RC(2.0.0-rc3) qui semble plus abouti que l'IDE de base. Et gratuit aussi. L'avez-vous vu ?
Il y a aussi l'éditeur

Éditeur Web Arduino​

où l'on code en ligne. Mais pour ma part j'ai déjà assez de mal quand j'ai les outils sous la main, donc je crois que ce n'est pas pour moi, c'est juste pour info.

Pensez-vous que de supprimer puis ré-installer le logiciel arduino pourrait améliorer les choses en ce qui concerne l'arborescence des fichiers ? parce que ça ce n'est pas difficile...

edit: je n'avais pas fait attention, il est dit:

Version future de l'IDE Arduino​

arduino.svg
Arduino IDE 2.0 RC(2.0.0-rc3)

donc elle n'est sans doute pas encore disponible....
 
greg_elec

greg_elec

Compagnon
J'ai codé tout l'A.M avec Arduino IDE 2.0 RC(2.0.0-rc3) c'est pas mal l'autocomplétions marche bien .
et c'est du 100% Arduino contrairement à VS
 
MegaHertz

MegaHertz

Compagnon
Ouééééé !
L'autocompletion sans l'usine à gaz :smt023

Merci jpbbricole !
 
greg_elec

greg_elec

Compagnon
Surtout pour les librairies ! et pas que pour l'Arduino quelque soit le langage il manque souvent les fonctions des librairies
 
gégé62

gégé62

Compagnon
Bonjour,
pensez-vous qu'un newbie comme moi puisse installer cette version Arduino IDE 2.0 RC(2.0.0-rc3) qui semble bien, mais en béta pour l'instant...ou vaut-il mieux que j'attende ?
quel serait l'intérêt de la version habituelle ? plus simple ?
 
greg_elec

greg_elec

Compagnon
Déjà cette version béta s'installe en plus de la version existante ce que tu fait dans l'une tu la retrouve dans l'autre.
Moi le plus gros avantage que j'y trouve c'est la coloration syntaxique (les mots clefs reconnus changent de couleur)
exemple une variable non déclarée reste en blanc si elle est bien déclarée elle passe en bleu .Quand tu fait appelle à une librairie les arguments s'affichent en bulle d'aide c'est génial il faut vraiment tester .
Les 2 principaux inconvénients : c'est "tout-en-angliche" et c'est une version bêta donc il manque des fonctionnalités qui devraient arriver.
 

Sujets similaires

Moi33
Réponses
3
Affichages
2 613
speedjf37
S
gégé62
Réponses
17
Affichages
603
mvt
V
Réponses
62
Affichages
3 069
vibram
V
01power
Réponses
3
Affichages
10 717
01power
01power
V
Réponses
4
Affichages
1 995
wika58
wika58
V
Réponses
7
Affichages
1 453
vibram
V
Haut