Developpez.com - Rubrique Arduino

Le Club des Développeurs et IT Pro

La version 2.0 bêta de l'EDI Arduino est disponible et divise les développeurs informatique

Sur la question de savoir si un plugin Arduino pour Visual Studio Code constitue une meilleure option

Le 2021-05-12 21:36:19, par Patrick Ruiz, Chroniqueur Actualités
L’environnement de développement Arduino propose une interface simple et claire, suffisante pour la plupart des utilisateurs, dont les novices de la plateforme. Toutefois, les utilisateurs plus expérimentés lui reprochent des capacités d’édition limitées par rapport aux éditeurs modernes. La controverse prend un coup de neuf autour de la version 2.0 bêta de l’éditeur Arduino disponible depuis le début du mois de mars de l’année en cours : un plugin Arduino pour Visual Studio Code constitue-t-il une meilleure option qu’un EDI dédié à la plateforme Arduino ?

Chacune des approches affiche des tares. Arduino est une plateforme. Le fait de fournir un environnement de développement dédié permet à ses créateurs de garder un certain contrôle de cette dernière. Opter pour un plugin Visual Studio Code la rendrait vulnérable à des changements radicaux opérés sur l’éditeur de Microsoft. De l’autre côté, le fait d'avoir les options spécifiques à la plateforme Arduino mêlées à tous les autres menus, options, etc. qui peuvent ne pas être pertinents, rend plus difficile de trouver les éléments vraiment utiles. Développer pour des microcontrôleurs est très différent et implique une configuration qui diffère de celle requise pour du développement d’applications web ou de bureau. Le fait d'avoir, sur l’EDI Arduino toutes les options les plus utiles mises en avant, plutôt que d'être relégué dans des sous-menus, rend l'utilisation beaucoup plus facile.

L’association Visual Studio Code – PlatformIO laisse néanmoins songeur quant à savoir si elle ne constitue pas une meilleure option que l’environnement de développement dédié à la plateforme Arduino. PlatformIO est un écosystème de développement pour les microcontrôleurs. Il est à code source ouvert, multiplateforme et gratuit. PlatformIO est disponible comme additif pour Visual Studio Code.



La version 2.0 bêta de l’EDI Arduino vient avec des nouveautés qui la démarquent de celles qui la précèdent. L’éditeur offre désormais des fonctionnalités avancées, une meilleure expérience utilisateur et un temps de compilation plus rapide. Primo : en cours de frappe, l’éditeur suggère (enfin) l’autocomplétion des variables et des fonctions selon les bibliothèques incluses par l’utilisateur.


Un clic droit sur une variable ou une fonction provoque l’apparition d’un menu contextuel qui fournit des raccourcis de navigation pour passer à la ligne (et le fichier) où ils sont déclarés.


De plus, un débogueur en direct permet l’exécution de code de manière interactive sur une carte de développement et l’inspection de l’exécution sans écrire des dizaines de Serial.println(). Il suffit d’étendre le panneau de débogage, définir des points d’arrêt où l’on souhaite mettre en pause l’exécution et inspecter le contenu des variables. Il est même possible de changer le contenu des variables à la volée et reprendre l’exécution !


Le débogueur prend en charge les cartes basées sur les plateformes SAMD et Mbed (famille MKR, Nano 33 IoT, Nano 33 BLE, Portera, Zero). La connexion d’une sonde de débogage au port JTAG est nécessaire. La nouvelle version de l’EDI est basée sur le framework Eclipse Theia, qui est un projet open source basé sur la même architecture que Visual Studio Code. Le front-end est écrit en TypeScript, tandis que la plupart du backend est écrit en Golang.

Source : Arduino blog

Et vous ?

EDI Arduino dédié ou plugin Arduino pour Visual Studio Code : de quel bord êtes-vous ?
Que pensez-vous de l’association Visual Studio Code – PlatformIO ? Comment la comparez-vous à l’EDI Arduino ?
  Discussion forum
27 commentaires
  • archqt
    Membre émérite
    Ils ont mis beaucoup trop de temps à sortir un truc à peu près correct, Visual Studio Code a pris le dessus.

    Au moins avec VSCode on voit les étapes de la compilation, on retrouve facilement les fichier généré pour un éventuel "flashage" de la carte quand elle n'est pas reconnue directement comme un périphérique série USB. Avec l'IDE Arduino on ne voit rien.

    Ils auraient du basculer sur VSCode et améliorer les extensions existantes plutôt que de faire cela. Ou mieux rajouter des plugins sous QtCreator pour avoir un IDE encore plus réactif.
  • electroremy
    Membre éprouvé
    Envoyé par Nounours18200

    Depuis quelques temps, j'utilise des MEGA 2560 pour des projets un peu plus ambitieux, et Notepad++ fait toujours l'affaire, mais sur des programmes longs, j'avoue que le nouvel IDE v2.x me tente bien. Je le testerai dès qu'il ne sera plus en Beta mais e, version release.
    Il y a aussi Sloeber (Eclipse) qui est un IDE plus pro mais aussi plus lourd ; mais ça peut valoir le coup pour des projets d'envergure.

    A bientôt
  • Aiigl59
    Membre actif
    Envoyé par Jay M
    je ne retiendrais pas mon souffle pour attendre un nouveau compilo de la part de AVR...

    lisez ceci: avr-gcc and avr-g++ are deprecated now
    ====> "I suspect Microchip would like me to buy their compiler instead (and give me a 50% off coupon)."
  • destroyedlolo
    Membre actif
    Perso, j'utilise l'IDE que pour la compilation : pour l'édition, je suis un inconditionnel de Vim (gvim) en l’occurrence.

    Maintenant, IDE ou PlateformIO, la méthode de compilation ou tout est copier dans /tmp et entièrement recompilé lorsqu'on fait un changement dans la moindre librairie est gavant : en plus, d’être extrêmement lent, ca empeche d'utiliser des options avancé du préprocesseur.
    Navrant qu'ils n'aient pas fait évoluer la chaine de compilation pour la rendre plus standard avec des Makefile, méthode qui a largement fait ses preuves.

    Alors pourquoi je continue a utiliser l'IDE :
    1. + facile pour les gens qui souhaiteraient réutiliser mes projets
    2. pas besoin de batailler pour integré les librairies que j'utilise


    JTAG, donc j'imagine qu'il ne sera pas possible de faire du débugages sous ESP ...
  • Nounours18200
    Membre du Club
    Oui, Notepad++ avec l'EDI Arduino en mode "éditeur externe"

    Ca reste gérable sur Arduino UNO car avec 32ko de flash on ne peut pas avoir plus de quelques milliers de lignes de code C++ réparties dans différents fichiers.

    Pour développer une appli sur une carte plus grosse ça sera plus difficile !
    Je fais pareil qu'electroremy, et ça me va bien: avec les Nano (ou Uno) c'est suffisant et bien plus lisible que l'IDE 1.8.x d'origine, où je me casse les yeux.

    Depuis quelques temps, j'utilise des MEGA 2560 pour des projets un peu plus ambitieux, et Notepad++ fait toujours l'affaire, mais sur des programmes longs, j'avoue que le nouvel IDE v2.x me tente bien. Je le testerai dès qu'il ne sera plus en Beta mais e, version release.

    Il supporte les MEGA 2560 si j'ai bien lu ?

    Sinon Programino me semble une solution qui à la fois préserve la simplicité d'origine, tout en offrant des bonus intéressants... qui ne sont peut-être plus suffisants pour justifier le prix de la licence... quoique j'y jetterai un oeil.
  • frucot
    Membre à l'essai
    @destroyedlolo
    JTAG, donc j'imagine qu'il ne sera pas possible de faire du débugages sous ESP ...
    Pourquoi ça ? Dans le texte de présentation, il est dit :«Le débogueur prend en charge les cartes basées sur les plateformes SAMD et Mbed (famille MKR, Nano 33 IoT, Nano 33 BLE, Portera, Zero). Vous devrez connecter une sonde de débogage au port JTAG.»
    Et, il y a de nombreuses sondes JTAG en vente pour esp... En tout cas sur platformio c'est possible
    C'est une vraie interrogation !
    Cordialement
  • destroyedlolo
    Membre actif
    Envoyé par frucot
    @destroyedlolo
    Et, il y a de nombreuses sondes JTAG en vente pour esp... En tout cas sur platformio c'est possible
    Oui en effet : n'ayant jamais vu de carte ESP32 avec un JTAG, je pensais que ce n'était pas possible.
    Mais j'étais dans l'erreur.
  • Artemus24
    Expert éminent sénior
    Salut à tous

    Je ne possède aucun Arduino car j'utilise l'IDE Arduino pour mes ESP32, et faire des compilations.
    Je n'aime pas l'éditeur et je préfère de loin nodepad++, qui est bien plus conviviale.
    Ce qui me dérange, c'est la gestion confuse des bibliothèques.
    Il y a une multitude de bibliothèques qui font parfois la même chose, pas performantes et contiennent des bugs.
    A vrai dire, je l'utilise très peu car je suis plus dans la raspberry.

    Cordialement.
    Artemus24.
    @+
  • jpm2nice
    Candidat au Club
    Ce que j'attends le plus d'un nouvel EDI, c'est la possibilité de travailler par projet, c'est à dire que le paramétrage de la carte soit mémorisé en même temps que le programme.
    En effet, il m'arrive souvent de passer d'un module à un autre (Arduino, ESP, Wemos, etc) et je suis obligé de retrouver et appliquer tous ces paramètres.

    Mais il y a peut-être moyen de le faire autrement?

    Cordialement,
    JPM