Je ne sais pas pour vous, mais ces cartes microcontrôleur qui nous envahissent sous différentes formes sont extrêmement séduisantes pour ceux qui aiment “bidouiller”, d’autant qu’elles ouvrent la porte à tout un monde de capteurs divers et variés, circuits, montages, etc. Visual Micro permet de coder ces cartes depuis la Rolls des environnements de développement, Visual Studio.
Pour quelqu’un qui vient, comme moi, d’une informatique de gestion, principalement, pouvoir faire clignoter une LED avec un petit bout de code à quelque chose de magique. Il était donc logique de s’intéresser à la plus répandue de ces cartes, très bon marché, qui est maintenant toute une famille, l’Arduino. Plus spécifiquement, dans mon cas, l’Arduino Uno, puisque mes besoins ne nécessitent pas plus, mais ce que je vais décrire dans cet article est valable pour toute la famille, et bon nombre de clones.
Au début, je n’ai pas écrit grand chose, comme code, l’environnement de programmation, une application Java disponible sur le site officiel (https://www.arduino.cc/), me convenait très bien dans la mesure où il me permettait facilement de flasher la carte avec les exemples trouvés ici et là.
Au bout de quelque temps, lorsque des idées de projets personnels ont commencées à se bousculer, et donc qu’il me fallait actuellement coder, je n’ai pu m’empêcher de regretter les diverses fonctionnalités présentes dans l’éditeur de Visual Studio. (J’en profite pour indiquer à ceux qui ne le sauraient pas encore, qu’il existe une version gratuite, aussi puissante que la version pro, appelée Visual Studio Community. Disponible ici: https://www.visualstudio.com/fr-fr/products/visual-studio-community-vs.aspx ). La version Community, par différence avec les “anciennes” versions Express, accepte les plugins, et ne vous limite pas à un seul type de développement, comme c’était le cas.
Je me suis donc mis à rêver une extension permettant d’écrire du code pour Arduino, directement depuis Visual Studio. Comme bien souvent, ce rêve correspondait à un réel besoin, je n’étais donc sûrement pas le seul à l’avoir fait. Après quelques recherches (Google is my friend!), j’ai découvert un produit appelé “Visual Micro” http://www.visualmicro.com/, le nom d’un plugin développé exactement dans ce but.
Plus qu’un éditeur dédié à l’Arduino, utilisant les capacité de l’éditeur de Visual Studio, il s’agit d’un véritable environnement pour Arduino et compatibles, intégré à Visual Studio. Ce plugin est gratuit, mais si vous vous en servez régulièrement, vous voudrez sans doute acquérir la version Pro (ce que j’ai fait), elle comporte quelques fonctionnalités supplémentaires, notamment coté debugger.
Voyons donc comment installer, régler, et utiliser cet outil dont je ne pourrais plus me passer, maintenant que je m’y suis habitué.
Pré-requis et Installation
Tout d’abord, il faut que l’environnement Arduino déjà cité soit installé sur votre machine, puisqu’avec lui sont installés un certain nombre d’utilitaires et de librairies qui vont être utilisés par Visual Micro. Les dernières versions de Visual Micro vous permettent de télécharger et d’installer l’IDE Arduino directement depuis l’écran de setup, au cas où vous n’auriez pas encore installé Arduino sur votre machine. Nous allons voir ci-dessous ces différentes étapes, en partant de Visual Studio Community avec Visual Micro gratuit, sur une machine Windows 10 en 64 bits (A ma connaissance, aucune différence avec Windows 7 pour cette installation).
La première fois que vous lancez Visual Studio après avoir téléchargé et installé Visual Micro, l’écran de configuration va apparaître:
Il vous faut entrer les chemins correspondant à votre installation de l’IDE Arduino. Dans mon cas, l’Ide n’étant pas installé sur cette machine, je cliques sur le bouton “Download/Install Ide”, ce qui m’amène à la page de téléchargement du logiciel Arduino, où je choisis l’installateur pour Windows:
Une fois l’environnement Arduino installé, il vous faut indiquer les chemins. Par défaut, C:\Program Files (x86)\Arduino. Vous pouvez tester si votre environnement est correctement réglé dans Visual Micro en ouvrant Visual Micro Explorer (Il y a une nouvelle option dans le menu supérieur de Visual Studio, dénommée “vMicro”). Vous devriez voir la liste de toutes les cartes gérées, ainsi que l’ensemble des librairies installées:
Selon les cas, vous pouvez avoir à localiser l’emplacement où Arduino installe les librairies et “sketches”. Sur ma machine, c’est dans “C:\Users\USERNAME\Documents\Arduino”. Si c’est le cas, il vous faut indiquer ce chemin sur l’onglet “Configure”.
Maintenant, vous pouvez tester pour vérifier si votre installation est correcte. Branchez votre Arduino avec un câble USB, Windows doit le reconnaître (vous avez installé le driver à la fin de l’installation de l’IDE). Chargez un des exemples (Onglet Exemples). Le plus classique est “Blink.ino”. Commencez par créer un nouveau projet: Fichier/Nouveau Projet/ Arduino Project:
Le fichier Blink.ino est créé pour vous, vide. Il faut le supprimer, et faire ajout, pour aller chercher le fichier (déjà ouvert si vous avez cliqué sur son nom depuis Visual Micro Explorer) Si vous passez la souris sur le tab du nom du fichier, dans Visual Studio, le chemin est indiqué. Vous devez copier le fichier pour le mettre dans le répertoire du projet, à moins que vous n’exécutiez Visual Studio en mode Administrateur, ce qui n’est pas vraiment conseillé. Une autre solution est tout simplement de copier le contenu du fichier Blink exemple dans le fichier créé par Visual Studio.
Après avoir vérifié que le Port Com sélectionné est bien celui correspondant à votre Arduino, vous pouvez cliquez sur la petite flèche pour compiler et envoyer le code dans l’Arduino:
La fenêtre de sortie doit vous indiquer après quelque temps la réussite de l’opération, et vous devriez voir la led liée au Port 13 de l’Arduino clignoter toutes les secondes. Ce test est le plus classique parce qu’il ne nécessite aucun matériel en dehors de la carte elle-même.
Quels avantages? (Et éventuels inconvénients?)
Si vous êtes déjà familier avec Visual Studio, vous le savez déjà! Sinon, vous allez vite voir que c’est un excellent, si ce n’est le tout meilleur, environnement de développement actuellement disponible, et ce, complétement gratuitement! Voici une petite liste des fonctionnalités de Visual Micro avec Visual Studio:
- Complétement compatible avec l’IDE Arduino, chaque projet de l’IDE Arduino est un projet Visual MIcro, et vice versa. Utilise les outils Arduino en arrière plan.
- Interface utilisateur hautement configurable (Disposition des fenêtres, couleurs et fontes, barres d’outils..)
- Supporte IntelliSense: Auto-suggestions, auto-complétions et nom des classes lorsque vous tapez
- Vérification syntaxique “juste à temps”: Détecte, surligne et explique les erreurs de syntaxe immédiatement sans compilation
- Support pour de multiples fichiers .ino, .cpp par projet, sous-dossiers de projet pour de plus grand projets.
- Support pour un grand nombre de cartes: Arduino et compatibles, Teensy, Sparkfun, Adafruit, Intel,…
- Débuggeur unique ( points d’arrêt, traçage, surveillance et changement de variables) [Uniquement dans la version pro, gratuit pendant une période d’essai.] Aucun matériel spécifique requis, fonctionne avec USB comme avec WiFi.
- Puissant gestionnaire de librairies
- Télécharge des libraires tierce et les intègres à Visual Micro
- Recherche de librairies en-ligne
- Gestionnaire de cartes: Téléchargez le support de nouvelles cartes directement depuis l’IDE, pas d’installation requise
- Travailles avec plusieurs cartes simultanément
- Création de nouvelles librairies Arduino en un clic
- Support pour GIT et TFS
- Partage de code avec d’autres projets
- Base installée de plus de 10 000 utilisateurs
- Support de programmateurs et boot loaders
- Services Gratuits:
- Support au travers d’un forum modéré
- Mises à jour continues et gratuites pour une compatibilité certaine avec les dernières version de l’IDE Arduino
- Documentation complète
- Supporte Visual Studio 2012, 2013 et 2015
A cette liste déjà longue, je voudrais ajouter 2 éléments découverts à l’usage,
- Utilisation du système de “Solutions” de Visual Studio
Ce qui peut sembler un inconvénient, si on est habitué à l’IDE Arduino, apportant une certaine lourdeur au regard de la simplicité de “télé verser” un simple fichier vers la carte micro-contrôleur, est en fait, à l’usage, un immense avantage. Il est en effet très facile de regrouper divers projets dans la même solution, que ces projets soient Arduino, où pas! Cela vous permet d’avoir, par exemple, plusieurs projets Arduino regroupés sous la même solution. Très facile alors de tester divers exemples, et de développer votre propre code à partir de ceux-ci. Très pratique aussi dans le cas où vous développez un programme Windows dialoguant par communication série avec votre carte. Vous pouvez afficher simultanément les 2 codes l’un à coté de l’autre.
- Sur cette copie d’écran, vous pouvez voir 5 projets dans la même solution. Deux sont des projets Arduino et trois des projets Windows, comprenant deux librairies. Visual Studio permettant de passer très facilement d’un projet à l’autre (Définir comme projet de démarrage), vous pouvez compiler à la fois pour Windows et pour Arduino depuis la même solution.
- 2. Possibilité d’utiliser le contrôle de version, lié à Visual Studio
Si vous n’utilisez pas de système de contrôle de version, vous devriez! Vous pouvez créer un compte Visual Studio Team Services gratuitement et gérer autant de projet que vous voulez. Ce projet peut être partagé avec 4 autres personnes. Le service devient payant au-delà. Ce serait vraiment dommage de se priver de se service, d’autant que vous pouvez choisir d’utiliser Gît.
En guise de conclusion sur Visual Micro
Je ne me vois pas revenir à l’utilisation exclusive de l’IDE Arduino pour mes développements. Le simple fait de bénéficier d’IntelliSense suffirait sans doute à faire pencher la balance, pour moi. Mais toutes les fonctions apportées sont utiles, le contrôle de version étant sans doute dans le tiercé de tête. Si vous codez souvent pour l’Arduino, si vous avez un projet qui vous tient à cœur, essayez Visual Micro, et dites-moi ce que vous en pensez.
Petite précision pour la transparence: je n’ai strictement aucun intérêt financier, ni avec Visual Micro Limited, la société éditrice de ce plugin, ni avec Microsoft.
Bonjour,
Présentation très intéressante !
Je brûle de poser une question. Le code écrit est-il compilé par Visual Micro ou bien est-il livré au traduction de l’IDE de l’Arduino… avec les risques de voir ld.exe se fâcher sans explication toujours compréhensible, la solution consistant souvent à réécrire autre chose autrement pour contourner la difficulté ?
Visual Micro remplace l’environnement de développement Arduino, mais pas le compilateur, qui est AvrDude. Donc, que l’on utilise Visual Micro où Arduino comme environnement de développement, c’est le même compilateur qui est utilisé. Il n’a rien à voir directement avec Arduino, puisqu’on peut l’utiliser en ligne de commande sur un processeur AVR, directement en C.
Par contre, Visual Micro apporte quelque chose de plus, c’est la possibilité de débugger le code qui s’exécute dans l’Arduino. Il faut avoir la version payante pour ça.
J’espère que ça répond à la question?
Cordialement,
Merci beaucoup pour cette réponse.
Bonjour,
Savez-vous si les anciennes cartes Arduino sont compatible avec VisualMicro ?
En effet, je viens d’installer VS Community et Visual Micro puis l’IDE ARduino 1.6 comme vous l’avez indiqué.
Je branche ensuite ma carte Arduino (Arduino MEGA – ATMEGA1280) achetée en 2010.
Et là, la carte ne semble pas reconnue (pilotes impossible à installer). Pourtant j’ai bien installé les pilotes USB lors de l’instalation de VisualMicro.
Ensuite quand j’essaye de créer le nouveau projet Blink, je n’arrive pas à trouver le projet “Arduino Project” dans “Fichier/Nouveau Projet/ ” …
Auriez-vous une idée ?
Je vous remercie.
Benoit
Bonjour Benoit,
D’abord, merci, ça fait toujours plaisir de savoir que le temps passé à écrire un article est utile à quelqu’un!
Je n’ai aucune expérience avec un Arduino Mega (ça viendra sans doute), mais à priori, si l’environnement d’origine Arduino reconnaît cette carte, Visual Micro le fera aussi. Il ne faut pas oublier, dans le menu vMicro, de sélectionner la bonne carte (Board). J’ai regardé sur ma machine, et “Arduino/Genuino Mega w/ATmega1280” figure bien dans la liste des cartes, donc ça devrait le faire.
Pour démarrer un nouveau projet Arduino, on peut le faire soit depuis Fichier/Nouveau/Arduino Project (tout en bas du sous menu), soit depuis vMicro, là encore en bas de la liste, New Arduino Project.
Les project Arduino n’apparaissent pas sur la page de démarrage, sauf si tu as des projets .Net et Arduino dans la même solution.
N’hésites pas si tu as d’autres questions.
Bien Cordialement,
Bernard