“Visual Studio Code” (ou VSCode) est un IDE gratuit proposé par Microsoft. La communauté propose un ensemble d’extensions (ou plug in) lui permettant d’être un choix valable pour de nombreuses technologies. En complément, nous utiliserons le plugin PlatformIO pour le développement sur Esp32 (ou arduino, …), il s’appuie sur des scripts python pour gérer la compilation, l’édition de lien et l’upload du code sur les puces.
VSCode propose également des fonctionnalités pour gérer des outils indispensables au développement tels que GIT. Chaque étape sera couplée à son dépôt !
En tant que prof de développement logiciel, je m’en suis servi avec mes classes pour la création de site web. En fonction des technologies manipulées, il a des concurrents plus ou moins payants souvent de bonne qualité également. Il ne fait pas le poids contre des outils pro dédiés. Mais dans les limites de ce projet, une solution gratuite est idéale car elle ne touchera pas à mon budget !!
Téléchargement de VS Code : https://code.visualstudio.com/
Je recommande de prendre la version stable…
Je procède à une installation complète :

Au premier démarrage de VSCode, nous allons ajouter l’extension PlatformIO…

… puis rechercher et installer l’extension :

Là, nous avons un dossier dans le répertoire de l’utilisateur local qui vient d’être ajouté : .platformio : à terme quelques Go tout de même !
Une fois l’installation terminée, il faut redémarrer VSCode.
Au démarrage suivant, nous avons un nouvel icône dans la barre de gauche :

Création d’un projet PlatformIO
Il faut aller dans le “home” de cette extension :

La maison ou “home” est le gestionnaire de l’extension PlatformIO :

Nous allons créer un nouveau projet :

Il faut choisir :
- nom : libre mais autant être explicite pour s’y retrouver dans 2 ans
- Board : le modèle de dev board. Un mauvais choix peut avoir des conséquences en terme de ram disponible et de stockage. Sans trop de conséquence tant que l’on n’atteint pas la limite. Beugs au démarrage sinon !
- Framework : On a le choix entre celui de Espressif et celui de Arduino… En sachant que le framework de Arduino permet de faire du code pour Espressif. Je choisi celui de Arduino car j’ai l’espoir que la communauté soit plus riche.
Cliquer sur Finish : la première fois, le système va télécharger pour plusieurs giga de données pour le framework, les projets suivants seront plus rapides !
Une fois le téléchargement fini, le système demande si nous faisons confiance au fichier de ce dossier :

Normalement, vous avez cette architecture qui se propose :

- .pio : plaformIO : pour les besoins de PlatformIO, je n’ai pas eu besoin de fichier significatifs
- vscode : Visual Studio Code : pour les besoins de l’IDE : pas eu besoin également !
- include : là où il faut mettre les fichiers .h
- lib : là où sont seront les bibliothèques extérieures à notre code. Nécessaire pour certains paramétrages à la hussarde.
- src : là où il faut mettre le code source
- test : pour des batteries de tests unitaires. J’imagine qu’ils sont important, mais je ne me suis pas encore penché sur la question !
- .gitignore : pour indiquer les fichiers qui ne doivent pas être gérés par GIT. Très important !
- platformio.ini : paramétrage de platform.io
Paramétrage de platformio.ini
Il faut indiquer la vitesse du port série (qui est en réalité une liaison USB par le biais de l’UART sur la deboard…) :

Le premier code : Hello World
Le point d’entrée de ce code est le fichier /src/main.cpp :

Les explications par défaut sont assez claires sur le rôle de chaque bloc :
- setup() : Pour mettre en place les objets exécutés une fois au démarrage
- loop() : répétée de manière cyclique : dés que cette fonction est finie, elle recommence.
- Variable globale : seule solution pour transmettre des datas et des objets et “setup” et “loop”. Il va falloir bien s’organiser !
Premier code : Hello world sur le port série
Port série ? port permettant d’échanger des informations avec une console. En l’occurrence, on va en envoyer !
Le code (https://github.com/jeanbaptisteaubry/LasterTag_1_HelloWorld.git) :
#include <Arduino.h>
void setup() {
//Pour initialiser la liaison série :
Serial.begin(115200);
//Pour afficher un message
Serial.print("Hello world") ;
u_long horaire = millis();
Serial.printf("\nHoraire %d",horaire);
}
void loop() {
// put your main code here, to run repeatedly:
}
Le schéma actuel est le suivant : la devboard est juste reliée au port USB.

Comment envoyer le code vers l’esp 32 ?

Une fois le compilation il faudra appuyer sur le bouton “Boot” de la DevBoard.
Normalement dans le terminal vous avez ce texte qui s’affiche :

SOS BEUG ! Le port n’est pas trouvé ?
Sur la devboard, il y a une puce UART Bridge. UART signifie Universal Asynchronous Receiver/Transmitter, ce qui signifie que la puce peut être utilisée pour transmettre et recevoir des données de manière asynchrone. La puce bridge UART est souvent utilisée pour connecter des périphériques de communication, tels que des modems ou des cartes de réseau, à un ordinateur ou à un microcontrôleur. Elle peut également être utilisée pour connecter des périphériques qui n’ont pas de ports UART intégrés, comme des capteurs ou des actionneurs, à des circuits qui disposent de ports UART. Bref, notre devboard !
Et cette puce devient un périphérique windows comme les autres… et il lui faut des drivers : Lien vers les drivers. Vous les ajouterez dans le gestionnaire de périphériques.
